【PHP】下らねぇ質問はここに書き込みやがれ 26
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/08/07(月) 13:11:50ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレは>>2-10 関連スレは>>4-10 FAQは>>6-10 辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0002nobodyさん
2006/08/07(月) 13:12:33ID:???http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0003nobodyさん
2006/08/07(月) 13:12:53ID:???http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
【PHP】下らねぇ質問はここに書き込みやがれpart20
http://pc8.2ch.net/test/read.cgi/php/1146165153/
【PHP】下らねぇ質問はここに書き込みやがれpart21
http://pc8.2ch.net/test/read.cgi/php/1148389517/
【PHP】下らねぇ質問はここに書き込みやがれ 22
http://pc8.2ch.net/test/read.cgi/php/1149710968/
【PHP】下らねぇ質問はここに書き込みやがれ 23
http://pc8.2ch.net/test/read.cgi/php/1150995543/
【PHP】下らねぇ質問はここに書き込みやがれ 24
http://pc8.2ch.net/test/read.cgi/php/1152251693/
【PHP】下らねぇ質問はここに書き込みやがれ 25
http://pc8.2ch.net/test/read.cgi/php/1153652403/
0004nobodyさん
2006/08/07(月) 13:13:19ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■ZFマニュアル http://framework.zend.com/manual/en/
■PECL本家(英語) http://pecl.php.net/
まだ英語しかないマニュアルも後々/manual/en/を/manual/ja/に変えてみたら日本語があるかもしれません。
0005nobodyさん
2006/08/07(月) 13:13:42ID:???PHP関連の書籍 第3版
http://pc8.2ch.net/test/read.cgi/php/1150558685/
PHP関連サイト
http://pc8.2ch.net/test/read.cgi/php/982694601/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
[PHP]フレームワークについて語るスレ4[総合]
http://pc8.2ch.net/test/read.cgi/php/1151706907/
Webでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1133489897/
【PHP】セッションについて語ろう!【PHP】
http://pc8.2ch.net/test/read.cgi/php/1064399467/
【ZendStudio】PHP統合開発環境 Part2【Eclipse】
http://pc8.2ch.net/test/read.cgi/php/1154082822/
最強のPHPエディタはなに?
http://pc8.2ch.net/test/read.cgi/php/1133785416/
[PHP-users MLヲチ9]丸投げした覚えは全くありません
http://pc8.2ch.net/test/read.cgi/php/1143731062/
中学生がPHPを習得するスレ
http://pc8.2ch.net/test/read.cgi/php/1139746974/
【PHP】Lvうpしたいので宿題ください
http://pc8.2ch.net/test/read.cgi/php/1147830986/
親切な人が初心者にPHPの関数を使い方を教える
http://pc8.2ch.net/test/read.cgi/php/1068190843/
くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/
0006nobodyさん
2006/08/07(月) 13:13:59ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0007nobodyさん
2006/08/07(月) 13:14:19ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0008nobodyさん
2006/08/07(月) 14:08:49ID:???0009nobodyさん
2006/08/07(月) 15:14:11ID:???ttp://wiki.2chx.net/php/
0010nobodyさん
2006/08/07(月) 16:53:13ID:2T37Evsi自分が頭悪いだけなんですが
2つのUNIXタイムの差を求めて 300秒なら 300
これを、00:05:00 のように 時:分:秒にしたいんです
date() を使ってもうまくできませんでした・・・
0012nobodyさん
2006/08/07(月) 18:24:32ID:T/kEZdoT↑これが変換できないんですが
どうやったらIPに変換できますか?
0014nobodyさん
2006/08/07(月) 18:44:22ID:T/kEZdoT$ipaddr=sprintf("%u.%u.%u.%u",unpack("C*",$addr));
↑PHPに書き直すとどうなるんですか?
0017nobodyさん
2006/08/07(月) 19:17:27ID:???↑これを変換するために
CGI
だと
$addr=gethostbyname($host);
$ipaddr=sprintf("%u.%u.%u.%u",unpack("C*",$addr));
と書いてあるから
PHPに書き直すとどうなるのでしょうか?
001810
2006/08/07(月) 19:32:10ID:???頭悪くてすみません・・・
0019nobodyさん
2006/08/07(月) 19:37:45ID:???その C G I は普通はPerlと呼ばれているものの事だとして…
まずはその C G I で書かれている事が何を意味するのかを考えてみよう。
どういう処理をしているのか理解できたら、
今度は自分で同じ処理をするPHPの書き方を色々考えてみよう。
分からない時にはマニュアルを読むのもお勧めだよ☆
それで、どうしても上手く動かない時は
具体的にどう作ったらダメだったのかを添えてもう一度ここで聞いてみよう。
それじゃ、頑張ってね〜☆
0021nobodyさん
2006/08/07(月) 19:52:21ID:???date()は時差が入るからむしろややこしくなるな。
多分おまいが引っかかってるのは2桁表示にするところだと思うからヒントをあげよう。
echo sprintf("%02d:%02d:%02d", $hour, $min, $sec);
0024nobodyさん
2006/08/07(月) 20:01:32ID:???0025nobodyさん
2006/08/07(月) 20:07:48ID:???0026nobodyさん
2006/08/07(月) 20:20:33ID:ReHevUYM0027nobodyさん
2006/08/07(月) 20:22:46ID:???0028nobodyさん
2006/08/07(月) 20:29:07ID:???Mysqlにdate型ってあったから入れるのに変換しないといけないと思ってた
てことはdate型には直接文字列が入ります?
0029nobodyさん
2006/08/07(月) 20:33:06ID:???0030nobodyさん
2006/08/07(月) 20:35:40ID:???0032nobodyさん
2006/08/07(月) 21:14:00ID:???初歩的な質問すみませんでした。
0033nobodyさん
2006/08/07(月) 21:19:46ID:???0034前スレ967
2006/08/07(月) 21:28:16ID:muOt4GfJ誘導どうもです。
自作フレームワークに HTML テンプレートを組み込んでいるので。
Smarty 用に書き換えるのも面倒で……
>>969
え、やはり閉鎖してたんですか。
どこかで再配布してないかな……
0035nobodyさん
2006/08/07(月) 21:49:23ID:???質問を取り違えてるよ。
>>10はすでにUNIX秒同士で差分を求めてて、
その秒数を時:分:秒の形式に変換できないと言ってる。
…昔は中学で勉強する内容だったんだけどな。これ。
0038nobodyさん
2006/08/07(月) 22:30:20ID:???gethostbyname("nifty.com");
これを一回実行してみろハゲ
0039nobodyさん
2006/08/07(月) 22:31:12ID:???間違えた
gethostbyname("nifty.com");
これを一回実行してみろハゲ
0040前スレ982
2006/08/07(月) 22:40:47ID:???前スレ982なんですが、もう一つ質問させてください。
結局、ディレクトリの中から目的のファイル名にアクセスする事と、
ファイルの中から目的の文字列を検索する事は、
処理速度として差はないのでしょうか?
0041nobodyさん
2006/08/07(月) 22:55:36ID:???0042nobodyさん
2006/08/07(月) 22:58:52ID:???ヒャークマーミーピートゥーパァー♪
゜ *
☆ノハヽ ゜
+ ノノ*゜∀゜)つ
。 と / 。
〜 ⊂ / +
(_/
0043nobodyさん
2006/08/07(月) 22:59:14ID:???いや、それは大分違うと思うぞ。
前スレで「差がない」と言われてたのは、ファイルの中から目的の文字列を探す場合でも、
結局は最初にまずその文字列の入ったファイルにアクセスしなきゃいけないわけで、
ってことはファイルにアクセスした時点で、ディレクトリの中からファイルを探すのと
同じだけの時間がすでにかかっちゃってるわけよ。
1)3.logにアクセスする処理
if(file_exists("3.log") $data = file("3.log");
2)3番のデータが入ってるデータファイルを開く
$fp = fopen("data.log", "r"); $line = fgets($fp);
↑ここまででほぼ同じ処理時間
で、後者ではさらにファイルの中から文字列を探す処理を「+α」でやんなきゃいけない分、
圧倒的に遅いのね。
0044前スレ982
2006/08/07(月) 23:02:44ID:???前スレで頂いた回答の事ですよね。それについては理解できました。
では、単純にディレクトリの中から目的のファイル名にアクセスする事と、
ファイルの中から目的の文字列を検索する事を比べた場合はどうなんでしょうか?
ファイルの中から目的の文字列を検索する際の、ファイルを開くまでの処理は省いて考えた場合です。
0045nobodyさん
2006/08/07(月) 23:05:02ID:???ただし、この処理がほぼ同等の速度になるのはディレクトリの中のファイル数が
極端に多いわけじゃない場合までで、これが異常に多くなると遅くなる。
ただ、遅くなると言っても、PHPで書いたプログラムがファイルを1行1行探すよりは
ずっと高速な処理なので、よっぽどバカみたいにファイル数が増えない限りは
ファイルの中を探すよりはまだ速いと思うよ。
ファイル検索が遅くなるほど数があれば、1個のデータファイルにした場合も
行数がめちゃくちゃでかくなるからね。これはもうとんでもなく遅い。
多分、PHPで探すくらいならshellでgrepでも呼び出した方がまだ速い。
004645
2006/08/07(月) 23:07:13ID:???>>44
>>45がほぼその回答になると思う。
PHPのファイル処理なんて大して速くないので、OSがやってくれる
ディレクトリ(iノード)の検索の方がずっと早いです。
数が少なければ大した差じゃないけど、増えれば増えるほどその差は広がる一方かと。
0047前スレ982
2006/08/07(月) 23:12:37ID:???>>>45がほぼその回答になると思う。
あ、ちょうどなりました(笑
同等ではなく、ファイル名検索の方が早いんですね。
大変参考になりました。回答してくれたみなさんありがとうございました。
0048nobodyさん
2006/08/07(月) 23:21:45ID:???ただ、ファイル数が1000を超えるようになってくると、iノードの処理も複雑になってくるので
頑張ればファイルの中身を探す方が逆転できる余地も出てくると思う。
もっとも、普通に頭から1行ずつ舐めてって行頭の数字を判別して〜なんてやり方じゃ
絶対に勝てないと思うけどね。
0049nobodyさん
2006/08/08(火) 00:02:56ID:???というか今まで鯖任せでそこまで考えることがあまりなくなってたから初心にかえった気分だ。
0050nobodyさん
2006/08/08(火) 01:08:07ID:???で存在しないディレクトリを開くと
Warningがでちゃうんだけど、
これって仕方ないの?
仕方なくないとしたらどういう原因が考えられるの?
005149
2006/08/08(火) 01:10:39ID:qLlWPezkPHP : 5.0.4
HTTP : Apache2.0
です。
0054nobodyさん
2006/08/08(火) 05:39:33ID:???0055nobodyさん
2006/08/08(火) 06:34:51ID:???echo gethostbyname("nifty.com"); // nifty.com
echo gethostbyname("www.nifty.com"); // 202.248.239.42
0056nobodyさん
2006/08/08(火) 07:49:51ID:???ファイル名エントリーはB木だけどinodeは固定長リストのリンク。
数が多くなると拡張inodeリストのリンク数が増えて検索が遅くなる。
0057nobodyさん
2006/08/08(火) 08:00:28ID:vPDdJKnB他人のスクリプトを見て勉強するのが良いのでしょうか?
どこかにコーディングマニュアルらしきものがあった気がするのですが
見つけることが出来ませんでした。マニュアルの言語はなるべく日本語希望。
0058nobodyさん
2006/08/08(火) 08:17:02ID:???> どこかにコーディングマニュアルらしきものがあった気がするのですが
これ?
ttp://pear.php.net/manual/ja/standards.php
0059nobodyさん
2006/08/08(火) 08:25:22ID:vPDdJKnBああ、それです。
PEARにあったのですね。ありがと
0061nobodyさん
2006/08/08(火) 08:57:09ID:???0062nobodyさん
2006/08/08(火) 09:04:29ID:???ZFのほうもあるよ
ttp://framework.zend.com/manual/ja/coding-standard.html
0063nobodyさん
2006/08/08(火) 09:12:13ID:vPDdJKnBどうもです。
0064nobodyさん
2006/08/08(火) 09:20:35ID:???仕様
もしscandir($dir_name)で$dir_nameが正しくディレクトリであったとしても、オープン出来なければ異常事態。
$dir_nameが存在しないならオープンできることはありえないから常に異常事態。
要するにfile_exists関数でディレクトリの存在確認したのが前提ということ。
0066nobodyさん
2006/08/08(火) 09:38:49ID:5ybA5K11/etc/resolv.confの設定を誤って、SSHでの接続が出来なくなってしまいました。
現在アクセスできる方法はApacheモジュールのPHPだけです。
そこで、wwwで実行してるPHPをセキュリティーホールに関係なくrootになれるアカウントにsuして、そのアカウントからrootになることを考えています。
rootになった後はPHPのfputsで編集しようと思っていますが、PHPの実行ユーザーの変更が分かりません。。
system関数でsuを発行しても、次のパスワードの入力が出来ないので‥
サーバーではSSHとApacheしか動いていません。しかし、SSHに接続できるのは、今現在localhostしかいない状態です。。(/etc/hosts)
0068nobodyさん
2006/08/08(火) 09:59:24ID:5ybA5K11FTPがあります。FTPでの接続はできるんです。
0069nobodyさん
2006/08/08(火) 10:00:44ID:???expect コマンドをシェルから実行すれば、同じようなことができると思う
0071nobodyさん
2006/08/08(火) 10:05:27ID:???0072nobodyさん
2006/08/08(火) 10:07:24ID:???--with-expect 付きで make した PHP なら expect も使えます。
expect コマンドが使えるなら expect なスクリプトを用意して PHP から
system すれば良い。
0073nobodyさん
2006/08/08(火) 10:15:39ID:5ybA5K11rootになるにはsuしかだめなのですが‥
FTPでrootになる方法もないし、、
PHPでSSHにつなぐ方法はありますか?
PHPで、localhostのSSHに接続->su root->/etc/resolv.confに>>でやろうと思ったのですが‥
0074nobodyさん
2006/08/08(火) 10:16:30ID:???> /etc/resolv.confの設定を誤って、SSHでの接続が出来なくなってしまいました。
これ、どういうエラーが出るの?
どういう設定してるか分からないけど、IP アドレス指定で試してみた?
0075nobodyさん
2006/08/08(火) 10:23:27ID:5ybA5K110077nobodyさん
2006/08/08(火) 10:46:27ID:???Perl で expect も出来るけど、Expect.pm がないことがあるだろうし。
0078nobodyさん
2006/08/08(火) 10:54:10ID:5/p7Z87Xhttp://jp.php.net/manual/ja/function.mysql-real-escape-string.php の「例3」にある
やり方で一応大丈夫?
addslashes()はしたほうがいいのかなぁ?
0080nobodyさん
2006/08/08(火) 11:21:35ID:???それPHPの質問か?
よくわからんけどPCが壊れたなら、新しいの買ってこればいいんじゃね?
それか修理に出したほうが早いだろ
0081nobodyさん
2006/08/08(火) 11:24:45ID:???PHP の質問かと言われれば微妙だが、壊れているのとは違う。
で、結局どうなったのかな? Ruby があるなら、さくっと出来るけどなぁ。
0082nobodyさん
2006/08/08(火) 13:41:51ID:???> addslashes()はしたほうがいいのかなぁ?
何のためにstripslashes()までやってると思ってるんだお前。
0083nobodyさん
2006/08/08(火) 18:06:56ID:???ないでしょうか?
$a = array();
$b[1] = 1;
$a = array_merge($a,$b);
print_r($a);
0086nobodyさん
2006/08/08(火) 18:50:03ID:CQRoL3Un0087nobodyさん
2006/08/08(火) 18:54:59ID:???0088nobodyさん
2006/08/08(火) 19:07:01ID:???htmlspecialchars 後に改行タグに戻す
0089nobodyさん
2006/08/08(火) 19:14:24ID:???これを
>>72
に置き換えたいのですが、どのようにすれば良いのでしょうか?
0090nobodyさん
2006/08/08(火) 19:14:47ID:4QDp9Gx3ttp://www.bitfolge.de/rsscreator-en.html
上記URLにサンプルも提示されているので基本的なことはすぐできたんですが
自分なりのアレンジをしようと思うといまいち使い勝手がわかりません。
出力の文字コードをデフォルトのlatin-1からUTF-8にしたいと思い
呼び出し側(自作スクリプト)で指定を試みたんですがうまく反映されません。
逆にソースコード中のその部分を書き換えることでUTF-8で出力できたんですが、
これはそういう使い方でいいんでしょうか?
もし真っ当な指定の仕方が他にあるようでしたらおしえてください。
現在のところUniversalFeedCreatorクラスを用い、createFeedメソッドで出力しようとしています。
お願いします。
009190
2006/08/08(火) 19:34:44ID:???>>ソースコード中のその部分を書き換えることで
と書いたのは、もとのクラスファイルのことです(FeedCreator.class.php)
009289
2006/08/08(火) 19:40:57ID:???009489
2006/08/08(火) 20:19:13ID:???正規表現を使ったやり方が知りたいんです。
0095nobodyさん
2006/08/08(火) 20:34:18ID:???0096nobodyさん
2006/08/08(火) 23:05:16ID:???正規表現が分からないなら、strpos使って位置を調べてsubstr_replaceで置換すれば?
その程度のことなら別に正規表現すら要らん。
0098nobodyさん
2006/08/08(火) 23:29:00ID:???009989
2006/08/09(水) 00:05:28ID:???$comm = preg_replace("/~<a[ \t\n\r\fa-zA-Z0-9_\"=]+blank\">$/", "", $comm);
これじゃうまくいかなくて・・・
0100nobodyさん
2006/08/09(水) 00:22:43ID:???/<a[^>]+blank">/
とかでどうだろうか
0101nobodyさん
2006/08/09(水) 00:52:31ID:???俺も適当なの試してみた。
アンカにリンクを貼ろうと思ったんだがうまくいかなすwww
正規表現ってむずいな
0102nobodyさん
2006/08/09(水) 00:59:19ID:???これの0-9の文字って取得できるの?
0104nobodyさん
2006/08/09(水) 01:08:04ID:???ごめ、すっかり忘れてた
preg_replace("/>>(\d{1|2|3|4})+/","<a href=\"#log\\1\">>>\\1</a>"$str);
こうできたのは良いが、\\1に数値が1文字しか入らないのはなぜだろ・・・
0105nobodyさん
2006/08/09(水) 01:08:28ID:???~ と $ の意図が分からんが、それを除外しても駄目。
なぜなら「blank」の部分が a-z にマッチするから。
だから、最短一致をさせないといけない。
0106nobodyさん
2006/08/09(水) 01:08:37ID:???preg_replace("/>>(\d{1|2|3|4})+/","<a href=\"#log\\1\">>>\\1</a>",$str); ね
0108nobodyさん
2006/08/09(水) 01:17:24ID:???{1|2|3|4}って意味わからんぞ。何をしようとしている?
で、(\d+)と、+の部分もカッコに含めないと数字全桁は取れないだろ。
0109nobodyさん
2006/08/09(水) 01:36:59ID:XkNwEDtZの
<?php
$image = imagecreate(200, 200);
$black = imagecolorallocate($image, 0, 0, 0);
imagepng($image);
imagedestroy($image);
?>
で画像表示が出来ません。文字化けみたいになってる。
4.3.11でGDできることは確認。。
誰か助けてください。
0111nobodyさん
2006/08/09(水) 01:42:39ID:???ブラウザで文字化けしてるってことか?
どんなレスポンス返してるのか全部見てみなよ
content-typeがtext/htmlになってるだけじゃないの?
0112nobodyさん
2006/08/09(水) 01:44:13ID:???ここのサイトってどういう設定にしてるんだ??
<?php
の次の行に
header("Content-type: image/png");
って足せば動かない?
0113112
2006/08/09(水) 01:45:14ID:???ttp://masago.kir.jp/phpsc.php?s=php2004010301.php
0114nobodyさん
2006/08/09(水) 01:52:00ID:???http://example/のときはリンクを貼る
http://example/img.jpgのときは画像を表示させる
こういうのってできないんだよな
0115nobodyさん
2006/08/09(水) 02:01:15ID:???0116nobodyさん
2006/08/09(水) 02:04:17ID:???register globalがonだから、XSSがおきるよ
ttp://masago.kir.jp/php20030111s.php?msg=%3Cscript%3Ealert%28document.cookie%29%3B%3C/script%3E
0118nobodyさん
2006/08/09(水) 02:09:08ID:???すんません、教えてください。
http://example/だけのときは
<A href="http://example/">http://example/</A>とリンクを貼り、
http://example/img.jpg(何らかの画像)のときは
<IMG src="http://example/">と画像を貼りたいんです
0120nobodyさん
2006/08/09(水) 02:22:09ID:???0122nobodyさん
2006/08/09(水) 03:21:02ID:???$_GET['hogehoge']にtestを格納して
<a name="5"></a>に飛ぶ予定だったんですが、
$_GET['hogehoge']にtest#5が入ってしまいます。
どのようにすれば
$_GET['hogehoge']にtestを格納し、
<a name="5"></a>に飛ぶことができるのでしょうか
0123nobodyさん
2006/08/09(水) 03:37:24ID:???0124nobodyさん
2006/08/09(水) 03:41:15ID:???手元の PHP 4.4.2 では $_GET['hogehoge'] に # 以降は含まれていなかったが。
0125nobodyさん
2006/08/09(水) 04:54:12ID:???文字列の末尾が .jpg .jpeg .png .gif のときはIMGタグに、それ以外のときはAタグに変換、がお手軽。
厳密にやるならそれぞれソケットでHEADアクセスして、返ってきたレスポンスのContent-Typeを判定。
0127nobodyさん
2006/08/09(水) 08:28:07ID:jiSDaPkk$name = isset ($_POST['name']) || $_POST['name'] !== '' ? $_POST['name'] : $name;
terniary条件文でこのように書くのはダメなのでしょうか?
論理演算子でどちらかがTRUEなら、最初の式がTRUEになるはずなのですが…
$_POST の値が空 ('') だと$nameが$nameに代入されません...
0128nobodyさん
2006/08/09(水) 08:30:54ID:jiSDaPkk正: $_POST['name'] の値が空 ('') だと$nameの値(名無しさん)が$nameに代入されません...
誤: $_POST の値が空 ('') だと$nameが$nameに代入されません...
0129nobodyさん
2006/08/09(水) 09:19:05ID:jiSDaPkk論理演算子の '||' は、どちらかの式がTRUEの場合TRUEなのですから、これでは
isset ($_POST['name'])がTRUEの場合、$_POST['name']が空でも$_POST['name']を$nameに代入してしまう…orz
つまり、これは:
$name = '名無しさん';
$name = isset ($_POST['name']) && $_POST['name'] !== '' ? $_POST['name'] : $name;
でしたね。本当にスマソ
0130nobodyさん
2006/08/09(水) 09:31:58ID:???0131nobodyさん
2006/08/09(水) 09:38:57ID:???もしないようなら同じようなことをするには
defineを使うしかないのでしょうか?
0133軟式PHP
2006/08/09(水) 09:59:22ID:???俺も欲しいなぁとは思ってるんだけどないなぁ。
オブジェクト定数ってのならあるんだけど、多分想像してるのとは違うと思われ。
0134nobodyさん
2006/08/09(水) 10:02:20ID:???if($kakiko=="" || ereg("^([a-z])+$",$kakiko)) error("不正な文字列です");
これじゃだめなんですか?
テストしてみましたがこの処理をスルーしてしまいます・・・。
0136軟式PHP
2006/08/09(水) 10:05:10ID:???大文字・数字の判定がない。あとeregよりpregのほうがいいよ。
if( $kakiko == "" || preg_match('/^[0-9a-zA-Z]+$/',$kakiko) )
0137nobodyさん
2006/08/09(水) 10:20:01ID:???ありがとうございます
自分で英数字と言っておいて入れ忘れたのはなんともお恥ずかしい限りです。
で、試しにやってみたんですが・・・書き込み成功してしまいました・・・orz
何もおかしいところはないと思うのですが・・・なぜでしょうか・・・
0138軟式PHP
2006/08/09(水) 10:35:21ID:???kakikoという変数から察するに掲示板の書き込みの内容?
スペース・改行・タブ等が入っていたら上のじゃスルーされるよ。
タブ、改行、スペース対応版。記号入ってたら駄目だけど('A')あとは改造してくれ。
if( $kakiko == "" || preg_match('/^[0-9a-zA-Z\r\n\s\t]+$/',$kakiko) )
0139nobodyさん
2006/08/09(水) 10:43:36ID:???0140nobodyさん
2006/08/09(水) 11:09:37ID:???echo("{$foo}");
とやったらフォーが出力されますよね?
では、
define("FOO","フォー");を
echo("")という形を使ってフォーと出すにはどうしたらよいのでしょうか?
echo FOO;でもちろんできますが、どうしても("")の中に入れたいんです。
変数と同じ要領で("{FOO}")をやってみたけどだめでした。
よろしくおねがいします。
0141軟式PHP
2006/08/09(水) 11:15:03ID:???とかじゃだめなん?
0142nobodyさん
2006/08/09(水) 11:16:14ID:???そうです掲示板です。
こういう場合空白とか改行についても入れないと駄目なんですね・・・。
勉強になりました。
しかしまたもスルーされてしまいました・・・orz
検索したりと色々試行錯誤していましたら
if(!preg_match("/[\x80-\xA0]/",$com)) { error("不正な文字列です"); }
これで自分の思い通りの結果になりました。
色々とご教示いただきありがとうございました。
0144nobodyさん
2006/08/09(水) 11:31:37ID:GlwbD+0Ypg_connect("host=%s", HOST);
もしくは
$host = HOST;
pg_connect("host=${host}");
でいいと思うけど
0145140
2006/08/09(水) 11:37:46ID:???どうもありがとうございます。
MySQLからの乗換えで、ずっと定数を使っていたので、
そのまま使えないかなーと思いまして。
上の方法で早速試してみたいと思います。
0147nobodyさん
2006/08/09(水) 12:09:56ID:OFf4cMrjpreg_replace(array("\r\n", "\r"), "\n". $str)
Warning: preg_replace(): Empty regular expression
「正規表現が空」とはどういうことでしょうか?
マニュアルを見るとパターンは配列もアリと書いてあるのですが。
よろしくおねがいします。
0148nobodyさん
2006/08/09(水) 12:16:22ID:???0149nobodyさん
2006/08/09(水) 12:16:24ID:???0150nobodyさん
2006/08/09(水) 12:24:04ID:???文字列クオートの中でのdefine展開はできない。
echo("〜" . FOO . "〜");
みたいに前後で連結するしかない。
0152nobodyさん
2006/08/09(水) 12:33:50ID:OFf4cMrjpreg_replace ("(\r\n|\r)", "\n", $str)
これでよろしいのでしょうか?
>>151
すみません、詳しく。
0154nobodyさん
2006/08/09(水) 12:41:37ID:???いきなり複雑な処理を書かず、公式のマニュアルをまずそのまま書いて
動作確認をしてから書けば、同じような問題で悩むことはないよ
http://jp.php.net/manual/ja/function.preg-match.php
0155nobodyさん
2006/08/09(水) 13:53:50ID:???■mySmarty.class.php
include_once('Smarty/Smarty.class.php');
class mySmarty extends Smarty
{
function mySmarty()
{
$this->Smarty();
$this->template_dir = "./templates/";
$this->compile_dir = "./template_c/";
}
}
■index.php
include_once('mySmarty.class.php');
$smarty = new mySmarty();
$smarty->display( "index.tpl" )
で、index.phpにアクセスすると
Parse error: parse error, unexpected '{', expecting '(' in 〜〜〜sample\mySmarty.class.php on line 8
と言ったエラーがでます。
何処がおかしいのでしょうか。
下らない質問だとは思うのですがよろしくお願い致します。。
あと、環境はwindowsXP PHP5.1.4 Smartyは2.6.14 です。
0156nobodyさん
2006/08/09(水) 14:16:58ID:???そのソース上には問題はない
しいて言うなら、
$smarty->dispya("index.tpl")
の文末に ; がないくらいだけど、エラーメッセージの内容からして
コピペミスだろうと思うから関係ないだろう
本当に、このソースでそのエラーが出ているのか
0157nobodyさん
2006/08/09(水) 14:35:26ID:???レスありがとうございます。。
原因解りました。
何ていうのか、もう完全に初歩的なミスでして、説明しづらいんですが、本来読むべきmySmarty.class.phpとスペルミスのmySmaty.class.phpと言うファイルが何故か2つありまして、
で、スペルミスの方は上記の通りソースは良いんですが、スペルミスしてない方(index.phpから読み込んでる方)は()が有りませんでした。
もうホントにお恥ずかしい話です。。
すみません。
お騒がせ致しました。。
0159nobodyさん
2006/08/09(水) 17:21:32ID:OFf4cMrjごめん、最初から str_replace() でやるつもりだったんだけど
ミスって str が preg になってしまった…。
でもミスに気付けて良かったよ。ありがとう。
0160nobodyさん
2006/08/09(水) 18:34:28ID:???どう書いたらよいのでしょうか?
たとえば、HOGEもhogeもHoGeもhoGEも同じHOGEとしてチェックする感じです。
0161(^ω^)
2006/08/09(水) 18:44:48ID:???0162(^ω^)
2006/08/09(水) 18:46:30ID:???strtoupperで比較
またはstricmp
0164nobodyさん
2006/08/09(水) 19:55:05ID:???simplexml_load_fileで読み込んだオブジェクトを
functionの引数として指定したいんですが、上手くいきません。
試しに下記のように書いてみたのですが、どうも引数を渡せていないようです。
こういう時はどのようにして渡したらよいのでしょうか。
どなたかアドバイスなどよろしくお願いします。
$xml = simplexml_load_file("hoge.xml");
$item=$xml->item;
item_construct($item);
funciton item_construct($item){
$sword=$item->sword;
(略)
}
0165nobodyさん
2006/08/09(水) 21:36:27ID:???よくわからんがその関数で読みこんだオブジェクトは$xmlであって引数にしてる$itemではないのではないか?
0166109
2006/08/09(水) 21:52:49ID:XkNwEDtZありがとうございます。。
>>110
>>112
header("Content-type: image/png"); を書き足してみましたが
前と変わらず表示されませんでしたorz
<?php
header("Content-type: image/png");
$image = imagecreate(200, 200);
$bcolor = imagecolorallocate($image, 0, 0, 0);
imagepng($image);
imagecolordeallocate ($image,$bcolor);
imagedestroy($image);
?>
とやってみましたのですがorz
>>111
はいブラウザでサイト上で文字化けしてます。。
0167nobodyさん
2006/08/09(水) 21:58:01ID:???imagepngでファイルに出力してみて、正しい画像ならブラウザの問題
0168109
2006/08/09(水) 22:01:31ID:???0169nobodyさん
2006/08/09(水) 22:09:15ID:???PHP5.1.4
0172nobodyさん
2006/08/09(水) 22:44:50ID:???それ動かしてるサーバーってレンタルスペース?
ひょっとして広告とか入ってるとこで、PHPでいくらheader出力しようと思っても無駄なとこだったりしない?
0174109
2006/08/09(水) 23:12:13ID:XkNwEDtZはい余計なものは出力していないです。。
>>172
はいレンタルスペースです。下部にテキスト広告が入っています。。
header出力に関しての記載はないので管理者に聞いてみようと思います。
ちょっと他の所でも試してみます。。
何度もすみませんでした。
0175nobodyさん
2006/08/09(水) 23:20:44ID:???広告入ってるサーバーの多くではプログラムで画像出力とかできないよ。
その自動で動く広告挿入のプログラムが、出力内容をHTMLとして扱っちゃうので。
一部のサーバーでは自動的に広告OFFにするための仕組みを用意してるので(ディレクトリや拡張子の変更など)
それがあるなら使ってみることだ。
0176nobodyさん
2006/08/09(水) 23:27:13ID:???もう一度こちらに書き込みさせていただきます。(マルチになって申し訳ありません)
399 名前:デフォルトの名無しさん[sage] 投稿日:2006/08/09(水) 23:17:17
こんなことを質問できる場がここしかないので、どうかご教授願いたいです。
実験でHTMLのテキストフィールドから直接SQL文を入力させてDB(MySQL)を操作したいんですが、、
例えばHTMLの入力フォームから
select * from [テーブル名] where ID='06A00012'
などと入力すると、phpで受け取った値は
select * from [テーブル名] where ID=\'06A00012\'
となってしまい、SQL文に余計なものがついてSQLの構文エラーとなってしまいます。
phpのstrtr関数で文字を置き換えようとしても上手くいきません。
(\をなんとか消しても、今度は "(ダブルコーテーション)に置き換わってしまいます。)
どなたか、¥の消し方をご存知の方がいましたら、お願いします。。。
0178176
2006/08/09(水) 23:41:17ID:???0179109
2006/08/09(水) 23:53:52ID:XkNwEDtZなるほど。。
ありがとうございます。
0180176
2006/08/10(木) 00:18:11ID:???if($inpo==1){
$okki = stripslashes ($inpo);
}
print $okki. "マンセー";
↓こんなスマートなやりかたもありました。
if (get_magic_quotes_gps()){
$comment = stripslashes ($comment);
}
本当にありがとうございました。
0181nobodyさん
2006/08/10(木) 00:20:57ID:???gpc()←訂正
まだまだ、先は長そうだ。
0182nobodyさん
2006/08/10(木) 00:32:47ID:9+xl79/rブラウザで表示したいんですけど、それが載っているサイトや
書籍ってありますか?例えば、ffftpの左半面のようなものを
イメージしています。用途が幅広いので、どこかに公開されている
と思うのですが・・・。どなたか、お教え下さい。
0184nobodyさん
2006/08/10(木) 01:18:40ID:???いや、出来るんじゃないか?
まぁ、その表示したものを消したりとかってなると無理な部分があまりにも多い
だろうけど。
見るだけならある程度できそう
0187nobodyさん
2006/08/10(木) 01:29:43ID:???できるんじゃないか?
0188nobodyさん
2006/08/10(木) 01:34:04ID:???Client側のファイル一覧どうやって取るんだってことだよ。
0189nobodyさん
2006/08/10(木) 01:35:13ID:???0191nobodyさん
2006/08/10(木) 01:48:26ID:DcRBPcvMサーバ側から、クライアント側のディレクトリ構造を・・・という話です。
phpで、サーバにクライアントのファイルをアップロードするシステムが
あるくらいだから、何とかできないものかと思ったのですが・・・。
0193nobodyさん
2006/08/10(木) 02:04:48ID:???そうなっちゃうとPHPだけじゃ無理だな〜
でも、その着眼点は良いんじゃない?今PHPでは実現不可能って分かったんだから
じゃあ、ほかの言語で代用しちゃえってなもんだ。
今ならpythonが熱いぞ!PHPみたいなスクリプト言語だがデスクトップアプリも作れる。
下手したらVBよりも簡単だしな
0194nobodyさん
2006/08/10(木) 02:07:12ID:???ファイルのアップロードはブラウザの機能。
しかもHTMLレベルじゃセキュリティ上アップロードはかなり制限されてる。
クライアントサイドでActiveX走らすとかそういった手しか無いだろうね。一言で言うと>>183
0195nobodyさん
2006/08/10(木) 02:08:31ID:???クライアントがサーバなら出来るなw
お前のサーバからクライアント(サーバ)にリクエスト投げて、クライアントが
PHPとかでデータを取得してXMLなりなんなりでお前のサーバに結果を返す。
で、お前側サーバでそれをCSSで綺麗に整えれ幸せになれます。
0196nobodyさん
2006/08/10(木) 02:11:46ID:???無い。
アップロードはブラウザにファイルから送信データを生成させる仕組みが規定されてるが、
セキュリティ的に危険なためそれ以上のクライアントファイル操作は全て禁止が原則。
クライアント上で動くJavaScriptでも基本的にはクライアントのファイルには触れない。
回避手段があるとすればActiveXを使う手だろうね。パソコン側に半自動でプログラムを
ダウンロード・インストールさせ、それを実行するような仕組みが必要。PHPだけではどうしようもない。
ActiveXならがんばりゃオンラインウイルススキャンなんて仕組みも作れるのでかなり色々できる。
ただし、WEBの標準的な機能ではなくWindowsの機能を利用する形になるため、
使えるOSとブラウザが著しく制限される。
また、セキュリティ的に非常に危険な仕組みなので、クライアントの設定によっては拒否される。
0197nobodyさん
2006/08/10(木) 09:00:08ID:???smartyというものは使った方がいいんでしょうか?
PHPやってるならsmartyくらいは使えないとって感じなら勉強するつもりなんですが
そうでもないなら回避しようかなと思ってるんですが
0199nobodyさん
2006/08/10(木) 09:38:53ID:???Smartyみたいな汎用志向のテンプレート機能は
デザイナーとプログラマーが分業してる場合など
多人数で開発する際に大きな効果を発揮する。
逆に言うと、個人でやってる分には意義を見出しにくいものでもある。
(規模が大きくなってきたり、同じプログラムでデザインの差し替えを
多用するようになったりすると便利さを感じる場面も出てくると思うけど)
ってことで、とりあえずは無くてもいいものだと思う。
今後、プロになりたいと思ってるならスキルの1つとして覚えといてもいいけど。
0200nobodyさん
2006/08/10(木) 10:18:56ID:???PerlのHTML::Templateのような、単純なテンプレートを知りませんか?
Smartyほどの機能は不要なのですが。
0201nobodyさん
2006/08/10(木) 10:33:24ID:???簡単なテンプレなら自作が一番。
デザイン済みのHTMLソースに変数をはめこんで、
それをヒアドキュメントにして拡張子.phpにしてincludeすればいい。
0204nobodyさん
2006/08/10(木) 11:08:20ID:ftKUYt4P見つからないので多目に見てください。
MySQLのフイールド「unko」に
こんなのが入ってるとします(1行を1レコードとしてください)
1_123
10_376
4_432
11_543
5_982
これを
1_123
4_432
5_982
10_376
11_543
のようにソートしたいのですが
order by unko
だと、
1_123
10_376
11_543
4_432
5_982
となってしまいます。
設計から見直せと言われそうですが、なにかいい方法はありませんか?
0206nobodyさん
2006/08/10(木) 11:13:59ID:???0208nobodyさん
2006/08/10(木) 11:27:55ID:???0209nobodyさん
2006/08/10(木) 11:56:07ID:Zt0pUlM3スレ違い以前に板違いでしたか、すいませんでした。
>>208
どうもです、完璧ですた。
助かりました。
0210nobodyさん
2006/08/10(木) 12:10:55ID:???いや、なんかスレの内容が随分レベル高いなぁーっと思いまして。
それと質問なんですが、ECサイトの構築を覚えたいとずっと考えていまして、言語はPHPに決めました。
PHPと組み合わせるDBで特に易しいもの等はあるんでしょうか?
どれでも一緒ならPHP+MySQLで勉強を始めようと思っています。
0211nobodyさん
2006/08/10(木) 12:19:25ID:???> いや、なんかスレの内容が随分レベル高いなぁーっと思いまして。
いや…ちょー低いだろ…_| ̄|○
> PHPと組み合わせるDBで特に易しいもの等はあるんでしょうか?
MySQLは特に易しいよ。機能少なめでかつ高速で。あんまり悩む必要がない。
0212nobodyさん
2006/08/10(木) 12:33:05ID:83OIGtylすると、本文の最初に
mime-version:1.0
content-type:text/plane;carset-ISO-2022-jp
content-transfer-encoding: 7bit
という文字列が付加されました。
これを取り除くにはどうしたらいいでしょうか?
$to = 携帯のアドレス
$subject = "タイトルです。";
$msg = "内容内容内容";
$header = "From: PCのアドレス";
みたいな感じになっています。上の文字列は内容内容内容の前に付いてしまいます。
携帯はdocomoでしか確認していませんが、mova、fomaとも同じ結果です。
0213nobodyさん
2006/08/10(木) 12:37:32ID:???関数へ渡してる部分も含めてもう少し全体を見せれ。
多分、どっかに余分な改行がある。
メールのヘッダーと本文は1行の空行で区切られてるが、
ヘッダーの途中に空行が余分に入ったことでヘッダー後半が
本文扱いになってしまってるわけだ。
0214nobodyさん
2006/08/10(木) 12:38:11ID:???ソース中によくreturn文を使っているのを見るのですが、
どういうときに使っているのか、何をしているのかがよく理解できません。
マニュアルを見てもいまいちピンとこないのですが、
これはPHPを学ぶ上で必須となるものでしょうか?
0215nobodyさん
2006/08/10(木) 12:46:16ID:???クラス以前の問題
0219nobodyさん
2006/08/10(木) 13:04:06ID:83OIGtylレスありがとうございます。
試しに必要な部分だけ抜き出して実行してみましたが、結果は同じです。
<?php
mb_language("ja");
mb_internal_encoding("SJIS");
$to = "携帯のアドレス";
$from = "PCのアドレス";
$subject = "お問い合わせがありました。\n";
$header = $from."\n";
$msg = $header."さんからお問い合わせがありました。";
mb_send_mail($to, $subject, $msg, $header);
?>
どうでしょうか?
0220nobodyさん
2006/08/10(木) 13:05:03ID:???文字コードをEUCにすると他の文字が文字化けする。
どうすればいいの?
0222nobodyさん
2006/08/10(木) 13:10:35ID:oKJYDnYFどうやって?
0223nobodyさん
2006/08/10(木) 13:15:11ID:???mb_internal_encoding("SJIS");
これがまずいんじゃない?
たしか内部エンコードSJISは使えなかったはず。
UTF-8かEUC-JPでやるとうまくいくと思う。
0225nobodyさん
2006/08/10(木) 13:21:15ID:???PHPで動作しないと思われる文字エンコーディングの例を以下に示します。
JIS, SJIS, ISO-2022-JP, BIG-5
これらのエンコーディングで書かれたPHPスクリプトは、 特に符号化された文字列がスクリプトで記述子やリテラルに使用される場合には、 動作しない可能性がありますが、
入力されるHTTPクエリに関して mbstringの透過的なエンコーディングフィルタを 設定することでこれらのエンコーディングをほとんど使用しないようにすることが できます。
SJIS使いたければ、内部エンコードUTF-8とかにして出力時に自動変換がお勧め
0226nobodyさん
2006/08/10(木) 13:27:35ID:???-------- .htaccess --------
php_flag output_buffering On
php_value output_handler mb_output_handler
php_value default_charset UTF-8
php_flag mbstring.encoding_translation Off
php_value mbstring.http_input auto
php_value mbstring.http_input UTF-8,SJIS,EUC-JP,JIS,ASCII
php_value mbstring.substitute_character none
php_value mbstring.internal_encoding UTF-8
php_value mbstring.http_output UTF-8
php_value mbstring.language Japanese
---------------------------
出力をSJISにしたいときは
php_value mbstring.http_output SJIS
とする
0227nobodyさん
2006/08/10(木) 13:33:18ID:???> $subject = "お問い合わせがありました。\n";
の."\n"を外せ。
「改行コードが余分だ」と言ったのに何を聞いてたんだ。
ttp://www.php.net/manual/ja/function.mail.php
> subject
> 送信するメールの表題。
> 注意
> 改行を含んではいけません。含めてしまうとメールが正しく送信できません。
0229nobodyさん
2006/08/10(木) 14:15:48ID:83OIGtylレスありがとうございます。
教えて頂いた内容を試しましたが、だめっぽいですorz
mb_internal_encoding("UTF8");としてみましたが、
あいかわらずヘッダー情報のようなものは出力されます。
\nはあまり関係が無いようでした。
以下のようエンコードをUTFにして各変数の中身を空っぽにして
送信したところ、そのいらないヘッダー情報だけが本文として送られてきてしましました。
<?php
mb_language("ja");
mb_internal_encoding("UTF8");
$to = "携帯のアドレス";
$from = "PCのアドレス";
$subject = "";
$header = "";
$msg = $header."";
mb_send_mail($to, $subject, $msg, $header);
?>
上から2行のmb関数の行を削除して送信してみたら、
mime-version:1.0
content-type:text/plane;carset=utf8
content-transfer-encoding: base64
これの最後の行がbace64になったという以外、大きな変化はありませんでした。
0230nobodyさん
2006/08/10(木) 14:16:46ID:83OIGtyl0231nobodyさん
2006/08/10(木) 14:25:41ID:???どのような関数で取得できるでしょうか?
下らない質問で申し訳ありませんがお願い致します
0232nobodyさん
2006/08/10(木) 14:26:53ID:83OIGtylttp://blog.itoy.jp/archives/20050108_0133.php
本家のURLは移動したっぽくて確認できませんでしたが、ドコモ的な仕様っぽいです。どうにもならないでしょうか?
0233nobodyさん
2006/08/10(木) 14:28:34ID:???<?php
mb_language("ja");
mb_internal_encoding("UTF8");
$to = "hogehoge@hoge.hoge";
$from = "hogehogehoge@hoge.hoge";
$subject = "てすとサブジェクト";
$header = "From: " . $from;
$msg = "本文";
mb_send_mail($to, $subject, $msg, $header);
?>
0234nobodyさん
2006/08/10(木) 14:37:03ID:83OIGtylありがとうございます。
ドコモ以外のキャリアをお使いですか?
ttp://www.nttdocomo.co.jp/info/spam_mail/if/index06.html
オフィシャルな情報をみつけました。
携帯に通知するようなサービスは結構あると思うのですが、どうやってやっているのでしょうか。
0237nobodyさん
2006/08/10(木) 15:30:32ID:???サブスクライバIDって書いていることはAU限定だろうから
>>236 の方法か getenv() を使えばいいよ
0238nobodyさん
2006/08/10(木) 15:37:30ID:???山ほど例が出そうな気がするが
0240hage
2006/08/10(木) 15:47:18ID:GpwygKMQどうしても"''"になってしまう。回避法ご存知のかたいらっしゃいます?
$apo = mb_convert_encoding("'",'UTF-8','EUC-JP');
0243nobodyさん
2006/08/10(木) 16:45:42ID:???松田さん、こんにちは。
こちらの環境(php4.4.2)でも確認できませんでした。
そもそも、半角の ' に文字コードが関連するとも思えませんし。
0244nobodyさん
2006/08/10(木) 16:54:41ID:kXNrpO55HTMLファイルを取得したいと思います。
ソケットオープン
↓
ヘッダー送信
↓
データ受信
という流れになるんですが、
その際に、
ユーザーエージェントを携帯端末にしたいと思います。
たぶんheaderで指定する必要があるんだと思うんですが、
誰かサンプルソース持ってないでしょうか?
0245nobodyさん
2006/08/10(木) 17:11:12ID:???0246hage
2006/08/10(木) 17:13:02ID:GpwygKMQどうも、すみません。私の勘違いでした。前処理で、余計なことしてて
気づかなく、ハマッました^^;
0247nobodyさん
2006/08/10(木) 17:17:46ID:???php の公式にサンプルがあるよ
http://jp2.php.net/manual/ja/function.fsockopen.php
0248nobodyさん
2006/08/10(木) 17:21:56ID:???0249nobodyさん
2006/08/10(木) 17:31:33ID:???0250nobodyさん
2006/08/10(木) 22:05:54ID:???上記のページ(W3C勧告私的日本語訳)で、「1つのフォームで複数のチェックボックスが同じコントロール名を共有してよい。こうしたチェックボックスは、例えば、ユーザが1つのプロパティについて複数の値を選ぶことを許容する。」とありますが、
例えば以下のようなformを作って送信すると、
<input type="checkbox" name="q" value="1">
<input type="checkbox" name="q" value="2">
<input type="checkbox" name="q" value="3">
確かに「q=1&q=2&q=3」というリクエストが送信されます(IE、Firefoxともに確認済み)。しかし、これをサーバサイドでPHPで受け取って print_r($_POST) とかで表示すると、
Array
(
[q] => 3
)
のように q の値は 3 のみになっています。これはPHPの仕様がW3Cの勧告に即していないということでしょうか?
0251nobodyさん
2006/08/10(木) 22:10:12ID:???<input type="checkbox" name="q[]" value="1">
<input type="checkbox" name="q[]" value="2">
<input type="checkbox" name="q[]" value="3">
でお願いします。
0252nobodyさん
2006/08/10(木) 22:17:30ID:???一応こうならば何とか動くけど。
<input type="checkbox" name="q[]" value="1">
<input type="checkbox" name="q[]" value="2">
<input type="checkbox" name="q[]" value="3">
0253252
2006/08/10(木) 22:19:59ID:???0254nobodyさん
2006/08/10(木) 22:20:09ID:???0256nobodyさん
2006/08/10(木) 22:42:35ID:???なぜでしょうか?
0258nobodyさん
2006/08/11(金) 01:07:57ID:???文字コードはちゃんと判別してると思います。(たまに?になるだけですので)
mbstring.substitute_character はnone,long,12307と変更してみましたが
やはり1文字で検索するとたまに?になってしまいます。
0259nobodyさん
2006/08/11(金) 01:13:14ID:???1文字だと誤判別しやすいんだよ。>>257の言ってるのはそういう指摘だと思う。
文字コード自動判別にはある程度の字数がないと正確に判定できないのだ。
0260nobodyさん
2006/08/11(金) 01:39:59ID:???0261164
2006/08/11(金) 03:07:29ID:???すいません、そこはここで質問する時にキーを打ち間違えたんです。
「function」ですね、お恥ずかしい。
やりたいことはようはXMLで読み込んだオブジェクト?($xml->itemみたいな)
を引数にして関数に渡して、そっちで処理したい、ってことなんですが、
まだできません。
引き続きどなたかアドバイスなどいただけたらと。
0263nobodyさん
2006/08/11(金) 04:36:07ID:???試したことないのであてずっぽだけど、引数をリファレンスで渡してみたらどうよ?
$xmlを丸ごと渡すなら分かるけど、$xml->itemとかいう渡し方をした場合、
$xml->itemの中で$thisとして$xmlのメンバ変数を参照しようとしたとき
$itemしかコピーされてないと正常動作しようがないんじゃないか?って気がした。
0264nobodyさん
2006/08/11(金) 05:20:15ID:???間で処理が遅れる事があるだろうと思うので、少し増えたりするのはうなずけるんですが、
試してみたところ、ある環境では引数に指定した値のの約3倍ずつ待っていたり
またある環境では引数に指定した値より待ち時間が少なかったりしました。
どなたかご存知でしたら教えてください。
0265nobodyさん
2006/08/11(金) 07:28:05ID:???<?php
$time1 = microtime();
usleep(3);
$time2 = microtime();
list($m1, $s1) = explode(" ", $time1);
list($m2, $s2) = explode(" ", $time2);
echo $m2 - $m1;
?>
これを繰り返したけど0.003〜0.01程度とばらばら(Win32, PHP5.1.4, Pentium D 930)
CPUのスペックや同時に動いているプロセスの数や種類などでかなり差が出るとは思われる
0266nobodyさん
2006/08/11(金) 09:36:05ID:???$time1 = microtime();
$time2 = microtime();
というふうに連続でやってもマイクロ秒付近の偏差はでるんだから、usleepのせいってわけじゃなくね?
0267nobodyさん
2006/08/11(金) 11:15:29ID:???0268nobodyさん
2006/08/11(金) 12:11:15ID:???The usleep() function suspends execution of the calling process for (at least) usec microseconds.
The sleep may be lengthened slightly by any system activity or by the time spent processing the call or by the granularity of system timers.
>>264
最低、引数の時間は止まるので少なくなることはない
0269nobodyさん
2006/08/11(金) 12:14:53ID:???$a = array(1,2,3,);
この最後のカンマってあってもいいのでしょうか?
echo count($a);
とすると 4 になるかと思ったら 3 になりました。
マニュアルのどこかに載ってますでしょうか?
0272nobodyさん
2006/08/11(金) 15:53:56ID:???0273nobodyさん
2006/08/11(金) 16:21:47ID:???0274nobodyさん
2006/08/11(金) 17:20:55ID:???エラーでなかったよ
int main(void)
{
char a[] = {1, 2, 3, };
return 0;
}
0275nobodyさん
2006/08/11(金) 17:47:27ID:???http://jp.php.net/manual/ja/function.array.php
一般的ではないですが、 最後に定義された配列エントリの後に
続くカンマがある場合、 これは有効な構文です。
配列要素を修正した時とかに最後のカンマの消し忘れても
エラーにはならない対応なんだろうけど
一般的じゃないと書かれている以上、消し忘れでない限りは
つけない方が個人的にはいいと思う
0276234
2006/08/11(金) 18:08:04ID:Pasm0XSVmb_send_mail($to,subject,$msg,$header)
これの$headerの中に"from:"って書いておかないと、
ヘッダー情報が本文におくられちゃうみたいです。
234でドコモの情報とか書きましたが、上の条件をみたして、携帯に送ったら
至って普通に受け取れました。
沢山レスくれたみなさん、お騒がせしました。
0277nobodyさん
2006/08/11(金) 18:43:28ID:???>>233のレスのが正解だったわけだ。
言われるまで、$headerにFromアドレスをヘッダ識別子なしで
そのまま格納しちゃってることに気付かなかったよ…
0278nobodyさん
2006/08/11(金) 19:25:38ID:???$a = array(
1111111111111,
2222222222222,
3333333333333,
);
みたいに行単位で書く場合は最後にもコンマつけられたほうがいいんじゃない?
0279nobodyさん
2006/08/11(金) 19:35:45ID:???0280nobodyさん
2006/08/11(金) 19:41:09ID:???ただSQL文とかでそれやるとエラーだから、PHP使う上では出来るだけ意識的に外したほうが良いかもな。
0281nobodyさん
2006/08/11(金) 20:00:10ID:???ただ、頻繁に配列内容の変更があるならむしろカンマをつけておいた方がメンテはしやすくなる。
これは
if(式)
実行文;
っていう1行しかない場合でも、保守性を考慮して
if(式) {
実行文;
}
と必ず { } をつけるコーディングポリシーに通じる話だと思う。
その辺の兼ね合いを考慮したうえで、後は好みの問題だから好きにすればいい。
0282nobodyさん
2006/08/11(金) 21:35:28ID:???おいらは値の追加とか削除した際にも最後に,が残らないように
$a = array(
1111111111111
,2222222222222
,3333333333333
);
って書き方してるな。
0283nobodyさん
2006/08/11(金) 21:43:56ID:???なんかエロくて嫌です><
0285nobodyさん
2006/08/11(金) 21:59:02ID:256svcAIjava scriptで自身を500ms周期でリロードするHTMLを書き、
数時間走らせておくと、web serverが重くなります。
web server(httpd)を再起動すると元通り軽くなります。
httpdのconfig設定等でチューニング可能でしょうか?
また、どこらへんを設定すればいいのでしょうか?
環境;
OS Linux CENT-OS4.3
web server apach2
外部公開せずLAN内でのみ使用。クライアントは上記のアクセス1台のみ。
HTMLで記述
です。よろしくお願いします。
0286nobodyさん
2006/08/11(金) 22:00:48ID:???そんな俺はPHPだけは必ず最後にコンマを付けちゃう派。楽すぎて幸せになれる。
他の言語もみんな同じようになればいいのに。
0288nobodyさん
2006/08/11(金) 22:40:38ID:???「…続く」というのが付け足されるようにしたいんですが、
下のように書いたら、切り取った最後のところに「?」が追加されてしまいます。
マルチバイトの扱いがちゃんとできてないんでしょうけど、
どのように書くのがいいでしょうか?アドバイスよろしくおねがいします
$byte= mb_strlen($str);
if($byte>300){
$str=mb_substr($str,0,300)."…続く";
}
0289nobodyさん
2006/08/11(金) 22:49:45ID:???0290nobodyさん
2006/08/11(金) 23:12:10ID:???たぶん mbstring.internal_encoding が正しく設定されていない。
それから一応常識だから言っとくけど、PHP(mbstring)で内部エンコーディングSJISは通用しない。
0291nobodyさん
2006/08/11(金) 23:18:03ID:???mb_strlenで$byteかよ。
やりたいのはmb_strimwidthじゃないの?
mb_strimwidth:「あああ…続く」「aaaaaa…続く」
288の方法:「あああ…続く」「aaa…続く」
0292nobodyさん
2006/08/11(金) 23:29:14ID:???0293nobodyさん
2006/08/11(金) 23:44:06ID:???>>291
ありがとうございます。
mb_strlenがマルチバイトを2文字として計算してるようなので$byteとかいう変数名にしてしまいました。
ややこしかったですね。
あとphpinfoで調べてみたところmbstring.internal_encodingはno valueになってますね。
これのせいかな、ファイルは全部utf-8で作ってます。
自分のサーバーじゃないんので設定変えたりはできないんですが、
他になにか良い方法があればぜひ…
0294nobodyさん
2006/08/12(土) 00:03:14ID:???, は「かんま」と呼ぶようにしてる。
ま、どでもいい事ではある。
0295nobodyさん
2006/08/12(土) 00:04:16ID:???0296nobodyさん
2006/08/12(土) 00:05:12ID:???0297nobodyさん
2006/08/12(土) 00:22:10ID:???カモン
0299nobodyさん
2006/08/12(土) 00:43:56ID:???> mb_strlenがマルチバイトを2文字として計算してるようなので$byteとかいう変数名にしてしまいました。
この時点でmbが正常に動作してないことに気付け。
> 自分のサーバーじゃないんので設定変えたりはできないんですが、
> 他になにか良い方法があればぜひ…
プログラム中でinternal_encodingは設定できる。
mb_strlenの挙動もそうだけど、1度はmb系のリファレンスを読みましょう。
0300nobodyさん
2006/08/12(土) 02:44:18ID:???Win環境でライブラリ(特にGD2)の関数を使用すると
ソースがshift-jisでなきゃうごかんのはphp.iniがおかしいのでしょうか?
激しく既出でしたらスルーしてください。
0301nobodyさん
2006/08/12(土) 04:15:24ID:???0302nobodyさん
2006/08/12(土) 08:04:13ID:???>>299
ありがとうございます!
ini_set("mbstring.internal_encoding","utf-8");
でいけました
0303nobodyさん
2006/08/12(土) 12:42:05ID:???0304nobodyさん
2006/08/12(土) 12:49:27ID:???連想配列でもいい気がするんですが、どうなんでしょうか。
0305nobodyさん
2006/08/12(土) 12:53:44ID:???0306nobodyさん
2006/08/12(土) 12:57:12ID:???この場合もJava同様getter, setterを作る方法がスマートなんでしょうか?
連想配列の方が楽な気がするんですよね。
どうなんだろう。
0307nobodyさん
2006/08/12(土) 13:05:10ID:???0308nobodyさん
2006/08/12(土) 13:08:08ID:???getter、setterごとに制御を入れるってことも滅多になかったもので。
DBのカラム名、画面の部品名称が変わるたびに、変数やメソッドの名前が変更になるので
すごい面倒だとJavaのときも感じていました。
実際、getter、setterを使っていて得したってことはなかったです。
痛い目にあっていないだけからかもしれませんが。
0309nobodyさん
2006/08/12(土) 13:42:36ID:???勇気を出して聞いたほうがいいぞ
とてつもなく、罵倒される可能性もあるが
0310nobodyさん
2006/08/12(土) 13:49:37ID:???連想配列があるPHPでも実装する利点ってどこにあるのでしょうか?
0311nobodyさん
2006/08/12(土) 13:52:48ID:???その辺を吟味し、自分なりの方法を確立していくのも
プログラムを書いていく上で必要なことだと思うが。
0312nobodyさん
2006/08/12(土) 13:57:54ID:???いやたぶん自分なりの方法を確立すると大変なことになります。
だから、デザインパターンなんてものがあるんだし。
ここ人が少ないんですね。
レスが少なくてむなしいw
0314nobodyさん
2006/08/12(土) 14:05:12ID:???勧告程度しかない
ようは、setter、getter が定義されていないプロパティに関しては
外部からアクセスするなというルール作りでしかない
一人で、作っているときはそれで問題ないかもしらないが、
複数人で使いまわす処理なんかを作ると、一時領域に使っている
プロパティを勝手に書き換えられて、後の動作がうまく動かなく
なるということは良く起こる
これが一つの理由
0315nobodyさん
2006/08/12(土) 14:05:24ID:???setter、getter 内の変更だけですむ可能性がある
これらの理由は、連想配列があろうがなかろうが関係ない
別の使い方としては、連想配列へのアクセスのためのヘルパーメソッド
として使う程度だろう
0316nobodyさん
2006/08/12(土) 14:05:59ID:???0317nobodyさん
2006/08/12(土) 14:10:30ID:???複数人で使いまわす処理なんかを作ると、一時領域に使っている
プロパティを勝手に書き換えられて、後の動作がうまく動かなく
なるということは良く起こる
プロパティ(変数?)を勝手に書き換えられてってありますが、
privateにすれば勝手に書き換えられることはないですよね。
Java板で質問したところ、すごいきっちりとした納得できる内容の
返信をもらいましたので、追記します。
0318nobodyさん
2006/08/12(土) 14:12:17ID:???本来はカプセル化のためだし、
getterやsetterにいろいろ仕込む手法もあったのだけど、
最近の流れはそうではないよね。
でも当初の思想がそうだったために、各種開発ツールや
ライブラリやカスタムタグがgetter/setterありきで設計されている。
ってとこが現実かな。
変数名とメソッド名を合わせて変更は、IDEが対応しているでしょ。
データを保持するだけの単純なJavaBeanは手書きするもんじゃないよ。
--
個人的にすごい納得できる内容でした。
0319nobodyさん
2006/08/12(土) 14:42:23ID:???理解に苦しむ
>privateにすれば勝手に書き換えられることはないですよね
まあ、別に変更可能なメンバ変数は public で
それ以外は private って使い方でもいいけど
0320nobodyさん
2006/08/12(土) 16:06:12ID:???そういう関数どこかにないですか?
0321nobodyさん
2006/08/12(土) 16:21:09ID:???0323nobodyさん
2006/08/12(土) 16:50:08ID:???0324nobodyさん
2006/08/12(土) 18:39:39ID:???> 正直、その答えで納得できる人間がなぜ、今まで悩んでいたのかが
> 理解に苦しむ
おそらく単に>>318みたいな答が欲しかったってだけの話だろ。
特に「本来は〜だけど、当初の思想が〜」のように「仕方なく使わざるを得ないだけ」みたいな言葉を待っていたって感じ。
俺はsetterとgetterは依然カプセル化に重要な役割を果たしてると思うけどね。
たとえばあるプロパティをpublicにするとどんな値にでも変更し得るけど、setterが毎回呼び出されるなら不正なデータや範囲外のものをチェックしたり修正したりと、整合性をとるのが容易になる。>>315の「仕様変更時に一箇所の変更ですむ」、という話につながる。
setterだけでもプロパティに代入されるものの整合性を保つことはできるけど、そのプロパティをsetすることのほうが多いのかgetすることのほうが多いのかによって、setter/getterの処理の重さを調節することもできる。
まあ、そんなこと考えずにガムシャラに動くものを作れば良いっていう今時の風潮からすれば、俺の言ってることも古い考えってことになるのかねぇ?
0325nobodyさん
2006/08/12(土) 19:06:56ID:???みんなどこぞの解説書によくあいてあるようなことを言うが
ちなみに俺の実務経験上では、データのみを保持するオブジェクトDTOなどにsetter,getterごとに範囲チェック処理などを入れることはまずナイ。
エラーチェックはエラーチェックで別の処理で行っている。
Javaの基本概念として、setter,getter使っているってことがホトンドだろう。
場所によりけりだけど。
0326nobodyさん
2006/08/12(土) 19:35:08ID:???それらの方法論の良い悪いではなく、自分で取捨選択・応用する頭を持たなきゃ、プログラマーではなく、ただのタイピストだ。
0327nobodyさん
2006/08/12(土) 19:59:25ID:???DTOの内部でエラーチェックetcをしないのは、オブザーバパターンなりコントローラなり、より広い範囲での例外処理のほうが有用だからってだけでは?
似た処理はなるべく同じところに書いたり隠蔽したほうがいい(=カプセル化)ってのはどういうレベルで見ても一緒だし、setterの目的が基本概念として、っていうだけだったら、publicじゃダメな理由がなくなってくる。
0328【閑話休題】
2006/08/12(土) 20:14:04ID:???全く無いとは言わないが、相当なレアケースだと思うんだよね。
前者はsetterでやるより入力段階などで処理した方がパフォーマンス上がるしエラー時処理の融通も利かせやすい。
ユーザからの入力処理以外でエラーチェックを行う必要性そのものがまず無いし。無闇に毎回チェックは無駄もいいとこ。
後者は現実問題として、仕様変更入った場合はsetter/getterのメソッド自体を組み直す羽目になるケースが多く、
結局呼び出し元も含めて修正せざるをえないことの方が多い。I/F仕様と中身の実装が食い違ってると後で混乱を招くし。
setter/getterで一括処置できるのは非常に些細なレベルの修正でしかなくて、そのためにメソッドを用意するのは手間の方が大きい。
結局、現時点でsetter/getterを使うメリットって「隣に座っているプログラマがまるで信用できない」場合くらいのもので、
それをコーディング規約やコードレビューやテストなどの事前のチェックでなく、実行時の処理でリアルタイムにチェックしようって
発想そのものが根本的に間違ってると俺は思うんだよな。プログラマの至らなさをユーザに不便として押し付けてるだけ。
大体、メソッドの使い方自体が間違ってるのを実行時に判定できたとして、それでどうフォローすんの?って感じ。
そんなレベルでこけてるってことはロジック全体も含めてそのプログラムは信用ならんわけで、まともに使い物にならんじゃん。
コアダンプみたいにデバッグ情報吐き出させるか、適当にごまかして動いてるように見せかけるか、そのくらいしかできないでしょ。
デバッグ中にはメリットもあると思うが、そんな動的チェックは納品時には外して欲しいもんだと俺は思うよ。
ひょっとすると中にはデバッグ用/納品用でsetter/getterを交換してるようなとこもあるかもしれんけど、まずやらんよね。
関数プロトタイプやデバッグシンボル付きコンパイルとかの仕組みに比べるとsetter/getterの考え方はイマイチだと俺は思うなー。
0329nobodyさん
2006/08/12(土) 21:40:56ID:???> 発想そのものが根本的に間違ってると俺は思うんだよな。プログラマの至らなさをユーザに不便として押し付けてるだけ。
コーディングは下流工程だし。
いかに至らないプログラマを効率良く使えるかってのは問題じゃん。
昔GCを自動化しようって流れが出てきたときにも似たようなこと言う奴はいた。
メモリ管理くらいプログラマならできて当然、とか言ってね。
今やメモリ管理を自分でやることほどアホな作業はない罠。
0331nobodyさん
2006/08/12(土) 21:57:55ID:???それは思いっきり実行時の高度で複雑な処理の話だしなー。
高級言語開発がいいかアセンブラ開発がいいかという議論と同レベル。
OS通さずに低レベルI/FでファイルI/Oや画面表示しようとかいうのと一緒
setter/getterの論議は設計図通りに作れない手抜き工事者がそこらにうようよしてるから、
建物の安全対策は建築時には考えずに監視員雇って定期的に見張らせよう、って話じゃね?
昨今のビルやプールでのトラブル続出を見てるとこれも現実的な選択だろう、ってことだろ。
0332nobodyさん
2006/08/12(土) 22:08:57ID:???別にいらないのなら、やらなくてもいいとは思うけど
現実的にそう主張して、仕事が上手くいっているのなら問題ないと思う
0333nobodyさん
2006/08/12(土) 22:16:27ID:???0334nobodyさん
2006/08/12(土) 22:31:24ID:???ってどういう状況?
使い方が間違っているってこと?
0335nobodyさん
2006/08/12(土) 22:37:09ID:???0336nobodyさん
2006/08/13(日) 00:13:38ID:???0337nobodyさん
2006/08/13(日) 00:33:32ID:???0338nobodyさん
2006/08/13(日) 01:22:57ID:???addChildとかを使用するつもりだったんですが、
自分のレン鯖のPHPは5.1.2でそれらのメソッドが使えないことに気づきました。
DOM/XMLの設定もenabledになってるようです。
できればsimpleXMLで実現したいんですが、
何か良い方法はあるでしょうか、どなたかアドバイスおねがいします。
0339nobodyさん
2006/08/13(日) 01:59:28ID:???0340nobodyさん
2006/08/13(日) 02:18:32ID:???0342nobodyさん
2006/08/13(日) 02:39:38ID:???0344nobodyさん
2006/08/13(日) 11:39:02ID:6zieGLC50345nobodyさん
2006/08/13(日) 13:50:16ID:???数字に関連づいている要素( abc[1] など ) の数を別々にカウントしたり、取り出す方法ってないんでしょうか?
0346nobodyさん
2006/08/13(日) 13:51:51ID:???0347nobodyさん
2006/08/13(日) 14:13:46ID:???0348nobodyさん
2006/08/13(日) 14:33:56ID:???取り出す方法を模索してもいいと思うけど
文字列と数字(内部的には全部文字列だが)のキーが混合になる
連想配列が本当に必要か、取得しやすい配列構成に変えるとか、
そっちを考えてすっきりさせた方がいいんじゃね
0349nobodyさん
2006/08/13(日) 14:41:19ID:???便利だしなぁ
0350nobodyさん
2006/08/13(日) 14:42:05ID:???0352nobodyさん
2006/08/13(日) 14:54:15ID:???0353nobodyさん
2006/08/13(日) 15:41:37ID:???fetchでかえられることぐらいしっとるわw
0355nobodyさん
2006/08/13(日) 16:05:19ID:???それとも、PHPで吐き出すのはやらないんですかね。
0356nobodyさん
2006/08/13(日) 16:12:02ID:???所詮テキストだろうから普通に出力すればいいべ
0357nobodyさん
2006/08/13(日) 16:19:07ID:???HTMLレイアウトコードを文字列としてPHPクラスに保持しておく場合、改行コード付にしなければ
吐き出した後のソースが汚くなるんですよね。毎回付加するのも見にくい(?)し。
やっぱり別ファイルにHTMLを書いて、それをincludeしてあげるクラスがいいのかな。
ある共通化されたテーブルレイアウトの中に値を書きたい場合は、開始用、終了用のメソッドを作って、
それぞれ別ファイルを作って・・・って面倒でなんか汚いですね。
HTMLのレイアウト情報の共通化ってどうやっているんだろう・・・・?
0358nobodyさん
2006/08/13(日) 16:24:30ID:???$uri = $_SERVER['REQUEST_URI'];
echo substr($uri,$p+1,strlen($uri)-strrpos($uri,'/'))
0361nobodyさん
2006/08/13(日) 16:26:17ID:???大枠のテンプレートとなるレイアウトページから
各ページで変化する個別のコンテンツ部分は
includeなりなんなりで読み込むってのは割と常套なやり方だと思うが
0363nobodyさん
2006/08/13(日) 16:26:57ID:???「HTMLレイアウトコード」って用語を聞いたことないんだけど、
一般的な用語なの?
ググってもヒットしないんだけど。
http://www.google.co.jp/search?q=%22HTML%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89%22
なんとなくテンプレートエンジン作ろうとしてる気はするけど。
0367nobodyさん
2006/08/13(日) 16:43:42ID:???1 <table ...>
2 <tr ...>
3 <td ...>
4
5 // ページごとにレイアウトを記述
6
7 </td>
8 </tr>
9 </table>
大雑把に書くと、1〜3行 が新テーブルの開始タグ、 7〜9が新テーブルの終了タグとして
使えたら便利だなぁって思ってます。
そうすると↓のように便利になるかなと。
1 <?PHP Layout::A( パラメータ(任意) ); ?>
2
3 // ページごとにレイアウトを記述
4
5 <?PHP Layout::_A(); ?>
こういう共通化ってどうやってますか?
0369nobodyさん
2006/08/13(日) 17:05:16ID:???ページのヘッダ・フッタのレイアウトの意味合いじゃなくて
テーブル単位(<table>〜</table>)でって意味合いで言ってるなら
それ全然便利じゃないぜごちゃごちゃするだけだ
そこは普通にtableタグ書きゃいい
0370nobodyさん
2006/08/13(日) 17:06:40ID:???テーブルに限らずいろいろ定義して使えるようなものね。
>>368 存在価値ありましたね。
PHPで作っている人いたので流用させてもらうことにしました。
0371nobodyさん
2006/08/13(日) 17:28:03ID:???0372nobodyさん
2006/08/13(日) 19:45:05ID:???0373nobodyさん
2006/08/13(日) 19:46:25ID:???0374nobodyさん
2006/08/13(日) 20:45:44ID:???見てると萎えてくる
0375nobodyさん
2006/08/13(日) 20:47:25ID:???0376nobodyさん
2006/08/13(日) 22:13:08ID:t3hDjrcl<?php
require_once('JSON.php');
$json = new Services_JSON();
$js1 = '[{"url":"http://www.yahoo.co.jp/","title":"Yahoo Japan!"}]';
$js2 = '{"url":"http://www.yahoo.co.jp/","title":"Yahoo Japan!"}';
$decoded = $json->decode($js1);
$hoge = $decoded->title;
print "title=".$hoge;
?>
と書いた場合に、$js2をパースした場合はうまく行きますが、$js1をパースした場合はうまくいきません。
"[]"が含まれているからだと思います。[]が含まれていてもうまくいく方法はありませんか?
0377376
2006/08/13(日) 22:16:41ID:t3hDjrcl0378nobodyさん
2006/08/13(日) 23:36:15ID:eyKLaI69処理後3秒待って他の処理したいときとかどうすればいいの
0379nobodyさん
2006/08/13(日) 23:39:16ID:???0380nobodyさん
2006/08/13(日) 23:39:45ID:fTOpOca20381nobodyさん
2006/08/13(日) 23:42:14ID:???0382nobodyさん
2006/08/14(月) 01:10:19ID:???0384nobodyさん
2006/08/14(月) 02:07:14ID:???オマエモナー
0388nobodyさん
2006/08/14(月) 02:45:01ID:???0389nobodyさん
2006/08/14(月) 03:10:13ID:???0390nobodyさん
2006/08/14(月) 06:49:54ID:???0391nobodyさん
2006/08/14(月) 07:48:30ID:???替わりのSQL文だれか教えて
0392nobodyさん
2006/08/14(月) 08:21:09ID:???つ http://pc8.2ch.net/test/read.cgi/db/1148936556
0393nobodyさん
2006/08/14(月) 11:30:35ID:???>ファイルポインタをファイルの 終端に置きます
実際は、オープンした直後のファイルポインタは先頭ですよね。
ファイルポインタがが終端に置かれるのではなく、ファイルポインタがどこを指していても書き込みは終端から行われるという事でしょうか。
0395nobodyさん
2006/08/14(月) 11:46:32ID:???不都合というか、公式のマニュアルが、実際の動作と全く真逆の事を言うという事があるのかなぁと思いまして。
翻訳時に表現がややずれてしまったとかでしょうか?
0396nobodyさん
2006/08/14(月) 11:47:42ID:???今'a'で開いた直後にftellで調べたら確かに0だったが、
http://jp.php.net/manual/ja/function.ftell.php
ftell() は、("a" フラグ付きでオープンされた) 追加のみ可能な
ストリームに対する結果も未定義です。
ってあるから'a'モードが特殊で
実際はファイルポインタは終端にあるんじゃね?
0398nobodyさん
2006/08/14(月) 11:54:53ID:RvQDryMl01:640x480
02:800x600
03:960x600
04:1024x768
05:1600x1200
見たいな感じになってるんですが
番号と解像度を二次元配列に格納するのにうまいこといかないんですけど
どのへんがマズイですかね?
以下ソースです
$kaizoudo = array();
$fp = fopen('kaizoudo.txt', 'r');
for($k = 0;!feof($fp);$k++){
$line = chop(fgets($fp));
$temp = explode(":", $line);
$kaizoudo[$k] = array($temp[0], $temp[1]);
print "$kaizoudo[$k][0]:$kaizoudo[$k][1]<BR>";
}
これを実行すると
Array[0]:Array[1]
みたいなのが出力されちゃいます
0399nobodyさん
2006/08/14(月) 12:03:51ID:???だから print "$kaizoudo[$k]";の結果表示は Array だ。
その後ろに[0]ってかいてあるよな?
だから print "$kaizoudo[$k][0]";の結果表示は Array[0] だ。
これが今の状態。
つまりprintが一次元配列か二次元配列か分かってないのが原因。
{}で囲むと大丈夫だよ。
0400nobodyさん
2006/08/14(月) 12:07:36ID:???0401nobodyさん
2006/08/14(月) 12:20:14ID:???なるほど!
格納はちゃんとできてたんだけど表示がうまくいってなかったんですね。
分かりやすい解説ありがとうございました。
0402nobodyさん
2006/08/14(月) 12:24:56ID:QXYq1pPLPHP 5.1.4
の環境で strtolower で誤変換が発生するみたいだが
これってバグかな?
<?php
$str = '検索エンジン';
echo strtolower($str); // 「検索トンヘン」と表示される
?>
0406nobodyさん
2006/08/14(月) 12:48:46ID:???Shift_JISで「検索エンジン」はアスキーコードで以下のようになる。
140 159 141 245 131 71 131 147 131 87 131 147
でだな、途中の71と87はGとWのアスキーコードなんだよ。
その部分はアルファベットとして見られて、小文字に変換され、103(g)と119(w)になる。
140 159 141 245 131 103 131 147 131 119 131 147
という値が結果として返る。これはShift_JISで「検索トンヘン」となる
0407402
2006/08/14(月) 12:49:08ID:???echo mb_strtolower($str, 'SJIS');
で出来ました。ありがとうです
>>405
精進します
0408nobodyさん
2006/08/14(月) 13:54:45ID:???0409nobodyさん
2006/08/14(月) 14:52:12ID:???文字列の末尾に「表」という漢字があるとなぜか「\」が付加されてしまいます。
例えば、フォームに「あいうえお表」と打ったとすると、実際に取得する値は「あいうえお表\」となってしまうのです。
他の漢字やひらがな、カタカナ等では発生しないようです。
該当部分のソースはこのような感じです。
$title = $_REQUEST['title'];
<input name="title" type="text" id="title" value="<?php echo $title; ?>" />
どのようにすればよいのか全く検討もつかず、こちらでお伺いした次第です。
何卒ご指南のほどをよろしくお願いいたします。
サーバー : IIS 5.1
PHP : 5.1.4
0413409
2006/08/14(月) 16:47:52ID:EO88qrv9>>410
既知の問題だったのですね。
ありがとうございます。
>>411
そうですね。REQUESTは危険かもしれません。
変更したいと思います。
>>412
PHP等のスクリプトではやはりShift-JISは適さないのですね。
大人しくUnicodeかUTFにしてみます。
無知なもので、おかしなコーディングもあったようでしたが、見事解決することができました。
質問と関係のない部分まで指摘していただき非常に助かりました。
下らない質問に返答していただき、ありがとうございました。
0414nobodyさん
2006/08/14(月) 17:06:51ID:???iriaなどを使っても上手く保存できません。
ご教授願います。
0415nobodyさん
2006/08/14(月) 17:13:13ID:???0416nobodyさん
2006/08/14(月) 17:14:06ID:???0417nobodyさん
2006/08/14(月) 17:18:15ID:???サーバサイドで動くスクリプトがDLできたら俺は恥ずかしい思いをすることになる。
やめてくれ
0419nobodyさん
2006/08/14(月) 17:25:57ID:???0420nobodyさん
2006/08/14(月) 18:28:34ID:???rootで入って権限のところを見るとユーザーはちゃんと作成されていました。
何が原因なのでしょうか・・・
0423nobodyさん
2006/08/14(月) 20:08:55ID:???IPアドレスを記録しておくのが良いでしょうか?
0424nobodyさん
2006/08/14(月) 20:10:38ID:FIfhz0i4<form action="./" method="POST">
とありました。手ものPHPの入門書には、<form action=のあとにはhoge.phpというふうに
phpファイル名を指定していたのですが、
上記の<form action="./" method="POST">の場合は、どのファイルにPOSTされるのでしょうか?
サーバOS:Windows2000
Webサーバ:Apache2
PHP:5.1.4
です。
0425nobodyさん
2006/08/14(月) 20:12:23ID:???0426424
2006/08/14(月) 20:29:55ID:???その場合やはり、サーバの設定によるんですかね。
0427nobodyさん
2006/08/14(月) 20:30:44ID:???詳細な目的にもよるけど、IPアドレスによる判断はベターだろうね。
>>424
ブラウザ側は/で終わるURLに対してPOSTする。
GETで試せばURLに出るからすぐ分かる。FxのLiveHTTPHeaderでもいい。
受け取るのはApacheで設定したDirectoryIndex
だからindex.cgiかも知れないし、index.htmlかも知れない。
0428nobodyさん
2006/08/14(月) 20:40:19ID:???ホームページ丸ごとDLするソフトで出来たよ → Junshu
別にクラッキングじゃないしね
でもセキュリティかかってたらムリだよ
0429nobodyさん
2006/08/14(月) 20:50:49ID:???$b = explode(",", $a);
echo $b;
としたとき、Arrayとでます。
結果として、appleorangelemonと出したいのですが、
echo $b[0].$b[1].$b[2];
の形式だと、配列の値が増えるに連れて大変になっていまいます。
もっとスムーズに書く方法はありませんでしょうか?
0430nobodyさん
2006/08/14(月) 20:57:55ID:???0431nobodyさん
2006/08/14(月) 21:02:26ID:???implodeですか。
explodeと同じものだと思い込んでいたので、見落としてました。
$b = implode("", $a)でいけそうですね。
どうもありがとうございます。
0432nobodyさん
2006/08/14(月) 21:35:25ID:???やるなら
$c = implode("", $b);
echo $c;
で、>>429でやりたかったことは
$b = str_replace(',', '', $a);
echo $b;
なんじゃないの?
0433nobodyさん
2006/08/14(月) 21:41:03ID:???$aの部分を配列にしました。
書き忘れててすみません。
$a = array("apple", "orange", "lemon");
$b = implode("", $a);
一応配列にいれたものを表示したかったので、
あんな感じのソースになりました。
0434nobodyさん
2006/08/14(月) 22:27:53ID:???その変数から1行1行取り出すにはどうすればいいですか?
0438423
2006/08/14(月) 22:54:57ID:???ありがd
質問ついでに・・・・
この場合、IPアドレスとホストだと、どっち記録しておくのがよりベターでしょうか?
どっちも変わらないのでしょうか?
0440nobodyさん
2006/08/14(月) 22:59:09ID:WuPf1wcIXHTML文書内でPHPを使う時のXML宣言のことなんですが、
<?="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"?>
↑こうやってやってみたのですが、最初の行に改行が入ってしまいます。
最初の行の改行を取り除くにはどうするべきでしょうか?
0441nobodyさん
2006/08/14(月) 23:03:33ID:???<?="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"?>
が書かれている前に改行が入ってるない?
違うなら、動作環境教えて
0442nobodyさん
2006/08/14(月) 23:04:59ID:???普通はIPアドレスを使うな。
ホスト名は無駄に長いし、サーバーによっては自動で逆引きできないし、
逆引きできたとしてもしない方が負荷は低いし。
0445440
2006/08/15(火) 00:05:55ID:???前に改行は入ってません。
鯖はこちら↓
http://www.land.to/shiyou.php
>>443
詳しくないのですがBOMってメモ帳で編集した時に付くんじゃなかったっけ?
ちなみにTeraPadで編集しました。
0447446
2006/08/15(火) 00:09:10ID:???0448nobodyさん
2006/08/15(火) 00:15:31ID:???いや、だから、BOM を付けずに保存してみなよ。
どんなエディタを使っていても BOM を付けることは出来るよ。
0449nobodyさん
2006/08/15(火) 00:31:13ID:???0450nobodyさん
2006/08/15(火) 00:54:56ID:???0451nobodyさん
2006/08/15(火) 00:56:27ID:???無限ループでもさせたらどうするんだ。
0452nobodyさん
2006/08/15(火) 03:02:08ID:???無限ループよりリソース食いまくりの方がこえー。
0453nobodyさん
2006/08/15(火) 07:29:31ID:tOktgI2K定数ってどういうときに使うんですか?変数じゃだめなんですか?
定数の機能(役割?)は変数の機能の一部・・・というか変数に包括されているように感じて。
マニュアルとか解説本を読み始めたばかりなんですが・・・。
0454nobodyさん
2006/08/15(火) 07:50:20ID:???ただし、コード中で「値を変えるな」もしくは「値には意味がある」といった意図を込める時に使う。
例えば途中で値が差し替えられてないことを前提にコードが読めるので読みやすくなる。
0455nobodyさん
2006/08/15(火) 07:58:29ID:???画像がtext形式になってしまいます。
画像として処理してくれる関数などありますでしょうか?
スクリプト
$fp = tmpfile();
fwrite($fp, $img);
rewind($fp);
$temp = fread($fp);
<img src="<?php $temp ;?>">
0456453
2006/08/15(火) 08:08:13ID:???レスどうもです。
定数は値が変わらないことを明示させるために使うんですね。
コードの読みやすさとかにまで意識が回りませんでした。
ありがとうございました。
0457nobodyさん
2006/08/15(火) 09:59:53ID:OANfrr1E現在の設定は
Multibyte Supportenabled
Multibyte string enginelibmbfl
HTTP input encoding translationenabled
Multibyte (japanese) regex supportenabled
Multibyte regex (oniguruma) version3.7.1
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
DirectiveLocal ValueMaster Value
mbstring.detect_orderautoauto
mbstring.encoding_translationOnOn
mbstring.func_overload00
mbstring.http_inputSJISSJIS
mbstring.http_outputSJISSJIS
mbstring.internal_encodingEUC-JPEUC-JP
mbstring.languageJapaneseJapanese
mbstring.script_encodingno valueno value
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value
といった感じで設定していて、MySQLはujisを使用してます。
この間まで、MySQLのデータを問題なく表示できたのですが、最近文字化けするようになりました。
おかしくなる前にMySQLを5.0.24にアップしたので、それが原因かもしれませんが・・・
もしご存知の方がいらっしゃったら教えてください
環境はMacOSX10.4.7 Apache2.2.2 PHP 5.1.4 MySQL 5.0.24
です。よろしくお願いいたします。
0458nobodyさん
2006/08/15(火) 10:00:22ID:7B9Fe4ha・ブラウザ上のJavascript
・submit後のPHP(Validateクラス等)のメソッド
・INSERT時のDBが履くエラー
↑の3つが主なチェックタイミングだと思うんですが、
2回目のPHPでのチェックを無くして、3つ目のDB登録時に戻ってくるエラーコードで
ケース文で対処するのはセキュリティ上何か問題ありますか?
PDO等の接続抽象オブジェクトのバインド変数使う前提ですが・・・
0459nobodyさん
2006/08/15(火) 10:39:55ID:???mysqlは4.0.x系以前とそれ以上はかなり違う
3系や4.0.x系から5.0.24にアップデートしたなら
やっぱmysqlと関連する問題じゃないかな
上記の情報だけで一概に何が原因か特定はできないが
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?FAQ#content_1_40
こことか参考にしてみれば
0460nobodyさん
2006/08/15(火) 10:44:28ID:???数字などを分かりやすくする場合
定義済みの定数はほとんどそう
LOCK_EXとかSEEK_SETとかよく使うけど実際の数字は知らないし
0461nobodyさん
2006/08/15(火) 11:07:13ID:OANfrr1E早速の回答ありがとうございます。
ただ、わたしは5.0.22からのアップデートなので、いわゆる4.1でのcharacter関連の変更とは関係ないと思います。
5.0.22に戻すのもちょっと嫌ですが。
0462nobodyさん
2006/08/15(火) 13:14:41ID:???apache_request_headers()
と同じことを実現するにはどうすればいいでしょうか?
Apacheのモジュールとしてでしかこの関数は機能しないようです。
へるぷみー
0465nobodyさん
2006/08/15(火) 13:35:54ID:???HTMLから勉強しなおせ。
>>458
Javascript → ユーザビリティの向上
Validator → PHPスクリプトが期待するデータ形式かをチェックし、実行時エラーや想定外の動作を回避
他言語構文(SQL, HTMLなど)構築時 → 他言語での特殊文字を排除し、SQLインジェクションやXSSを回避
DBが吐くエラー → DBとの不整合をチェック
Webセキュリティに関する書籍はいくつか出ているので読んでおけ。
>>462
環境変数
0466462
2006/08/15(火) 13:42:20ID:???function emu_getallheaders() {
foreach($_SERVER as $h=>$v)
if(ereg('HTTP_(.+)',$h,$hp))
$headers[$hp[1]]=$v;
return $headers;
}
?>
本家でこれが書いてあるんですが、
全く同一の処理でしょうか?
某プログラムでこの関数を利用しても上手くヘッダーを取得できない
ようです。
apache_request_headers って $_ENVも含みますか?
0467nobodyさん
2006/08/15(火) 13:51:03ID:???画像出力とHTMLを同じスクリプトで同時に吐けないよ。
ヘッダーが違うからね。
<img src="img.php?<?=$id;?>">
とかにしなさい。
0469nobodyさん
2006/08/15(火) 14:02:34ID:???どう考えても、PHPとは関係ない質問だろう
問題はMySQLのバージョンをあげたら発生したということは
十中八九、MySQLの問題だろう
まずは、
SHOW VLIABLES lilke 'char%'
で、文字コードセットがどうなっているか確かめる
それで、character_set_server がこっちの想定してない文字コードで
表示されているのなら
ALTER DATABASE で文字コードを再設定する
character_set_client などが違う場合は
SET NAMES などで文字コードを、PHPから接続するたびに再設定しなおす
0472nobodyさん
2006/08/15(火) 17:41:13ID:cZ5ZgBLvhtmlのデザイン部分はcssで分けて管理しますよね。
phpでは、html部分にスクリプトを入れて、動的な処理ができますが
デザイン部分のcssはそのままですよね。
そこで、phpでhtmlを動的に処理するように、cssをphpで動的に変化させたいと考えたので
htmlの<link rel="stylesheet" type="text/css" href="../style.css">部分を
<link rel="stylesheet" type="text/php" href="../style.php">
のように書き換えたのですが、cssとしての効果を発揮しません。
これはhtmlの仕様で、css部分をphpで処理することはできないのでしょうか?
Apacheの設定を変えて、拡張子がcssでもphpとして処理するようにすれば良いのでしょうが
レンタルスペースだとそれもできませんよね?
0474nobodyさん
2006/08/15(火) 17:51:02ID:???いや、CSSのContent-typeはtext/cssだから。
PHP側でheader('Content-type: text/css')吐かせれば問題無いし、linkタグも書き換えろよ。
もうちょっと勉強しろよ
0476nobodyさん
2006/08/15(火) 17:57:56ID:???ありがとうございます。
>style.cssを生成すれば
の意味が良くわからなかったので『php css 生成』で検索したところ
cssのphp化という記事がHITしまして、その方法で満足のいく結果を得ることができました。
別ファイルにこだわる理由としては、作ろうとしているページが30ページくらいになる予定で
その30ページのどのページも記事が違うだけで、デザインは同じにしたかったので
毎回、html内に書くのは面倒くさいなぁ
というだけです。
あとは、管理のしやすさでしょうか?
何はともあれ、>>472さんの『生成』という言葉が解決に結びつきました。
ありがとうございました。
0479nobodyさん
2006/08/15(火) 18:10:09ID:???>別ファイルにこだわる理由としては、作ろうとしているページが30ページくらいになる予定で
>その30ページのどのページも記事が違うだけで、デザインは同じにしたかったので
普通に外部cssで良いじゃん?
0480nobodyさん
2006/08/15(火) 18:20:32ID:D3BJyJj0fopen(サイズが大きいファイル,"r");
fopen(サイズが小さいファイル,"r");
これって処理速度は変わるんですか?
0481nobodyさん
2006/08/15(火) 18:26:27ID:???0482nobodyさん
2006/08/15(火) 18:57:49ID:D3BJyJj0開くファイルが大きかろうが、小さかろうがファイル用のバッファの大きさは変わらない、ファイルを開いた時に全てメモリに展開するわけではない という理解でいいんでしょうか?
0484472
2006/08/15(火) 19:27:14ID:???精進いたします。
ご迷惑おかけしました。
>>477
----- style.php の方の変更点 -----
拡張子をcss → php
ファイルの一番最初に
<?php header("Content-Type: text/css"); ?>
を追記
これで、このファイルは拡張子がphpなのでphpとして処理され
しかし、htmlからはcssとして解釈してもらえるみたいです。
-----example.phpの方の変更点-----
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="../style.css">
となっていたものを
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="../style.php">
と書き換えるだけです。
すべてのcssをphpに書き換えるわけではなく、あくまでもファイル指定する部分の拡張子だけをphpに直すとうまくいくみたいです。
>>479
普通の外部cssだとphpとして処理してもらえないので
example.php側からの処理を受け取って、cssを書き換えたかったのです。
程度の低い質問に付き合ってくださった方々ありがとうございました。
0485nobodyさん
2006/08/15(火) 19:40:18ID:D3BJyJj0バッファ(ストリームであってるかな?)は、いつ作られるんですか?
0487nobodyさん
2006/08/15(火) 20:31:05ID:lK1TSrGk文字化けの原因はmb_convert_encodingだった。
お騒がせいたしました。
0488nobodyさん
2006/08/15(火) 20:51:22ID:D3BJyJj0では、ストリームとはなんなんでしょうか?
0489nobodyさん
2006/08/15(火) 20:55:06ID:???0491nobodyさん
2006/08/16(水) 00:45:48ID:???{
function getB()
{
return "nullpo";
}
}
class A
{
var $elements = array();
function newElement()
{
$element[] = new B;
}
function getCurrentElement()
{
echo end($this->elements)->getB();
}
}
> end($this->elements)->getB();
こんな感じで配列にはいってる最終の要素のメソッドを呼び出したいんですが
うまくいかないですー
どこがおかしいかってのと
どうやったらうまくいくかってのをどうかご教授ください
0492nobodyさん
2006/08/16(水) 01:05:43ID:NkNMn0adwindowsXP SP2
apache2.0
PHP 5.1.4
という環境です。
アップローダーで、必ず画像とコメントを一緒に表示させたいのですが、どのようにしたらよいでしょうか。
つまり、画像のアドレスを開くと必ず、アップロード時のコメントとセットで表示するようにしたいのです。
以下のような形で試したのですが、画像ではなくバイナリが表示されてしまいます。
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<TITLE></TITLE>
<body>
こめんと<br />
<?PHP
readfile("./files/1/1.jpg");
?>
</body>
<HTML>
・flashでHTMLを読み込んで出力
・javascriptで画像ファイルを読み込んで出力
必死扱いて他の方法を考えて探してみたのですが、やり方がわからずじまいでした。
どうかお力添えをして頂けないでしょうか。
0493nobodyさん
2006/08/16(水) 01:29:11ID:???Perlじゃあるまいし、関数の戻り値に直接->なんて演算子は使えないんじゃない?
function getCurrentElement()
{
$e = end($this->elements);
echo $e->getB();
}
でどうよ?
0494nobodyさん
2006/08/16(水) 01:30:32ID:???ストリームは概念。
データを出力する処理を連続して行う事が出来る相手が出力ストリーム
逆が入力ストリーム。
たとえばコンソールは文字出力を連続して行う事で文字列を表示できるわけだ。
ファイルの場合、ファイル名と位置を指定して読み書きが出来るが、
printで文字列を連続して出力するようなインターフェイスを間にはさむ事
によって、ストリームとして利用することも出来る。
というか、ファイルをストリームとして扱う仕組みを、だれかが作ってくれた
からそれが利用できる。そういうもの。
0495nobodyさん
2006/08/16(水) 01:32:56ID:???HTMLの基本として、HTML本文と写真は必ず別ファイルでないといけない。
同じプログラムでいっぺんに両方とも表示させようとしてもムリ
そもそもそのHTMLじゃIMGタグがどこにもないじゃんか。
<HTML>
<HEAD>
<META http-equiv="Content-Style-Type" content="text/css">
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<TITLE></TITLE>
<body>
こめんと<br />
<IMG SRC="別のPHPプログラム">
</body>
<HTML>
ってやって、その別のPHPプログラムで画像を出力させなきゃダメかと。
つーかこれ、
<IMG SRC="./files/1/1.jpg">
じゃダメなのか?
0496nobodyさん
2006/08/16(水) 01:37:30ID:???やっぱそれしか方法がないんですね.
どうもありがとうございました.
0497nobodyさん
2006/08/16(水) 01:37:57ID:???悪い事だとは思わんが
0498nobodyさん
2006/08/16(水) 01:51:44ID:???出典は忘れてしまったが
“HTMLを取得してからプログラムの勉強に取り付け”と言って有名になった人が居たなあ。
実際、ハイパーテキストマークアップ言語はプログラム言語ではないし、何の関係があるんだろう……?
0499nobodyさん
2006/08/16(水) 02:09:56ID:???function newElement()
{
$this->element[] = new B;
}
>>495
過去ログ嫁。>455
0501nobodyさん
2006/08/16(水) 02:16:19ID:???hogehoge
}
if(hoge)
{
hogehoge
}
どっち派?
0503nobodyさん
2006/08/16(水) 02:21:13ID:???0504nobodyさん
2006/08/16(水) 02:22:25ID:???functionやclassならともかくifなら上。Cでもそう。
PEAR他PHPの主要開発系でも上推奨。
0505nobodyさん
2006/08/16(水) 02:24:26ID:???C言語でも歴史的(というか習慣的?)な理由でそうなってる。
0506nobodyさん
2006/08/16(水) 02:24:29ID:???0507nobodyさん
2006/08/16(水) 02:25:32ID:???{
hogehoge
}
見やすいのでこっち
0508492
2006/08/16(水) 02:37:12ID:???仕組みの解説有り難うございます。
>>495
<IMG SRC="別のPHPプログラム">
こういう方法があったのですね。知りませんでした。
これを使おうと思います。
有り難う御座いました。
画像イメージアドレスへの直リンも防ぎたかったのです。
0510nobodyさん
2006/08/16(水) 03:07:20ID:665idoIEなぜかUnicodeの「〜(もう少し太くてぎざってるやつ」になってしまいます。
スクリプト自体はUTF-8で動いておりUTF-8のページから書き込んだ場合は正常に取得できます。
どういった原因が考えられますか?
0511nobodyさん
2006/08/16(水) 03:11:52ID:???if (hoge){
}
0512nobodyさん
2006/08/16(水) 03:12:05ID:???0513nobodyさん
2006/08/16(水) 03:58:59ID:???http://pc8.2ch.net/test/read.cgi/php/1153652403/
でも書いたけど、それが有名な「波ダッシュ問題」だ。
個別に置換して対応して下さい。
0514nobodyさん
2006/08/16(水) 04:01:00ID:???http://pc8.2ch.net/test/read.cgi/php/1153652403/822
どうせ見れないだろうけど。
0516nobodyさん
2006/08/16(水) 04:27:21ID:???Unicode が抱えている諸問題をろくに知りもせずに
安易に UTF-8 を勧める人が最近多いと感じます。
0517nobodyさん
2006/08/16(水) 04:42:30ID:???最終的にEUC-JPがベストって事?
0518nobodyさん
2006/08/16(水) 04:56:14ID:???"♪"から?を得るにはどーすればいいですか?
0519nobodyさん
2006/08/16(水) 04:58:21ID:???0520nobodyさん
2006/08/16(水) 05:04:23ID:???自分は結構書いてきたつもり。
「波ダッシュ問題」は文字コード変換が介在しなければ表に出てこない問題なので
UTF-8 で統一してれば問題なし、とでも思っているんでしょう。
自分は EUC-JP が無難だと思いますがね。
ただ、EUC-JP で統一出来ない事例(携帯向けなど)も多々あるので
どれが最適かってのは一概には言えないと思います。
0521nobodyさん
2006/08/16(水) 05:06:18ID:GaCZ9Sq1ストリームの理解ってこんな感じでいいんでしょうか?
可変幅のメモリ領域である(そもそも大きさという概念がない??)
ストリームの開始位置がファイルポインタに記憶される
ストリームから実際にファイルにフラッシュする作業は自動的に行ってくれる
0522nobodyさん
2006/08/16(水) 06:32:13ID:???様々なリソース(ファイル、文字列、バッファ、ネットワーク上のオブジェクト etc)に対して、
統一された手段で(主にシーケンシャルな)アクセスを提供するのがストリームという概念。
ま、理解出来るか知らんけどがんばれや。
0523nobodyさん
2006/08/16(水) 08:10:44ID:???session.cookie_lifetimeを「0」に設定しているのに
時間が経つとセッションが切れてしまいます。
その時によってどれくらいの時間で切れるかはまちまちなのですが、
早いときには20分程度で切れてるようです。
セッションが切れる時間の長さから考えて、
session.gc_maxlifetime(値は1440)あたりが関係していそうな気もしますが、
session.cookie_lifetimeの設定(ブラウザ閉じるまで)はなぜ無視されちゃうのでしょうか・・・。
0524523
2006/08/16(水) 08:12:26ID:???24時間経っても切れてない時もあります。
0525nobodyさん
2006/08/16(水) 08:30:48ID:???UTF-8の問題って何?
0526nobodyさん
2006/08/16(水) 09:04:15ID:???ん?
session.cookie_lifetimeっていうのは
session id をcookieに保持しておく時間だったような。
でもって「0」は特殊な意味を持っていて、ブラウザ閉じる
とcookie破棄を意味するから、「0」を設定している限り
「ブラウザを閉じる=セッション切れる」を意味するはず
ですけど?
0527nobodyさん
2006/08/16(水) 09:08:31ID:???session id に結び付けられたセッションデータ
を破棄するまでの時間だったかな
ただ、その時間を経過すれば「必ず」破棄されるわけでは
なかったような。gcなんとかって他に定義あるでしょ?
そこでgcを行う確率を設定できたような
0529nobodyさん
2006/08/16(水) 09:17:37ID:???ストリームとは プログラミング
とかでぐぐった?
>>522 が書いてる通り
概念だから、まぁ、こんなもんか。ぐらいの理解で
いいんじゃないの。
0530nobodyさん
2006/08/16(水) 09:22:13ID:???実際には、HDDという機械の動きだから、1byte読むと命令
してもすぐには読めない。命令→待ち→データを受取る
というような「制御」を行う必要がある。OSがストリームとか
いう概念で、そのへんをうまくオブラートに包んでくれてる。
OSレベルで言うところのストリームってこんな感じかな
0531523
2006/08/16(水) 09:34:15ID:???あ、分かりにくかったかもしれませんが、>>523、>>524の状況は全て「ブラウザは一切閉じない」状況です。
ずっとブラウザを開き続けているのに、ときどきセッションが切れてしまうんです。
>>527
gcの確率は1000分の1にしてあり、なおかつ、セッションを使って
同時にログインするユーザー数は2(まだテスト中なのでどちらも自分でログイン)しかないので、
ガーベッジコレクションの影響は無視できる程度、と私は解釈しているのですが・・・
0532nobodyさん
2006/08/16(水) 09:57:17ID:???session.cookie_lifetime=0
session.gc_maxlifetime=1440
session.gc_probability=1
session.gc_divisor=1000(確率1/1000)
で、ブラウザを開きっぱなしにしていると約20分程度で
セッションが切れる。ってことですね。
なんでだろ?
ブラウザのcookieの有効期限確認してみるとか
PHPデフォルトであるなら/tmpのセッションデータファイルの
タイムスタンプみてみるとか
あっ、PHP4.2.2以前でWindowsでFatとか条件がハマれば
早く切れるバグってのがあったぽいね
0533nobodyさん
2006/08/16(水) 09:58:36ID:???LinuxとかならCronで/tmpを掃除してる処理が動いてたりして
0534nobodyさん
2006/08/16(水) 10:12:18ID:???cookieが取得できねーのか
そのあたりを切り分けろ
0535nobodyさん
2006/08/16(水) 10:34:55ID:GaCZ9Sq1ストリームは、概念であるという事は理解できました。
ストリームが具体的にどういうものになるかは、状況や環境よって、違うということですよね?
でも、多くの場合、それはメモリ上のバッファのようなものでしょう?
0536nobodyさん
2006/08/16(水) 10:37:44ID:GaCZ9Sq1ttp://koho.osaka-cu.ac.jp/~sugi/Clang/C9.html
0537523
2006/08/16(水) 11:22:32ID:???おっしゃる通りの設定です。PHPのバージョンは4.3.1です。
また、スクリプトが動いているのはLinuxで、クライアント側はXPです。
で、ブラウザ側になぜかCookieが見当たりません。他のサイトのCookieは確かにあるのですが、
自分が今問題にしている自サイトのCookieファイルが保存されていないようです。
でも実は以前にはセッションを開始すると確かにCookieがブラウザに保存されていたのですが、
あるタイミングから保存されなくなってしまいました。
おそらくクライアント側パソコンの「マシン名」を変更した時からだと思います。
しかし、Cookieファイルが見当たらないにも関わらず、「ieHTTPHeaders」を使って通信内容を確認してみますと、しっかり
「Cookie: test-session=6e24cc246481866c7d52f*********」といった感じで、セッションIDが正しく送信されています。
セッションの動作(ログインやログアウトなど)も期待通りの動作ですが、前述のように時々勝手にセッションが切れてしまうのが唯一の問題です。
もう何がなんだかワケがわかりません・・・。
0538nobodyさん
2006/08/16(水) 11:24:18ID:???変な理解に仕方だな
ストリームという概念を、実装するときにメモリを利用するけど
ストリーム=バッファ ではないよ
車を動かすのに、エンジンを使用するけど
「多くの場合、車はエンジンのようなものでしょうか?」
と聞いているようなものだ
0539523
2006/08/16(水) 11:24:50ID:???cronでは掃除しておりません。
>>534
セッションが意図しないタイミングで切れてしまった時にsession.save_pathで指定されている
ディレクトリを確認してみましたところ、セッションデータファイル自体が
消えてしまっているようです。
0540nobodyさん
2006/08/16(水) 11:49:29ID:???その設定だと、アクセスがあるごとに1/1000の確率で
そのアクセスよりも20分以上前のセッションファイルが消去される。
アクセス数が少なければ消されにくい。
また、例えアクセス数が多くても、確率で動いているので運が悪ければいつまでたっても消されない。
>>537
期限が0のクッキーは保存されない。そういう仕様。
0542nobodyさん
2006/08/16(水) 12:34:06ID:???リロードしてるうちに普通にgc起動しちまって
セッションデータが消えてるだけじゃね?
http://jp.php.net/manual/ja/ref.session.php
session.gc_divisorはPHP 4.3.2以降ってなってるけど
使ってるのは4.3.1なんだよな?
0543nobodyさん
2006/08/16(水) 13:35:57ID:???0544523
2006/08/16(水) 13:37:07ID:???> そのアクセスよりも20分以上前のセッションファイル
これは「ファイル生成時刻が20分以上前の」セッション・ファイルのことだと解釈して良いのでしょうか?
> 期限が0のクッキーは保存されない
とのことですが、ではその場合ブラウザはどうやってセッションIDを(一時的にでも)保存し、どうやってサーバーに対して送信しているのでしょうか?
前述しましたように「ieHTTPHeaders」で確認しますと、たしかにセッションIDはローカルのどこかに記憶されているようです。
Cookieファイルが見当たらないのに値が保存されているということは、あとはメモリ上に確保されている?というくらいしか思いつきません。
0545523
2006/08/16(水) 13:41:27ID:???>リロードしてるうちに普通にgc起動
私もその可能性くらいしか思いつかないのですが、
なにしろgcの確率が1/1000で、しかもアクセス回数は自分だけなので
せいぜい数十分の間に数回〜数十回程度です。
なのに、こうした数字の割には、頻繁にセッション切れが起こっている気がします。
それと、「session.gc_divisorはPHP 4.3.2以降」という記述がそのページに見当たらないのですが…??
念のため私の環境でphpinfoをやってみましたが、たしかに4.3.10でsession.gc_divisorの項目も存在しています。
0546523
2006/08/16(水) 13:43:43ID:???実は鯖にPleskが入っておりまして、
なかなか怖くてPHPのバージョンアップに踏み切れません・・・
(Plesk自身がPHPで構築されているため、いろいろ依存関係とかあるらしいです)
どなたかPlesk環境でPHPのバージョンアップを経験された方いらっしゃいますでしょうか?
0547nobodyさん
2006/08/16(水) 14:22:32ID:???10以下の場合は終了で、
11以上の時は10以下になるまで乱数の生成をやりなおし、
10以下になったところで終了し、
何回乱数を生成しなおしたかをカウントしたいのですが、
どのように書いたらいいのかわかりません・・・
$rand = rand(1, 20)
if($rand <= 10) {
echo "終了";
}
elseif($rand >= 11) {
ここでループの処理?
}
どなたかお助けくださいorz
0548nobodyさん
2006/08/16(水) 14:41:55ID:???$rand = rand($a, $b);
if ($rand <= 10) {
echo $rand;
} else {
hoge($a, $b);
}
}
試行回数調べたいなら静的変数使うといい。
0549nobodyさん
2006/08/16(水) 14:42:01ID:???夏休みの宿題か?
while(1) {
// 乱数生成
// 何回生成したかカウントアップ
// 10以下だったらbreak;
}
0550nobodyさん
2006/08/16(水) 15:05:19ID:???どうもありがとうございます。
早速ソースを参考にさせていただきましたが、
まだ思ったとおりにいかないので、
このソースを元に試行錯誤してみたいと思います。
>夏休みの宿題か?
確率の計算のものがあって、どうしても計算しきれなかったので、
ずっともやもやしていて、シミュレーターでもつくって、
だいたいどのくらいの値か出してみようと思った次第ですorz
0551nobodyさん
2006/08/16(水) 15:09:32ID:???半角と全角の数字のみ
入力を受け付けるにはどうしたらいいでしょうか?
0553nobodyさん
2006/08/16(水) 16:00:57ID:oFrHrQOU0554nobodyさん
2006/08/16(水) 16:03:46ID:???全角数字を半角数字に置換
後は数字かどうかのチェック(正規表現、is_なんたら関数、ctypeなんたら関数)
0558nobodyさん
2006/08/16(水) 18:40:10ID:???0559nobodyさん
2006/08/16(水) 18:46:29ID:???0560nobodyさん
2006/08/16(水) 18:54:51ID:???0561550
2006/08/16(水) 19:05:28ID:???いいえ。確率と一言でいったので誤解を招きましたが、
実際はもっと複雑な問題なんです。
上のほうのソースは部品として使うだけなので。
他の計算部は別に作ります。
0562nobodyさん
2006/08/16(水) 19:18:58ID:???文字列変数が、マルチバイト文字を含んでいるかどうか、の判定ロジックで
ベター、もしくはベストなものってどうやるんでしょうか?
とりあえず思いつくのはstrlenとmb_strlenで値が違えばマルチバイト含む、
といった判定方法くらいなのですが…
0566nobodyさん
2006/08/16(水) 19:31:37ID:BwdVe+rWxsasというWAMPパッケージで、php_openssl.dllとphp_curl.dllを「F:\XSAS_XCP\diskw\usr\local\PHP\extensions」へ
置いて、php.iniで;を消しました。 しかし、xsas起動時つまりApache起動時に「・・・モジュールが見つかりません」
となってしまいます。
0569nobodyさん
2006/08/16(水) 20:21:34ID:???php.iniのextension_dirがその
F:\XSAS_XCP\diskw\usr\local\PHP\extensions
になってる?
0573nobodyさん
2006/08/16(水) 21:09:25ID:???PHP + MYSQLで膨大なデータベースから全文検索したいんですが
text like "%検索語%" みたいにすると死ぬほど遅いです。
レンタルサーバー(XREA)を使っているのであまりいじれないんですが
どうすれば高速化できますか?
0574nobodyさん
2006/08/16(水) 21:16:26ID:???少なくともtextにindexは振ってあるんだよな?もちろん。
とりあえずここで聞くよりDB板の方がマシそうだけど…
DB以外での解決方法を模索してるのか?
0575nobodyさん
2006/08/16(水) 21:27:10ID:???ていうかマニュアル見てください
http://mysql.com/doc/refman/4.1/ja/fulltext-search.html
0576nobodyさん
2006/08/16(水) 21:31:34ID:???0577nobodyさん
2006/08/16(水) 21:32:50ID:???0579nobodyさん
2006/08/16(水) 21:34:12ID:ShnVBp2+0580nobodyさん
2006/08/16(水) 21:56:57ID:????
0581nobodyさん
2006/08/16(水) 22:40:16ID:???Web鯖と別に、高速なデータベース専用鯖を持つべきです
0582nobodyさん
2006/08/16(水) 23:16:41ID:???0583nobodyさん
2006/08/16(水) 23:30:57ID:???0584nobodyさん
2006/08/16(水) 23:48:40ID:???と言いたかったと思われ
0585nobodyさん
2006/08/17(木) 00:05:46ID:lrPl7LqRこれの理想ヒップと理想ウエストを作って欲しいのですが、
phpを作成代行してくれるスレなどはありますか??
0586nobodyさん
2006/08/17(木) 00:17:15ID:???1.日本語は単語の区切りが無いのでなんとか分割したい
>形態素解析(Chasen、MeCabとか)して単語に分ける
2.MySQLの全文検索は日本語に対応していない
>1で解析した文を16進とかにして保存する。検索するときも文を
形態素解析して16進に変換してFullText検索する
連鯖ではいろいろな面でかなり辛そう。
参考サイト:http://www.ironhearts.com/diary/archives/000868.html
連鯖だと全文検索したいフィールドをテキストに落とすことを考えて
テキスト全文検索(kakasiとかNamazuとか)で検索するてのが現実的かー
0588nobodyさん
2006/08/17(木) 00:32:15ID:???具体的には、ある値のデータ型が「int」かどうかを調べたいのですが……
よろしくです。
0589nobodyさん
2006/08/17(木) 00:37:37ID:???まぬある見てくれ
http://jp.php.net/manual/ja/ref.var.php
0590nobodyさん
2006/08/17(木) 00:42:23ID:???どうもありがとう。
マニュアルのどこを見てよいのか分からなかったであります。
「変数操作関数」だったのね。
必死に数学関数を見て探していた……orz
0591585
2006/08/17(木) 00:47:33ID:lrPl7LqR理想ヒップは身長×0.53
理想ウエストは身長×0.38
らしいです。
>>585のリンク先みたいに作れませんかね??
0592nobodyさん
2006/08/17(木) 00:54:05ID:???日本時間が表示されません。
海外の時間+9時間で合わせてみたのですが
それでも時間が合いません。
分とかもずれてるんです
サーバーの時計が合ってないのですか?
どうすれば良いですか?困ってます
教えてください
サーバーはアリゾナにあるらしいのですが
ほんとかどうか知りません
0593nobodyさん
2006/08/17(木) 00:57:02ID:???ほれ
<?php
$t = $_GET["t"];
echo <<<EOT
<html><head><title>理想のぼでい</title></head><body>
<form action="/" method="GET">
身長<input type="text" size=4 name="t" value="{$t}"> <br>
<input type="submit" value="compute">
</form><br>
EOT;
if ($t != "") {
echo "身長".$t."cmのばやい<br>";
echo "トップバスト:".($t * 0.525)."cm<br>";
echo "アンダーバスト:".($t * 0.423)."cm<br>";
echo "二の腕:".($t * 0.15)."cm<br>";
echo "ウエスト:".($t * 0.38)."cm<br>";
echo "ヒップ:".($t * 0.535)."cm<br>";
echo "太もも:".($t * 0.30)."cm<br>";
echo "ふくらはぎ:".($t * 0.205)."cm<br>";
}
?>
あとは何とかしろ。つかここはそういう質問はだめだかんな。
自分で作ってわからないことを質問するってのがここの掟
0594nobodyさん
2006/08/17(木) 00:59:25ID:???<?php
$niceHip = $_POST['height']*0.53;
$niceWaist = $_POST['height']*0.38;
print "理想のヒップ={$niceHip}cm<br>";
print "理想のウェスト={$niceWaist}cm<br>";
?>
0595585
2006/08/17(木) 01:12:26ID:lrPl7LqRはつながっているんですか??
・・・それにしてもすごいですね。
こんなにすぐ作れちゃうもんなんですね。
0597nobodyさん
2006/08/17(木) 03:25:27ID:???0602nobodyさん
2006/08/17(木) 11:15:37ID:???0603nobodyさん
2006/08/17(木) 11:49:12ID:???に見えた
0604nobodyさん
2006/08/17(木) 13:00:50ID:???>前述しましたように「ieHTTPHeaders」で確認しますと、たしかにセッションIDはローカルのどこかに記憶されているようです。
>Cookieファイルが見当たらないのに値が保存されているということは、あとはメモリ上に確保されている?
亀レスであれなんだがおそらくその解釈で合ってると思う。
HTTP通信をキャプチャしたらCookieの項目があった=ローカルマシンのどこかにその値がある
・・・ということなので、ファイルが存在しないのならメモリにあるとしか考えられない。
0606nobodyさん
2006/08/17(木) 14:22:03ID:???0608nobodyさん
2006/08/17(木) 15:50:07ID:???0609nobodyさん
2006/08/17(木) 15:51:54ID:???0610nobodyさん
2006/08/17(木) 16:13:29ID:FtiwPZNrを設置するには2つファイルが必要ですか??
0611nobodyさん
2006/08/17(木) 16:18:16ID:???それはできません
浮動小数点の誤差というのは
echo floor((0.1+0.7)*10);
が8ではなく7になるという現象
0612nobodyさん
2006/08/17(木) 16:19:52ID:???あのソースをコピーしてメモ帳とかのエディタに貼り付けて、
test.phpっていう名前で保存して、
サーバにアップロードして、test.phpにアクセスすればOK。
もちろんPHPが使えるサーバじゃないとだめ。
っていうかこのソースパースエラー出るよ。
0613nobodyさん
2006/08/17(木) 16:31:54ID:FtiwPZNrパーミッションとかいじりますか??
0614PJP
2006/08/17(木) 16:38:31ID:Ex5q979l$lines = file($logfile);
$countline=count($lines);
これで$countlineが常に1になってしまいます。
データは以下のように保存しています。
$logdata='テスト';
$fp = fopen ($logfile, "w");
fputs ($fp, $logdata);
for($i = 0; $i < $countline; $i++)
fputs ($fp, $lines[$i]);
fclose ($fp);
1.logのファイルの中にはテストが溜まっていってるのですがcount()がいつも1を返します。
ご教授いただければ幸いです。
0616nobodyさん
2006/08/17(木) 16:55:03ID:FtiwPZNrhttp://www.uploda.org/uporg481980.jpg.html
このようになりました。
0618nobodyさん
2006/08/17(木) 17:02:50ID:FtiwPZNrinfoseekの無料の奴なんですけど大丈夫ですか??
0619nobodyさん
2006/08/17(木) 17:13:49ID:???0621nobodyさん
2006/08/17(木) 17:16:35ID:???0622nobodyさん
2006/08/17(木) 17:19:44ID:???それでも動くと言えば動くかも知れないが、実用性ゼロ。
しかも質問者も基礎の基礎をすっとばして……
なんでそんな他力本願なの?
0623614
2006/08/17(木) 17:21:22ID:Ex5q979lテスト,テスト,テスト,・・・と10回分のデータが記憶されています。
これをfile()で呼び出しその要素をcount()で数えたら9もしくは10あたりを返すのじゃないのですか?
いつもいくら書き込んでも要素数1を返します。
0625614
2006/08/17(木) 17:27:01ID:Ex5q979l0626nobodyさん
2006/08/17(木) 17:30:01ID:???そうだよ
"wt"とテキストモードで開けばWindowsなら自動的に\r\nに変換して書き込まれる
読み込みも\r\nが\nに変換されて読み込まれる
Linuxではテキストモードもバイナリモードも関係ないからそのまま無変換で\nのまま読み書きされる
0627nobodyさん
2006/08/17(木) 17:32:56ID:???0629nobodyさん
2006/08/17(木) 17:37:16ID:fBR2tTe/動的なページで、そのページのURLを取得する関数ってありますか?
0630614
2006/08/17(木) 17:42:46ID:Ex5q979lfile()って配列を返すんじゃないんですか?
0631nobodyさん
2006/08/17(木) 17:44:20ID:???0632614
2006/08/17(木) 17:52:37ID:Ex5q979l0633ABCオロチ”管理”人
2006/08/17(木) 18:01:23ID:???どうにか、してもらえませんか?
http://www.abcoroti.com/~rent/rspace/bbs3/wwwlng.cgi
0634nobodyさん
2006/08/17(木) 18:03:05ID:fBR2tTe/$_SERVER['PHP_SELF'];
でやってみました。
たとえば
aaa.php?key=%EF%BC%92%E3%81%A1%E3%82%83%E3%82%93%E3%81%AD%E3%82%8B
↑
だと
aaa.php
までしか取れないのですが
全部取得できる方法無いですか
0635nobodyさん
2006/08/17(木) 18:06:16ID:???0636nobodyさん
2006/08/17(木) 18:06:37ID:???なんか見るからに穴だらけだし、
管理しきれないなら閉鎖すればいいじゃん。
わざわざここに来られてもどうにかできるもんじゃないしスレ違い。
荒らしたやつのIP調べて該当プロバイダに出せばいい。
0637634
2006/08/17(木) 18:15:20ID:fBR2tTe/0638nobodyさん
2006/08/17(木) 18:18:39ID:???0639nobodyさん
2006/08/17(木) 18:25:24ID:???0641634
2006/08/17(木) 18:42:14ID:DaHzwuB70642634
2006/08/17(木) 21:31:43ID:???0643634
2006/08/17(木) 21:49:08ID:???0646nobodyさん
2006/08/17(木) 23:36:48ID:???晒したのはここの住人じゃなくて「拓海」とかいうガキ
晒されたらすぐ荒らされるようなサイト運営に問題があるとしか思えないな
0647nobodyさん
2006/08/18(金) 01:51:06ID:jkLvf1gx夏だなぁ厨 【なつだなぁちゅう】
夏に暴れる人を放置ができず、とにかく「夏だなぁ」と言い出し、
それによってなぜか相手より優位に立ってると思い、
荒れの元となりスレ住民全体に迷惑をかける存在。
【特徴】
・とにかく文中に「夏だなぁ」を入れないと気がすまない
・スレの流れや空気を読めず、反応してしまう
・普通のスレ住人は夏厨を放置しているのに自分だけが過剰に反応してしまう
・夏厨に反応している時点で夏厨と同類であることに気づいていない
0650nobodyさん
2006/08/18(金) 02:33:34ID:???Ethnaで上記のような書き方でセッションに入ってるシリアルをとったりしてるんですが
この「session」っていうのは変数?定数?関数?のどれになるんでしょうか?
0651nobodyさん
2006/08/18(金) 02:40:42ID:???0653nobodyさん
2006/08/18(金) 02:50:55ID:???0655nobodyさん
2006/08/18(金) 08:13:53ID:???みたいに、変数の前に&がついてるのってどういう意味?
0656nobodyさん
2006/08/18(金) 08:32:15ID:???0660nobodyさん
2006/08/18(金) 09:34:23ID:???0661nobodyさん
2006/08/18(金) 09:51:58ID:???0662nobodyさん
2006/08/18(金) 10:18:57ID:???正しくは「リファレンス本でリファレンスの章を読め」
0663nobodyさん
2006/08/18(金) 11:15:26ID:/SUvBA3A(参考:https://register.www.infoseek.co.jp/RegistConfirm.html
入力エラーの表示がすごく気に入っています
ページ構成方法もさることながら、エラー制御方法で悩んでいます
1)ID、Password、個人情報入力
↓
2)登録ボタン
↓
3)別htmlに、エラー表示が追加されている(1)のページを表示
↓
4)エラーなくなるまで繰り返し
↓
5)登録完了
どんな制御方法がいいのでしょうか
また参考になるサイトあればおながいしまつ
0664nobodyさん
2006/08/18(金) 11:19:25ID:???0665nobodyさん
2006/08/18(金) 11:24:32ID:/SUvBA3Aそんなことはしません
データ登録システムのフロント部分で参考にしたかったのです
0667nobodyさん
2006/08/18(金) 11:38:27ID:/SUvBA3A俺もそう思ったんだけどさ、実際に書こうとすると難しいのよ
クマっている
0668nobodyさん
2006/08/18(金) 11:41:27ID:???ふざけてるの?
0669666
2006/08/18(金) 11:42:40ID:???最初に、POST内容のエラーチェックをして、
エラーがあるならその内容を上部にまず表示
(strErrorMessage等に書き溜めておいて、後でHTMLを書き出すときに該当箇所に書き出す)
そしてエラーがない項目をフォームにセットしたHTMLを書き出せばいいじゃないか。
0670nobodyさん
2006/08/18(金) 11:45:24ID:???2.POST内容のエラーチェック
3.エラーがあるなら、エラー内容を表示した登録画面を書き出し終了。
4.エラーがないなら、登録処理(もしくは一旦確認画面を表示するか)
0671nobodyさん
2006/08/18(金) 11:48:34ID:/SUvBA3Aいや、そこは問題ない
俺の質問が漠然としすぎたのが問題だった
・入力するテキストフォームの"すぐ下"に「文字数がオーバーしています」と
エラー表示させ、テキストフォームは空白(クリア)
・エラーでないテキストフォームは、入力済みになっている
JavaScriptを使うのはできるだけ回避したい(ブラウザ面倒だから)
0673nobodyさん
2006/08/18(金) 11:57:40ID:???その通りの事をプログラムでするだけ…。
入力された値を、エラーのものは消す、エラーでないものは復帰させる。
エラーのものはエラーメッセージを表示する。
そんだけ。
0674nobodyさん
2006/08/18(金) 11:59:22ID:???echo "<input type=text name=message value=\"\" maxlength=".MAX_LEN."><br>\n";
echo "<font color=red>文字数がオーバーしています</font><br>\n";
} else {
echo "<input type=text name=message value=\"".$message."\" maxlength=".MAX_LEN."><br>\n";
}
エラー含有前提だが、こんな感じではだめなのか?
0675nobodyさん
2006/08/18(金) 12:02:21ID:???0676nobodyさん
2006/08/18(金) 12:05:16ID:/SUvBA3Aだが、そんなところは問題ないんだw
って、俺、整理つかん
俺のソース見ると無限ループおこしている
一度、吊って頭冷やしてみる
0677nobodyさん
2006/08/18(金) 12:06:37ID:???表示させるときに、通常はhtmlspecialcharでエスケープしてます。
でも、一部の特殊文字(ハートなど)だけはエスケープせずに表示したいのですが、
これを実現するにはhtmlspecialcharをかけた後に、目的の特殊文字のコードだけを
エスケープ前の状態に再変換するような関数を自作しておくしかないでしょうか?
0678nobodyさん
2006/08/18(金) 12:07:14ID:???0681nobodyさん
2006/08/18(金) 12:47:27ID:/SUvBA3Aすまんな。もう頭おかしくなっている
オシムと直志のせいで頭が整理つかん
ちと、仮のやつをこしらえてURLさらすんで暇になったら教えてくださいな
0682677
2006/08/18(金) 12:53:11ID:???やはりそうですか。。。
地道に正規表現や置換関数などを使って、
任意の特殊文字だけをエスケープ前の状態に戻す関数を作ろうと思います。
0683nobodyさん
2006/08/18(金) 13:01:04ID:???preg_match("/^[0-9]/", $hoge)でやった場合、
123gggなんかも123として扱ってしまいます。
どうかいたらいいのでしょうか?
0686nobodyさん
2006/08/18(金) 13:41:51ID:???たすけtれwn
0687nobodyさん
2006/08/18(金) 14:08:11ID:???"一"と"龠"はもちろんいけるが
"募"とか"集"とか漢字を判定できないんだ
どう思う?
if(ereg("[一-龠]",$name)){
echo "漢字だよ";
exit;
}else{
echo "漢字じゃないよ";
exit;
}
0691nobodyさん
2006/08/18(金) 14:23:22ID:xIt7iz8d詳細が乗っているサイト若しくはやり方を教えて下さい
言語はperlのみ使えます
0695nobodyさん
2006/08/18(金) 14:30:57ID:xIt7iz8dえ?w
違いますよ
翻訳サイトでページ翻訳ってあるじゃないですか
ああいうことがしたいんです
0698nobodyさん
2006/08/18(金) 14:38:02ID:xIt7iz8dすいません、「下らねぇ質問はここに書き込みやがれ」しか見てませんでした^^;
0699nobodyさん
2006/08/18(金) 14:39:31ID:???http://beginners.atompro.net/htm/smpcgi/webpsrc.shtml
ほれ
これでわからないならあきらめろ
0700nobodyさん
2006/08/18(金) 14:44:51ID:???年齢とか、個数とかの数値であれば、
$hoge = $hoge + 0;
とやって、強制的に数値にしてやるといい。
0701nobodyさん
2006/08/18(金) 14:45:02ID:???main.php
require "hoge/Calc.php"
hoge/Calc.php
require "lib.php"
hoge/lib.php
hoge/test.php
require "Calc.php"
hoge/フォルダ以下でひとつのシステムを作っています。動作確認のために
hoge/test.php からCalc.phpを呼び出して利用した場合は動くのですが、
トップのmain.phpから相対パスで呼び出そうとすると、lib.phpの場所が
問題となって動きません。
実際にはhoge/Calc.phpはmain.phpだけではなく、いろんなフォルダのいろんな
ファイルから呼び出されるのですが、どうパス指定してやればいいのでしょうか?
0702nobodyさん
2006/08/18(金) 14:45:24ID:???関係ないスレで質問したのにわざわざ答えてくれて本当にありがとうございます
そのページを参考にして頑張ってみたいと思います
では失礼いたしました
0704nobodyさん
2006/08/18(金) 15:03:16ID:???include_pathに/hogeを追加してやれば
どのファイルからでも/hogeからの相対パスで
/hoge内のファイルをロードできる
0705nobodyさん
2006/08/18(金) 15:05:01ID:???URL部分だけをハイパーリンクにするにはどうしたらいいですか?
いま考え付く方法は、
「httpから始まる文字列を、全角文字が現れるまで正規表現で抽出」
そしてその文字列にリンクを張る・・・という感じですが、
もっと良い実装方法などありますでしょうか?
専用の関数があると便利なのですが。
0706nobodyさん
2006/08/18(金) 15:12:05ID:???0707nobodyさん
2006/08/18(金) 15:14:56ID:???0708701
2006/08/18(金) 15:16:39ID:???ありがとうございます。include_pathのほうはいじる権限持ってないので、
絶対パスでなんとかしてみます。
0709nobodyさん
2006/08/18(金) 15:18:39ID:???ttp://www.din.or.jp/~ohzaki/perl.htm
Perlでの例だが、正規表現は同じだ。
0711nobodyさん
2006/08/18(金) 15:24:29ID:Whin3OBFWarning: mkdir() [function.mkdir]: Permission denied in
とerrorが出て作成できません。
PHPはこれです。
<?php
mkdir ("hoge", 0705);
?>
よろしくお願いします。
0713nobodyさん
2006/08/18(金) 15:32:49ID:???スクリプト自身があるディレクトリのパーミッションを707とかにしないとだめだろ
それとセーフモードはOffかい
0714nobodyさん
2006/08/18(金) 15:44:30ID:Whin3OBFxreaのs225なので使えます。
>>713
>スクリプト自身があるディレクトリのパーミッションを707とかにしないとだめだろ
707にしたらできました。ありがとうございました。
0715nobodyさん
2006/08/18(金) 16:41:32ID:???ようやく整理がついてきました
chinpo.html上のフォーム入力を行い、【登録】ボタンを押す
↓
hoge.phpに飛び、各フォームのエラーチェックスクリプトが動く
↓
hoge.phpが表示されエラー箇所が明示される
↓
修正後、【登録】ボタンを押す
↓
正しければkakunin.htmに飛び確認画面が表示される
もし間違いだったらどこへ飛べばいいのかな?
hoge.phpに今いるわけで、新たにhogehoge.phpに飛ばせると無限にphpファイルが必要になる
だから、再度、hoge.phpに飛ばせるべきなんだが、どのようなスクリプトを書けばいいのでしょう?
0718nobodyさん
2006/08/18(金) 16:58:40ID:???あきらかに力不足でしょ。
自己満足で作ってるなら別にいいけど、
何かのシステムに実装するとか、使うつもりならば、
登録した人が悲惨な目にあうのでやめてください。
0721nobodyさん
2006/08/18(金) 17:01:33ID:???1ファイルでできるし、とりあえずフローから考えていくこった
if (POSTされたか?) {
if (エラーがあるか?) {
if (今入力画面?) {
確認画面表示
} else {
成功画面表示
}
}
入力画面表示(エラー表示)
}
入力画面表示
0723nobodyさん
2006/08/18(金) 17:09:43ID:???まず参考になるかわからんが、フォームに hiddenで現在のモードを入れておくことにする。
一番最初の登録を行う画面では、
<input type=hidden name=mode value=first>
を仕込んでおき、
登録しますか?の確認画面では、
<input type=hidden name=mode value=second>
とでもしておく。
そして、スクリプトの初期の段階で、
if ($mode == 'first'){
// エラーチェック処理
// エラーなら再度登録用画面を表示
// エラーがないなら確認画面を表示
} elseif ($mode == 'second'){
// 一応もう一度エラーチェックをする。 < ここは結構重要
// エラーなら登録用画面を表示
// エラーがないなら登録処理&登録できました画面を表示
}
こんな感じがよい。
0724nobodyさん
2006/08/18(金) 17:15:54ID:???0725723
2006/08/18(金) 17:23:21ID:???// エラーチェック処理
// エラーなら再度登録用画面を表示して終了
if ($mode == 'first'){
// 確認画面を表示
} elseif ($mode == 'second'){
// 登録処理&登録できました画面を表示
}
0726nobodyさん
2006/08/18(金) 17:29:37ID:???0727nobodyさん
2006/08/18(金) 17:31:14ID:/SUvBA3Aみんな優しい
ありがとう(泣
>>723
if ($mode == 'first'){
// エラーチェック処理 ←ここまでできています!!
// エラーなら再度登録用画面を表示 ←問題は、ここなんです!!
// エラーがないなら確認画面を表示
再度登録用画面には"header"で飛ばせばいいと思いますが、その際、
・エラーがでなかったテキストフォームには「入力データを残す」
・エラーがでたテキストフォームには「空白」にする
という処理を組み込ませたいのです
そうなると頭がふにゃふにゃになってしまっています
0728nobodyさん
2006/08/18(金) 17:31:23ID:???○スマート
0729nobodyさん
2006/08/18(金) 17:34:08ID:???亀スマソ。文字コードがあってねーんだろうね。
なんか正規表現のコードを指定する関数があったけど忘れた。
mb_なんちゃら
このスレか前スレ、もしかしたら前々スレあたりに、ひらがなにマッチしない、みたいな質問と回答あるはず。
0730nobodyさん
2006/08/18(金) 17:34:16ID:???0731nobodyさん
2006/08/18(金) 17:34:18ID:???>再度登録用画面には"header"で飛ばせばいいと思いますが
そこが違うんだよ。
hoge.phpの中から、直接HTML文を書き出す。
ちょっと面倒だろうが地道に入力していけ。
工夫次第では、初期登録画面を書き出す(おそらくあなたは別HTMLファイルでやってるだろうけど)処理を
活用することができるが。
0732nobodyさん
2006/08/18(金) 17:41:26ID:???最初の入力画面では$inputは空に、エラーが出たら
この中に入力した文字が入ってるようにする。
最後の確認画面は別のHTML用意した方が良いね。
0733nobodyさん
2006/08/18(金) 17:43:16ID:???0734nobodyさん
2006/08/18(金) 17:44:52ID:6myYxIucその複数行のうち、3行目だけを抜き取るみたいな処理を行いたいのですが
fgets()は、fopen()されたファイルしか処理できないんですね・・
なんとか、これでやろうと思えば、一回受け取ったデータをファイルに保存して
それから、ファイル処理としてfgets()を使うなども考えたのですが、ずいぶん面倒と思いまして
それで、今度はexplode()を使って、\nで区切って改行ごとに、配列に入れていって
必要な行だけを取り出そうと思ったのですが
改行を\nでは、判別してくれないんですかね・・
いろいろ考えているのですが、何か良い方法があったらアドバイスお願いします。
0735nobodyさん
2006/08/18(金) 17:46:33ID:/SUvBA3Aなるほど、、、もっとも避けたかった方法が答えでしたか(涙
例えば
print("<h1>monster()</h1>");
print "<input type=\"submit\" value=\"2ch大好きだぜ\">";
print "<input type=\"submit\" value=\"でもVIPはな\">";
とな感じでprint使って1つのphpで表現する方法ですね
むー頑張ってみる
また質問します!!
みんなありがとう
0736nobodyさん
2006/08/18(金) 17:49:16ID:/SUvBA3Aそうですね
一応MySQLにぶちこむので最終確認画面はphpファイルでいこうと思います!!
>>733
フォーム認証後の画面なのでセッションは貼っていますが
これ以上、複雑にするのは俺には無理のようです・・・
0738nobodyさん
2006/08/18(金) 17:56:43ID:???ttp://jp.php.net/manual/ja/function.explode.php
このマニュアルで
$exploded = explode("\n",$words);
と使っているので、\nで区切れないということはないはず。
0739nobodyさん
2006/08/18(金) 18:03:38ID:/SUvBA3Aいかんせん、まわりに相談する人が誰もいない
最初はMySQL5.0に6000万レコードを書き込むスクリプトから開始し
次にMD5に変換させるスクリプトを走らせると、途中で地獄のdump吐くは
オシムが代表監督になるわ、直志が召集されるわ
MLはNifty時代から好きになれず
2chでいじめられながら頑張るのが大好きだ!!
これからもよろしくおながいしまつ
0740nobodyさん
2006/08/18(金) 18:37:45ID:???> print("<h1>monster()</h1>");
> print "<input type=\"submit\" value=\"2ch大好きだぜ\">";
> print "<input type=\"submit\" value=\"でもVIPはな\">";
> とな感じでprint使って1つのphpで表現する方法ですね
せめて
<?php
プログラム
?>
<h1>monster()</h1>
<input type="submit" value="2ch大好きだぜ">
<input type="submit" value="でもVIPはな<?php echo $変数 ?>">
みたいにPHPモード抜けて普通にHTML書こうよ。
しかしすでにセッション使ってて前の入力内容を復元させることが難しい、
ってやつも相当珍しい気がするんだが。
0741nobodyさん
2006/08/18(金) 18:39:30ID:???explodeで正解だよ。
ちょっと自分で書いたexplodeのとこ見せてみ。それ多分書き方間違ってるだけ。
0742nobodyさん
2006/08/18(金) 18:42:41ID:IH/AT+iL適切なスレが見つかりませんでした。
PHPでAmazonのWebサービスを使ってプログラミングしているのですが、
Amazon API でBooks の情報を取得した時、
ItemAttributesが通常はオブジェクトなのですが、
まれに配列変数になってて、要素のAutherとかが、0から始まる配列変数になってる事がありますよね?
つまり、var_dumpすると以下のようになっているはずのものが、
["ItemAttributes"]=> &object(stdClass)(13) { ["Author"]=> string(16) "ほげ ほげお"
以下のようになっている。
["ItemAttributes"]=> array(16) { [0]=> string(16) "ほげ ほげお"
これを回避する方法があればお教え下さい。
0から始まる配列変数が全て、Autherなどのデータなら良いのですが、
間に本の種類(単行本)などが入っているので、もし回避出来ないのなら、本の種類全てをプログラムに入力して、
「本の種類の前はAuther、本の種類の後はCreator」というような事をしないとダメでしょうか?
環境など:
PHP4.3.10
PearのSOAP(var0.9.4)ライブラリ
Amazon ECS 4.0
0743734
2006/08/18(金) 18:47:03ID:???お二方アドバイスありがとうございました。
>>738氏が示してくださった、
>$exploded = explode("\n",$words);
>と使っているので、\nで区切れないということはないはず。
という、ことからきっと区切りが、\nではないのだと思いはじめ、まずそこを調べたところ
私が改行だと思っていたものは、<br />でした。
\nの代わりに<br />としたところ満足のいく結果を得られました。
非常にくだらなく、低レベルな質問になってしまって失礼しました。
お騒がせ致しました。
0744nobodyさん
2006/08/18(金) 19:10:58ID:???クラス定義より前にセッションなりからデータを読み出しちゃってる、ってことはない?
マニュアルのセッションの辺りに説明があると思うけど、セッションを自動スタートで使うと
クラス定義の前に変数展開をしちゃうからクラスの形で定義できない問題とかがあるよ。
0746nobodyさん
2006/08/18(金) 20:37:04ID:???2.悔しかったのでがんばって自分で調べた
後者ならお前は伸びる
0747nobodyさん
2006/08/18(金) 20:37:14ID:???あまり重くない処理で判定するにはどうしたら良いでしょうか??
うるう年や、その月毎の日数などをその都度計算して、与えられた日付と比較する関数などを
作ることも考えましたが、どうにも効率が悪くてスマートじゃないと思ったもので・・・
0749nobodyさん
2006/08/18(金) 20:43:40ID:EScfbsFP情報をお願いしますm(_ _)m
http://imona.jp/news/
http://kabubu.net/sub/news/news.php
0750nobodyさん
2006/08/18(金) 20:48:34ID:???確かにくだらない質問だがな、
ここは何かを探してくださいといったことはしていない。
自分で作るっていうなら話は別だが、
探してるっていうなら他のスレをあたりなさい。
0752nobodyさん
2006/08/18(金) 21:25:14ID:???mb_internal_encoding("Shift_JIS");
mb_regex_encoding("Shift_JIS");
これ書いたらいけました^^
調べるのに2時間もかかりましたよ^^
0753nobodyさん
2006/08/18(金) 21:34:58ID:???うわ!!
リファレンス本も持ってるというのに、
そんな関数はハナっから無いと思い込んで見落としてました・・・。
ありがとうございます。
0754nobodyさん
2006/08/19(土) 00:33:54ID:???ちなみにmktime()も日付チェックの機能を備えてて、
不正な日時が入力されたら補正して返すから
入力 != 出力 で妥当性をチェック可能。
0755nobodyさん
2006/08/19(土) 01:22:52ID:???チェックするだけなら、checkdate() の方が速いけどね。
これを機にソースも読んでみたけど、checkdate() は大した事してないし。
mktime() は当然いろいろやってるが。
0756nobodyさん
2006/08/19(土) 01:44:00ID:+xxPG0V/で
Warning: socket_connect() [function.socket-connect]: unable to connect [13]: Permission denied
という接続時のエラーによりこの後のデータ送信ができないのですが、
このエラーの解決方法をご存知の方、教えてもらっていいですか?
0757nobodyさん
2006/08/19(土) 03:44:33ID:01c3DaJfforeachで配列をループにかけている最中に、
今配列の中の何番目かということを知ることって出来ないんでしょうか?
いままでそれを知る必要がある時は
foreachじゃなくてforでループまわして現在の配列のナンバーを取得してたんですが、
もしかしてforeach中でもそれを簡単に知る方法があるんじゃないかと思ったので
質問してみます。
よろしくおねがいします
0758nobodyさん
2006/08/19(土) 04:02:07ID:???foreach($array as $key => $value) {
echo "$value は $key の位置にあります<br>"
}
連想配列で何番目なのかを知ろうと思ったら
$no = 0;
foreach($array as $key => $value) {
echo "$value は $no番目にあります<br>"
$no ++;
}
ってするしか無いと思う。
0759nobodyさん
2006/08/19(土) 05:11:13ID:???なるほど
ありがとうございます!
ただSimpleXMLで取得したオブジェクトに対しては
根本的に連想配列になっているのか、
使えないみたいですね
これはちょっと残念ですが、他についてはおかげさまで随分楽になりそうです
0760nobodyさん
2006/08/19(土) 05:49:04ID:???0762nobodyさん
2006/08/19(土) 07:50:57ID:???ユーザからわたってきた
hoge.jpg
というデータが存在するかしないかをチェックしたいのです。
0764nobodyさん
2006/08/19(土) 08:07:38ID:???is_fileやfile_existsだとfalseが返されてしまいます
0765nobodyさん
2006/08/19(土) 08:49:32ID:???・外部の鯖のURLなので、is_fileやfile_existは使えない事は確認済み
ってことかい?
0766nobodyさん
2006/08/19(土) 08:50:07ID:???そういうのは普通「渡す」とは言わないけどな。
ま、file_exists()は自分のサーバー内のファイルを調べる関数だから当然だな。
んじゃfile()で読み込んでみれば?allow_url_openがOnの環境限定だけど。
ホントはHEADアクセスで確認する方が負荷かからなくていいんだけどお手軽でしょ。
0767nobodyさん
2006/08/19(土) 09:22:55ID:???$temp_file はテンポラリに入っています。書き出す前です。
この様な段階でmd5_file する事は無理なのでしょうか?
現在は move_uploaded_file chmod で一度書き出し md5_file した後 unlink で消しています。
この様な面倒な方法以外の方法があればご教示ください。
>>762
前スレで上記の様な質問をした者ですがこれと同じ事?
0768nobodyさん
2006/08/19(土) 09:49:17ID:???>>762はアップロードしてるわけじゃないから全然別。
他所のサーバに置いてある画像をURL有効チェックしたいだけらし。
0769nobodyさん
2006/08/19(土) 09:57:10ID:???0770nobodyさん
2006/08/19(土) 10:00:46ID:???とか見たような気がするんですが、その場合、同様に配列に読み込みたい場合は
fgetsを使うんでしょうか?
0773nobodyさん
2006/08/19(土) 10:09:01ID:???'w' を使いたい処理の場合も、 '+r' で開き、ファイルロックしてから、トランケイトして
ファイルサイズを0にし、ファイル先頭から書き出すのがもっともよいとされている。
これは、fopen を w で開いた直後、ロックの処理をする前にファイルサイズが0になってしまうため、
この間に別プロセスがファイルをreadすると、空のファイルを読んでしまうことになるからだ。
+r で開いてからロックすれば、この間はファイルのデータは保たれているため、
上記のようなデータの損失が発生することはない。
0774nobodyさん
2006/08/19(土) 10:11:52ID:???r+とかa+使った方が無難ってだけじゃないの?
あとバッファはset_file_bufferで0にしたほうがいいね
fileは読み込むだけでファイルの更新自体はしないし関係ないと思うよ
0775nobodyさん
2006/08/19(土) 10:12:48ID:???0776nobodyさん
2006/08/19(土) 10:20:51ID:???まあ表示だけならデータが表示されないだけで問題なさそうかと思われるけど、
どうせだったらそんなことが起こらない方法で書いた方がいいに決まっている。
HTMLにデータ込みのフォームを書き出す処理の中でデータが抜けて、
そのままそのフォームを登録してしまう(必須でない項目が抜ける可能性)や、
rで読んでレコードを編集したあと、あらためて wで開いてレコードを書き出す、
その上に処理のロックをかけていない、などの Let's PHP みたいな不備のあるソースを書くと
データが消えてしまう恐れがあるね。
0780nobodyさん
2006/08/19(土) 11:49:35ID:9NEEnAjJ当然といえば当然なのですが、こういったタグを置き換えるような仕組みを作った場合に、上のような現象を回避する方法はありますか?
0781777
2006/08/19(土) 11:56:01ID:???撒き餌がたらなかったらしい。
0784nobodyさん
2006/08/19(土) 13:02:53ID:???どういう正規表現使ったんだ?
普通に [a] と [/a] ではさまれた文字列を<a>タグのhref属性に変えるような仕組みであればそんなおかしなことにならないはずだが。
0786nobodyさん
2006/08/19(土) 14:04:04ID:???適当だけど
$str = "[a]http://www.test.com/[/a][/a][a]aaaa[/a";
var_dump($str);
$str = preg_replace("/\[a\](http:\/\/.+?\..+?)\[\/a\]/", "<a href=\"$1\">$1</a>", $str);
var_dump($str);
0787nobodyさん
2006/08/19(土) 14:46:12ID:kKZJT4No1.shift-jisのファイルを用意する
2.print mb_convert_encoding( file_get_contents( そのファイル ) ,'EUC-JP');
こういうのを作ってブラウザで再読み込みを続けると、どういうわけか
入力もプログラムも全く変えてないのに、ちゃんと変換したり、しなかったりと動作が変わります。
これじゃ危なっかしくて怖いんですけど、こういうものなのですか?
winXPとPHP 5.0.3 (cli) (built: Dec 15 2004 08:07:57)です。
0788nobodyさん
2006/08/19(土) 14:49:16ID:???そういうものです。
ヤフーのトップページでさえ、たまに文字化けして表示されることがあります。
ブラウザ側のバグでしょう。
0789nobodyさん
2006/08/19(土) 14:50:17ID:???>これじゃ危なっかしくて怖い
ブラウザに何か出力する前にきちんとヘッダを送信してやれボケ。
HTTPの知識もPHPの知識もロクに勉強もせず、危なっかしいのはお前のほうだチンカス。
0791780
2006/08/19(土) 14:51:58ID:9NEEnAjJ正規表現はよくわからないので、str_replaceを使いました。
[a]があったら<a href="に置き換えて、[/a]があったら">〜〜</a>にしてとか、そんなしょぼい実装です。
783さんのような、検査のロジックを組み込みたいと思います。
ありがとうございました。
0795787
2006/08/19(土) 14:59:16ID:kKZJT4Noいや、ソースを読むとソースが化けている(というか元のままだったり、変換されてたり)で。
ブラウザの問題はとりあえずないものとして。
>794
そこ…なのかな?
それにしても、再実行ごとに毎回違った結果がでてくるものなのですか?
0798764
2006/08/19(土) 15:09:12ID:???ググってみたのですが、分かりませんでした
できれば負荷のかからない方法で検討したいです
お願い致しますm(_ _)m
0799nobodyさん
2006/08/19(土) 15:16:58ID:???FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #16069 [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
#16069は「ミリバールミリバール(°Д°)」ていう文字が沢山入ってて何かEUC-JPのテスト?のようなファイルでした。
ググると同じファイルでfailedを出してるものが見つかりましたので特に気にする必要はないファイルでしょうか。
よろしくお願いします。
環境:FedoraCore3 PHP5.1.4→5.1.5へ変更中に発生
0800nobodyさん
2006/08/19(土) 15:24:26ID:???よくわからん
ミリバールミリバール(°Д°) ってwwwww誰だよ犯人はwwwwww
0801nobodyさん
2006/08/19(土) 15:52:26ID:???0802nobodyさん
2006/08/19(土) 15:53:07ID:???0803nobodyさん
2006/08/19(土) 15:54:06ID:???結局そのままインストールしました。
とりあえず無事にバージョンがあがりましたので気にしないことにします。
一応証拠?です。
つ【http://vista.xii.jp/img/vi5597040543.gif】
0804nobodyさん
2006/08/19(土) 15:54:51ID:???エラーは出なかったけど
なぜギコ猫を使ったのかと小一時間(ry
0805nobodyさん
2006/08/19(土) 15:56:35ID:???6まだー?
PHP6の主な変更点
Javaと統一されますた。以降Javaをお使いください。
0806803
2006/08/19(土) 16:00:02ID:???イマイチよくわかりませんがセットで
>iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
も失敗しているのでやや気になります。
試しにphpinfoを開くとiconv関数は「enabled」でした。
何が原因なのかソースを見た限り皆目検討がつきません。。。モナーではなくギコ猫なのが原因なのでしょうか。
0807nobodyさん
2006/08/19(土) 16:19:51ID:???サーバーが見つからないとエラーが出るようになりました。
しかしローカルで実行するとエラーがでず、原因がわかりません。
$xml = simplexml_load_string($content);
$xml->registerXPathNamespace('aws', 'http://webservices.amazon.com/AWSECommerceService/2006-05-17');
$result = $xml->xpath('//aws:RequestId');
phpのバージョンはレンタルサーバーが5.1.4でローカルも5.1.4です。一体何が原因なんでしょうか?
0808nobodyさん
2006/08/19(土) 16:54:36ID:???$host = "example.com"
$uri = "/bar/foo.txt"
$header = "Host: ${host}\r\n";
$header .= "Connection: Close;\r\n\r\n";
$fp = fsockopen($host, 80, $errno, $errstr);
if (!$fp) {
exit;
}
fputs($fp, "HEAD ${uri} HTTP/1.1\r\n");
fputs($fp, $header);
while (!feof($fp)) {
echo fgets($fp, 128);
}
こんなの
0809nobodyさん
2006/08/19(土) 16:55:21ID:???0811nobodyさん
2006/08/19(土) 17:08:04ID:+ytFUBf1fopen() でテキストファイルを作っていくプログラムを作りたいのですが、
htmlフォームからユーザーにテキストを入力させ、その内容をファイルに反映せさたいのです。
$fp = fopen("./test.txt","w");
fwrite($fp,"This is file write test.\n");
fclose($fp);
ここまでは理解できるのですが、
問題はこれをどうやってhtmlフォームと連携させるのかということです。
どの当たりを勉強したらよいか解らず、苦戦しています。
解るかた、ヒントだけでも頂けたらと思います。
よろしくお願いします。
0812nobodyさん
2006/08/19(土) 17:11:01ID:???0813nobodyさん
2006/08/19(土) 17:13:33ID:???http://www.php.net/manual/ja/tutorial.forms.php
0814nobodyさん
2006/08/19(土) 17:24:32ID:???いったん配列なりに入れて
チェック入れろ
0815nobodyさん
2006/08/19(土) 17:31:25ID:???>そこ…なのかな?
人様のアドバイスを実行・確認もせずに批判するぐらいなら
質問なんかしないで自分で解決しろボケカス。
0816nobodyさん
2006/08/19(土) 17:38:38ID:???現在、クライアントPC(Windows)にDreamweaverをいれて、そこからFTPで
ローカルの開発環境サーバー(linux)に直接
アクセスして開発しています。チェックは直接ブラウザからローカルIPを
叩いて確かめています。サービスが動いている本番サーバはまた別に存在します。
ただ、開発効率の悪さを実感しています。そこで
eclipse+phpeclipse に開発環境を変えようと思っていますが
クライアントPCにもphp+mysql+apacheをいれる必要があり、そうすると
ローカルのlinuxサーバーの意味があまりありません。
できれば、テストサーバ側のファイルを直接いじりつつ
デバック等もできればと思っていますが、こんな私に向いている
開発環境はなんでしょうか。
eclipse+phpeclipse+PHP/dbg というものもあるらしいですが。
# smarty+phpフレームワークも導入予定。
# バージョン管理はsubversion予定。
0817811
2006/08/19(土) 17:42:37ID:+ytFUBf1813を勉強してきます。
>>814
解らなければまた質問させてもらうかもしれません。
0818nobodyさん
2006/08/19(土) 18:00:02ID:???>>ローカルのlinuxサーバーの意味があまりありません。
んなことないでしょ、チームで開発するんだったら
担当部分を自分のPC内でまずコーディング・テストして
全員が利用するテストサーバで結合テストするのがいいんじゃないの
逆にテストサーバで直接いじってて他の人がテストしようとしたら
いじってたせいで動かない、とかで開発効率が悪くなってたりしない?
開発環境はソフト変えりゃいいってもんじゃない、やり方の問題と思う
0819nobodyさん
2006/08/19(土) 18:01:19ID:yXlsOUGI多い場合TEXTのNAMEなどを簡単に管理できる方法ってありますでしょうか??
皆さんはどのようにしていますか?ご教授お願い致します。
0820nobodyさん
2006/08/19(土) 18:15:30ID:???smartyを噛ませてジェネレートしてる。
フォーム、DBアクセス、詳細表示のページで同じ一覧のファイル
を使うようにしとけばらくちん。
便利なツールやライブラリは他の人の解説に譲るます。
0821nobodyさん
2006/08/19(土) 18:31:52ID:???なんかメンドイだけであんまり使えるような気がしない
0822nobodyさん
2006/08/19(土) 19:11:56ID:???0823nobodyさん
2006/08/19(土) 19:40:53ID:m4Ae+hcOttp://php.s3.to/man/types.comparisons.html
これを読むとempty()とisset()では、見分けることができません。
$x = "";---->FALSE
$x = NULL--->FALSE
$x = 0;----->TRUE
$x = 1;----->TRUE
のように見分けるには、どうしたらよいのでしょう。
0825nobodyさん
2006/08/19(土) 19:46:39ID:???if (strlen($x))
0828nobodyさん
2006/08/19(土) 20:04:45ID:m4Ae+hcOありがとうございます。
要は""とNULL以外はTRUEを返すのを、簡単に表記したかったんです。
===を使うと
if (!($x === "" or $x === NULL)) {
こんな感じになって冗長かなぁと、、、
>>825
下のを使うと
if (strlen($x) != 0) {
こんな感じですか?
0829nobodyさん
2006/08/19(土) 20:08:35ID:???0830nobodyさん
2006/08/19(土) 20:30:15ID:???if (strlen($x) != 0)
if (strlen($x))
一緒、strlenの戻り値はint
0831nobodyさん
2006/08/19(土) 20:31:14ID:???0832831
2006/08/19(土) 20:32:36ID:h+QG0TQi0833nobodyさん
2006/08/19(土) 20:51:20ID:???id を メルアドにするか 任意な文字列にするか迷ってます。
メルアドのほうが管理がらくだと思いますが、どちらが良いでしょうか。
0835nobodyさん
2006/08/19(土) 21:12:39ID:???・任意の文字列
サイト側としては個人情報を入力させたりDBに持たなくても済む
ユーザ側としては登録はしやすいが忘れやすい
ID忘れちゃうとリマインダはメール送ってもらうしかない
・メールアドレス
ユーザ側としては忘れにくい
ただ信用できるかどうか微妙なサイトには入力したくない
個人情報を抱えるリスクは生じる(メリットもある)
ちょっとしたツール的なサイトなら文字列ID、
ECとかメールアドレス必要前提のサイトならメアドかなあ
0836nobodyさん
2006/08/19(土) 21:18:27ID:???$hoge[5]="追加";
とかやると元々あった要素が削除されちゃいますよね?
http://210.143.110.132/~php/man/ref.array.html
ここを読んでも実現できそうな関数は見あたらなかったのですが…
0839nobodyさん
2006/08/19(土) 21:32:12ID:???setXXXやgetXXXなどのメソッド名はよく有りますが、
あるプロパティの値をtrueにする為のメソッド名はどのようにつけるべきだと思いますか?
とりあえずsetXXX(true)としてますが、デフォルトがfalseのためそのメソッドを呼べばtrueになるようにしたいのです。
引数でtrueを渡さないとなると、やはりsetXXXでは変な気がします。
そのプロパティをpublicにすればいいのですが、今回の場合それは微妙な感じですので。
0840nobodyさん
2006/08/19(土) 21:35:09ID:???0841nobodyさん
2006/08/19(土) 21:36:59ID:???0843839
2006/08/19(土) 23:20:58ID:???なんでそれが頭に浮かばなかったのか・・・あぁ、やっぱり頭が悪い。
本当にありがとうです。
0844nobodyさん
2006/08/20(日) 01:41:59ID:???eclipse+phpeclipse+PHP/dbg+Samba+subversionでやってます。
一人自宅でだけど。
統合開発環境スレは無くなっちゃったのかな?
0846nobodyさん
2006/08/20(日) 09:30:48ID:???ファイルの更新日時の取得ってどうやるんですか?
0848nobodyさん
2006/08/20(日) 12:35:12ID:???0849nobodyさん
2006/08/20(日) 12:38:20ID:???0850nobodyさん
2006/08/20(日) 12:38:49ID:???0851nobodyさん
2006/08/20(日) 12:40:10ID:O6c5lrE6test.php
<?php
echo "<!-- test -->\n";
?>
index.php
<?php
require('test.php');
?>
で、実行すると
<!-- test -->
と出力されるはずが
?<!-- test -->
となってゴミが付いてしまいます
レンタルサーバでもテスト環境でも結果は同じです
バージョンはともに4.4.2
0852nobodyさん
2006/08/20(日) 12:51:23ID:O6c5lrE6実害は無いのですが、精神衛生上よろしくないので
回避する方法、間違い等あれば教えてください
0853(^ω^)
2006/08/20(日) 12:54:40ID:???UTF-8じゃなかったらごめんね
0854nobodyさん
2006/08/20(日) 13:07:49ID:???べつの作業でツールの文字コード設定変えたままでした
ありがとうございました
0855nobodyさん
2006/08/20(日) 13:22:45ID:???gethostbynameはコアに含まれるのでPHP的には使える。
ただし、サーバからniku.2ch.netに向かってのDNSポートが閉じていると当然使用不可能
0856nobodyさん
2006/08/20(日) 13:44:58ID:???大抵の言語はDNSにアクセスできるでしょ?
つまり言語に依存しないってこと
0857nobodyさん
2006/08/20(日) 13:47:02ID:???0858nobodyさん
2006/08/20(日) 13:50:18ID:???0859nobodyさん
2006/08/20(日) 15:37:42ID:SEQXzGDk0860nobodyさん
2006/08/20(日) 16:51:11ID:???http://pc8.2ch.net/test/read.cgi/unix/1014614044/
http://pc8.2ch.net/test/read.cgi/unix/1000484092/
http://pc8.2ch.net/test/read.cgi/unix/1059971117/
http://pc8.2ch.net/test/read.cgi/unix/999837578/
http://pc8.2ch.net/test/read.cgi/unix/1007136614/
http://pc8.2ch.net/test/read.cgi/db/1057289721/
0862nobodyさん
2006/08/20(日) 17:55:18ID:SEQXzGDk0863nobodyさん
2006/08/20(日) 18:17:57ID:???hoge
└hoge1
└foo1.php
└hoge2
└foo2.php
というフォルダの構成だとして、foo1.phpから
foo2.phpに書かれたクラスを利用するには
foo2.phpをfoo1.phpでrequireしないとだめでしょうか?
php.iniでパス設定しないという前提で。
0864nobodyさん
2006/08/20(日) 18:29:26ID:???なんでそんな依存関係のあるクラスがhoge1とhoge2で分けられてるんだろ、という気がするが、
foo1をrequireするプログラムでfoo2もお約束としてrequireする、というのはダメか?
0865nobodyさん
2006/08/20(日) 18:58:00ID:???クラスのことが全然わかってないんですが、そもそも
PHPのクラスパスってどうなってるんでしょうか?
基本的にrequireしてからじゃないとクラス利用できない…なんてことは
ないようですし、php.iniのincludeで設定したパスのところに
置かないとクラスを読み込めないんでしょうか?
ほんとにくだらないレベルで申し訳ないですが、この辺説明した
書籍ってなかなかなくて…
0868nobodyさん
2006/08/20(日) 19:17:53ID:???0870nobodyさん
2006/08/20(日) 22:23:49ID:???フレームワークで自動で読み込まれるのは
http://www.php.net/manual/ja/language.oop5.autoload.php
を利用したり、iniで設定されたものを事前に読み込んだりしている。
0871nobodyさん
2006/08/21(月) 00:59:41ID:???0872nobodyさん
2006/08/21(月) 01:03:13ID:???それともプログラム中から呼び出すor書き込む等、必要に応じて
その都度セッション・ファイルから読み出し・書き込みされて、
スクリプトの終了と共にメモリから解放されるの?
0873nobodyさん
2006/08/21(月) 01:32:07ID:???Railsを参考にしたフレームワークは結構開発されてる。
詳しくは専用スレでドウゾ。
http://pc8.2ch.net/test/read.cgi/php/1151706907/
>>872
このスレで答えになる話題でてるぞ。探せ。
0874742
2006/08/21(月) 10:34:33ID:bnVaTE3o返答ありがとうございます。またせっかく回答をして頂いたのに返事が遅くなって、申し訳ないです。
クラス定義より前にデータを読み出しているという状態が、どんな状態か
ちょっとよく分からないのですが、以下の状態が同じ配列に並列にならんでいます。
object(stdClass)(11) {
["ItemAttributes"]=> &object(stdClass)(13) { ["Author"]=> string(16) "ほげ ほげお"
(略)
["ItemAttributes"]=> array(16) { [0]=> string(16) "ほげ ほげお"
}
毎回同じ本のデータがこの状態になります。
しかし本家Amazonのページで同じ本を検索すると問題なく著者が表示されているので、
私の方に何か問題があると思えるのですが、見当も付きません。
0875715
2006/08/21(月) 11:26:33ID:Xr9Z9Klv早速、金曜日の続きを以下のスクリプトで表現してみました
「確認画面」を押すと、別のphpファイルに飛ばしたいのですが、どうするのがベターなのでしょう?
<?php
$zz = $_POST['number1'];
if(mb_strlen($zz) == 6){
$ab ="OK";
}else{
$ab ="英数字で6文字";}
?>
<form method="post" action="test1.php">
<TABLE border="1">
<TBODY>
<TR>
<TD><INPUT size="6" type="text" maxlength="6" name="number1"
value="<?php print($zz); ?>">
</TD>
<TD>
<?php print($ab); ?>
</TD>
</TR>
</TBODY>
</TABLE>
<?php
if(mb_strlen($ab) == 2 ){
print "<input type=\"submit\" value=\"確認画面\">";
}else{
print "<input type=\"submit\" value=\"登録\">";
}
?>
</form>
0876nobodyさん
2006/08/21(月) 11:39:44ID:???if(mb_strlen($ab) == 2 ){
print "<input type=\"submit\" name=\"preview\" value=\"確認画面\">";
}else{
print "<input type=\"submit\" name=\"regist\" value=\"登録\">";
}
と区別可能な識別子を設定した上で
if(isset($_POST['preview'])) {
require("preview.php");
exit;
}
と指定された識別子があれば別のPHPファイルを読み込む。
0877715
2006/08/21(月) 11:41:38ID:Xr9Z9Klvありがとうございます!!
なるほど、nameで分けて、再度、IF文ですね
やってみまつ
0878nobodyさん
2006/08/21(月) 11:46:13ID:???1.POSTされたデータをセッションなどに格納した上で、
header("Location: /preview.php?sessid=セッションID");
exit;
とLocationヘッダで別ページに遷移する。
2.print "<input type=\"submit\" value=\"確認画面\" onclick=\"this.form.action='preview.php'\">";
として確認画面をクリック時にJavaScriptで遷移先を切り替える。
などもある。
0880nobodyさん
2006/08/21(月) 12:40:23ID:???どうしたらいいんでしょうか?
単純にソースコードを自分のサイトからDLできるようにしとけばいいのか、
それともsourceforgeみたいなところに登録(?)すべきなのか。
著作権などは維持しつつ、皆に無料で使ってもらうにはどういう方法がベストでしょうか。
0881nobodyさん
2006/08/21(月) 12:55:16ID:???著作権についてはドキュメントで明示すればよし。
0882715
2006/08/21(月) 13:20:52ID:???今回のところは、こうしました
<?php
if(mb_strlen($ab) == 2 ){
print "<input type=\"submit\" name=\"preview\" value=\"確認画面\">";
}else{
print "<input type=\"submit\" name=\"reverse\" value=\"登録\">";
}
if(isset($_POST['preview'])){
header("location:summer.php");
exit;
}
?>
次はCookieを使ってみます
0884nobodyさん
2006/08/21(月) 14:15:14ID:Dzmazm0+function is_yowai_pass($str) {
$regex = "(.{0,7}|[a-z]+|[A-Z]+|[0-9]+)";
if (ereg($regex,$str) == TRUE){
return TRUE;
} else {
return FALSE;
}
}
if (is_yowai_pass($password) == TRUE){
echo "脆弱だよ";
}
このとき、$passwordに「12345678」とか「abcdefgh」が入っていれば「脆弱だよ」と表示されて、
それはもちろん期待通りの動作なのですが、$passwordに「pass1234」など英数字を混ぜたものが
入っていても「脆弱だよ」が表示されてしまいます。英字と数字が混じっていれば
「脆弱だよ」と表示されないように作ったつもりなのですが、どこがおかしいのでしょうか??
0885nobodyさん
2006/08/21(月) 14:31:02ID:???正規表現に「^」と「$」をつけとかないと文字列全体をチェックできない。
今の状態だと「英字1文字」か「数字1文字」があれば必ず脆弱となる。
0886nobodyさん
2006/08/21(月) 14:33:17ID:???0887軟式PHP
2006/08/21(月) 15:17:34ID:???0888nobodyさん
2006/08/21(月) 15:37:14ID:???天才的関数名だなw
関数名以外の変数名とかはしっかりしてるというか、上級者らしいのに
is_yowai_passとは・・・「分かっててやってる」天才にしか出来ない技だぜ。
0889nobodyさん
2006/08/21(月) 16:25:41ID:???0890nobodyさん
2006/08/21(月) 16:36:13ID:???{
if ($my_konomi_type === $partner_konomi_type) {
return TRUE;
} else {
return FALSE;
}
}
0891nobodyさん
2006/08/21(月) 16:41:45ID:???$my_konomi_type === $partner_konomi_type だと、お互いに同じ性質を持つ人間でなければなりませんが。
0893715
2006/08/21(月) 17:03:41ID:???test1.php
----------
<?php
session_start();
$zz = $_POST['number1'];
if(mb_strlen($zz) == 6){$ab ="OK";}else{$ab ="英数字で6文字";}?>
<form method="post" action="test1.php">
<TABLE border="1"><TBODY><TR>
<TD><INPUT size="6" type="text" maxlength="6" name="number1" value="<?php print($zz); ?>"></TD>
<TD><?php print($ab); ?></TD></TR></TBODY></TABLE>
<?php
if(mb_strlen($ab) == 2 ){
print "<input type=\"submit\" name=\"preview\" value=\"確認画面\">";
}else{print "<input type=\"submit\" name=\"reverse\" value=\"登録\">";}
if(isset($_POST['preview'])){
$_SESSION['zz'] = $zz;
header('Location: test2.php');
exit;}?></form>
test2.php
----------
<?php
session_start();
if($_SESSION['zz']){
$zz = $_SESSION['zz'];
print($zz);
exit;}
?>
0894nobodyさん
2006/08/21(月) 18:48:19ID:???0895nobodyさん
2006/08/21(月) 18:51:10ID:???どうにかならないんでしょうか?
あと、メンバ変数に文字列を格納するときに . でつなぐ方法ってないんでしょうか。
PHP4が最悪だったので、5に移行したけど、やっぱあいまいすぎるこの言語・・・・泣
0897nobodyさん
2006/08/21(月) 19:26:52ID:???なんも表示されない。
なぜだかかわかる方いたますか?
0898nobodyさん
2006/08/21(月) 19:33:47ID:???perl よりかはマシって言う程度だからな
こういうスクリプト言語ではユニットテストがかなり重要
C++とかなら、コンパイラが出すエラーをユニットテストで見つける
ほかない
0899nobodyさん
2006/08/21(月) 19:43:28ID:???function is_love_me( $my_value, $partner_konomi_type )
{
if ($my_value === $partner_konomi_type) {
return TRUE;
} else {
return FALSE;
}
}
だろうが。
0901nobodyさん
2006/08/21(月) 21:13:43ID:???そうなんですか。
別のミラーとかから落としても駄目でした。
もう、ユーザー会のサイトの前文検索使わせてもらおうと思います。
0902nobodyさん
2006/08/21(月) 21:56:23ID:???ありがとうございます。
__set, __getで制御できるようですが、PHPの通常のエラーのように発生させたかったため
うまい方法が見つかりませんでした。
あとメンバの初期値設定時に、 . を使って文字列をつなぐとエラーがでてしまいます。
マニュアルにはphp4 ではムリと書いてあるけど、5については何も書いてないんだよなぁ・・・・
ムリならムリと5もかいてほしい・・・・
0903nobodyさん
2006/08/21(月) 23:23:47ID:???mysql_queryしようとするとなぜが成功しません。
select文は成功しました。
どこが原因なんでしょうか?
0904nobodyさん
2006/08/21(月) 23:29:20ID:???何の必要があるの?
普通にブラウザでアクセスしてスクリプト走らせてデバッグするのと何が違うの?
0905nobodyさん
2006/08/21(月) 23:36:52ID:???プロジェクトによってその単位とか、テストの方法もろもろ変わってしまうけど、
単体テスト⇒結合テストと行うことで、バグの発見をしやすくするんだと思う。
通常単体テストでは、1画面を1つの単位としてテストを行うと思うけど(自分の経験では)
そのときは、ブラウザを使おうが、デバッガを使おうが、単体テストだよ
0906nobodyさん
2006/08/21(月) 23:40:22ID:???本当にまんま同じSQLを発行しているかPHPでデバッグプリントして味噌
でも分からなければ問題無い範囲でここに貼りなされ
0907nobodyさん
2006/08/21(月) 23:43:02ID:???すいません。いまちょっといろいろためして見たら日本語が入ったらダメなことに気づきました。
文字セットの問題だとは思うのですが、php.iniをいじったら直るのかな。。。
0908nobodyさん
2006/08/21(月) 23:56:44ID:???たいていは、メソッド一つづつ、成功と失敗をする条件を与えて
期待通りに動くかテストする方法
早期にバグを見つけて、その処理の精度を高める
いきなり結合テストから始めると、バグが見つかったときに
解決をするのが時間かかったり、めったに出ない条件によって
引き起こされるバグを見落としたりする
0910nobodyさん
2006/08/22(火) 00:00:05ID:???う〜ん、、、おっしゃっている意味がよく分かりません。
俺が普段行っているデバッグ作業は、「単体テスト」というのを繰り返して、
結果的に「結合テスト」というものになっているんでしょうか・・・。
>>908
メ、メソッド・・・・
あの、実はOOP理解できないのでクラスとか全く使ってないんだけど、
それでもユニットテストというのは必要?&有効?
0911nobodyさん
2006/08/22(火) 00:15:56ID:???PHPでサーバーに接続した直後に
mysql_query("SET NAMES SJIS");
と、やったら表示されるようになりました。
(参考)http://tag.oops.jp/wordpress/archives/5
おっしゃる通り、PHPとMySQLはバージョンによって設定がかなり異なってきますね。
むやみに新しいバージョンを入れるのは控えたほうがいいかもしれません。
てか、設定に何分無駄な時間を費やしたんだよ俺ww
0912nobodyさん
2006/08/22(火) 00:36:10ID:???まず設計時点で機能を細かく分けてシンプルな関数の集合体にする。これが大前提。
その上で関数単位にテストを行いデバッグした上で、関数の集合であるプログラムのテストを行う。
さらにシステムは大抵の場合複数のプログラムの集合体になるから最終的に全体でのテストを行う。
それが単体テスト→結合テスト→総合テストの流れ。
オブジェクト指向を使わなくても、昔からある構造化設計でもこれはプロとして当たり前の作り方。
>>904みたいなテストしかしてないんなら、テストがどうこう以前に設計自体が素人レベルなんでしょう。
単体テストはブラウザ上でもコマンドラインでもどっちでもできるよ。
大抵はこれを行うために「ドライバ」や「スタブ」といった、上位・下位部分を担うテストプログラムを作成する。
このテストプログラムで多種多様なテストケースを実行し、通常の操作ではなかなか発生しないような
レアケースなデータでの挙動などもテストするわけだ。
0913nobodyさん
2006/08/22(火) 01:03:18ID:???0914nobodyさん
2006/08/22(火) 01:36:54ID:???俺はクラスは全く使わず、自作関数も数えるほどです。
あとはいわゆる「ベタ書き」と呼ばれるヤツなんだと思いますが、
そういうわけで単体テストというものの意味やイメージが湧きません。
PHPの標準関数ばかり使ってるから、その時点で「単体テスト」は終わってると見なしていいんでしょうか?
いわゆる「ベタ書き」の場合、ブラウザからアクセスしてのテスト(すなわち実運用と同じことをやってみる)しか
考え付かないのですが・・・。
0915nobodyさん
2006/08/22(火) 01:47:07ID:???だからそもそも設計が素人レベルなんだって。
その設計では単体テストは「不可能」で「無駄」。
そもそも「単体テストができるように作る」ことに意義があるの。
それができない時点で、一定率以上の品質は保てないんだよ。
ただ、ちっこいプログラムしか作ってない分には品質が多少低くても
それほど問題になることはないだろうから、必要はないんじゃない?
下手に中規模以上のシステムを作ってみようとか思わなきゃおっけー。
0916nobodyさん
2006/08/22(火) 02:58:21ID:???べた書きで困っていないんならそれでいいのかな
それである程度の規模のを作ってるんだとしたら引き継ぎたいとは思わんが・・・
0917nobodyさん
2006/08/22(火) 03:11:44ID:???いや、それもちゃんとしたテストだよ。
例えば顧客管理という機能があったとして、もうちょっと細かく分けると顧客の登録、削除、更新って言う機能が
必要だってのはなんとなく分かるでしょ?
で、登録、削除、更新って言う機能を別々に作ってそれぞれがちゃんと動くかテストする。これが単体テスト。
それが上手く行けば次はそれぞれをくっつけて全体としてちゃんと動くかテストする。これが結合テスト。
本当はさらに顧客の登録だけでも細かく分けるから上記の例が100%正しい訳では決して無いけど、とりあえずイメー
ジとしてはこういうもんだって把握しとけ。
0918nobodyさん
2006/08/22(火) 03:13:48ID:???ユーザ関数とか使われるといちいちその関数を探すのがメンドクサイ。
0919nobodyさん
2006/08/22(火) 04:22:34ID:???・呼び出し側ではその中身まで意識しなくても全体の動作を読める
・関数側では自身のみに着目して機能と実装を検討できる
という可読性のメリットがはじめて得られるわけで、そもそもは全体をまとめて読む必要を無くすもの。
しかし、正しい設計で作られた関数でなければそれらのメリットは生まれない。
いちいち関数を呼んでる場所毎にその中身を追っかけなきゃいけないんなら
それは関数の設計自体がどっかおかしいんだろう。
0920nobodyさん
2006/08/22(火) 07:17:40ID:???まったくもって、それでOKですよ
逆に、それが一番望ましいのです
テスト用のアクションリストを作成して
UI経由で人間が直にテストしていく行為を行わないベンダーが多くてね
まぁ丸投げの世界じゃ、口頭で「テストしたか?」程度が現実w
システムっていってもさ
小規模も中規模も大規模もかわらないって
ぶっちゃげネットワークが大きいか小さいか、ノード数が多いか、少ないかだよ
だからパフォーマンスチェックは、どのベンダーも意外と真面目ねw
なので考えに間違いがないので安心してね
0921nobodyさん
2006/08/22(火) 09:00:10ID:???機能追加のしやすさを考えれば自然と流れの読みやすいものになるよ。
関数名探すのが面倒ってのはエディタが悪い。
もしくは関数をどのファイルに関連付けるか整理できてない。
0922nobodyさん
2006/08/22(火) 09:22:16ID:???0923nobodyさん
2006/08/22(火) 09:44:42ID:???まさか埋め込みメールフォームとかのレベルの話じゃないだろうな。
0924軟式PHP
2006/08/22(火) 09:58:06ID:???それが大企業から降りてきたプロジェクトなどは、
CI > 単体テスト > 結合テストとか結構ややこしい手順を踏まないといけないことがあるよ。
0925nobodyさん
2006/08/22(火) 10:03:00ID:???少なくとも、コアになるような処理に関してはね
0926nobodyさん
2006/08/22(火) 11:17:50ID:???処理ごとに細かくユーザ定義関数が用意されているんだけど。
0927nobodyさん
2006/08/22(火) 11:47:11ID:???0928914
2006/08/22(火) 12:10:13ID:???そうですね。確実に素人の考えです。でも「プロ」のやり方が正しいかどうかは分かりません。
俺は複数人数で開発してるわけじゃないので、プロのやり方がひどく無駄で非効率に感じてしまう時があります。
なぜ単体テストと品質が直結するのか、いまいち納得がいきません。そのやり方が全てではないと思います。
>>916
可読性という点では、ベタ書きですがかなり気をつけて書いています。
ただそれは「自分が分かりやすい」というものでしょうから、
たしかに誰かに引き継ぐとなると、引き継いだほうは多少大変かもしれません。
ただベタ書きとはいっても、一つ一つの処理は、だいたい一つの流れでまとまっているわけで、
その近辺だけを読めばだいたい分かるようになっています。
0929914
2006/08/22(火) 12:35:40ID:???なるほど、そういうイメージなんですね。分かりやすいです。
ちなみに俺はベタ書きですが、「顧客の登録、削除、更新」があったとして、
それぞれの機能の終わりの部分にexit;を挿入してテストしてますので、結果的に単体テスト…になってるのかな??
>>920
そうなんですか、ちょっとホッとしましたw
俺の考えでは、要するに最終的に実際の運用で想定されるあらゆる操作・アクションを
漏れなく実行してみるテストをすればそれでいいのでは?・・・という感じです。
0930914
2006/08/22(火) 12:37:15ID:???たとえば自作関数が期待通りの動作をするかどうかは当然チェックしてるので、
たぶん、みなさんが言うところの「ユニットテスト」に当たるものは
無意識にやってるんだと思います。
0931nobodyさん
2006/08/22(火) 13:16:45ID:???> 俺の考えでは、要するに最終的に実際の運用で想定されるあらゆる操作・アクションを
> 漏れなく実行してみるテストをすればそれでいいのでは?・・・という感じです。
たぶん網羅してるつもりでも出来てない気がする。
テストすべき条件が3つある処理が2つあったとして、それを同じ関数に入れると
3の2乗個の条件になる。入れれば入れるほど条件は増えるが、必ず全てを網羅できるか?
0932nobodyさん
2006/08/22(火) 13:33:55ID:???実際はそんな暇ない。
フリーでやってたりすると、お客さん(発注側)がかなり無理を言うので。
普通の企業で2人月の仕事を2週間でやってくれとか、
納品まで数日しか無い所で呼ばれるとか…。
テストファーストとか言っても、まるで書いてる暇がない。
0933nobodyさん
2006/08/22(火) 13:44:45ID:???関数個別の入出力のテストはそれはそれでやっています。
あと、条件を網羅できてるかどうかは、テストの手法に関わらず気をつけるべき
ポイントであり、テストの手法には直接関係ないですよね?
あと、ユーザ入力の値(範囲)チェックやバリデートを厳密にやっているので、
関数に入れてテストすべき条件はさほど多くならないようにしています。
0934nobodyさん
2006/08/22(火) 13:53:57ID:???そこまで断言できるならここで意見を求める事もないだろう。
独自の道を進めばいいんじゃないか。
けど経験則で言うと、別に劣ってないからやらなくて良いでしょって言う時は
やらなくて良い口実を探してる事が多いんだよな。
0936nobodyさん
2006/08/22(火) 14:11:12ID:???ユニットテストは初期開発時以外でも、リファクタリングするときにも使う
テスト用の条件をテキストに書き残して、機能を変更したときにそれをもう一度
手で行うのはめんどうなので、自動的に行ってくれるユニットテストツールが
重宝される
0937nobodyさん
2006/08/22(火) 14:19:21ID:???0938【みらくる】な電波ソング(w
2006/08/22(火) 14:29:06ID:???ほっぺがおちるよミラクルワールド
カモーネカモネ ミラクルかもね
作って美味香 ナンバーワン
ビビンバ ズッパ タンタンメン
クスクス カタプラーナでポイ!
味にうるさいクレオパトラも
食わず嫌いのナポレオンも
みんな大好き魔法の呪文
とっておきの呪文だよ
天使のスプーンですくったら
魔法の呪文を ハリラハリラハラリー(ハイ!)
カモーネカモネ ミラクルかもね
作って美味香 ナンバーワン
ビビンバ ズッパ タンタンメン
クスクス カタプラーナでポイ!
(NHK教育 18:00 - 18:10)
http://www.youtube.com/watch?v=tmELQUsLu2o
0940nobodyさん
2006/08/22(火) 14:46:14ID:???歯車になる気は無いし、複雑な問題を単純化しなくても解けるし、
忘れた頃に自分の書いたコードを読み返してもすぐ理解できるし、
もしかしたら二度と忘れる事はないんでしょう。
0941nobodyさん
2006/08/22(火) 14:50:21ID:???チーム開発した事なく自己過信気味の駆け出し君に
ユニットテストの恩恵なんか説明しようとしても無駄
質問者と回答者のやり取りも微妙に噛みあってない
禅問答やってる暇があったらコード書いてた方がいい
0942nobodyさん
2006/08/22(火) 14:51:47ID:???時間がもったいないだろ p
0943nobodyさん
2006/08/22(火) 15:05:42ID:???0944nobodyさん
2006/08/22(火) 15:29:48ID:???0946nobodyさん
2006/08/22(火) 17:24:08ID:???の口車に乗って
ttp://www.ioi-jp.org/joi/2005/2006-m1-prob_and_sol/2006-m1-t1.html
をやってみてるんだが
入力例23 4 52 1 26 3 41 2 31 1 1
出力例23 1 1 1
って
出力例24 1 1 1
じゃないか?
0947946
2006/08/22(火) 17:25:02ID:bNxpCiwiあーみにくくなった
出力例2は
4 1 1 1
じゃ無いかって事
0950946
2006/08/22(火) 17:49:10ID:bNxpCiwiユーザ関数化しちゃえばいいんだけどさ
0951nobodyさん
2006/08/22(火) 17:57:28ID:???0953nobodyさん
2006/08/22(火) 18:09:08ID:???0956nobodyさん
2006/08/22(火) 18:33:58ID:???function hogehoge
{
foreache($hoge as $var)
{
return $var;
}
}
0957nobodyさん
2006/08/22(火) 18:45:39ID:???0959nobodyさん
2006/08/22(火) 18:55:23ID:???そりゃチーム開発にはOOPだのユニットテストだの必須だが、
別にそれが必ずしも優れてるとか絶対とかってわけじゃないだろう
自己過信気味で頭が硬直化してるのはむしろ喪前では?
0960nobodyさん
2006/08/22(火) 19:10:44ID:???ただ一つ目の要素返して終わりで何をしたいのかわからない
0962nobodyさん
2006/08/22(火) 19:52:15ID:???while使いたいな。
0963(^ω^)
2006/08/22(火) 20:01:16ID:???0964(^ω^)
2006/08/22(火) 20:04:57ID:???$file_name = "01.txt";
/* ここからプログラム */
$tri = 0; // 三角形
$r_tri = 0; // 直角
$a_tri = 0; // 鋭角
$o_tri = 0; // 鈍角
$fp = fopen($file_name, "r") or die("ファイル読めねーよ馬鹿");
while(true) {
$res = sscanf(rtrim(fgets($fp)), "%d %d %d");
//値の数が3以下なら終わり
if (count($res) != 3)
break;
sort($res);
// 三角形でなければ、さようなら
if ($res[0] + $res[1] <= $res[2])
break; // 終わり
++$tri;
// 直角三角形
if ($res[0] * $res[0] + $res[1] * $res[1] == $res[2] * $res[2])
++$r_tri;
continue;
// 鋭角三角形
if ($res[0] * $res[0] + $res[1] * $res[1] > $res[2] * $res[2])
++$a_tri;
continue;
++$o_tri;
}
fclose($fp);
echo join(" ", array($tri, $r_tri, $a_tri, $o_tri));
?>
0965(^ω^)
2006/08/22(火) 20:07:23ID:???0966nobodyさん
2006/08/22(火) 20:14:52ID:???どうやるんですか?
0967nobodyさん
2006/08/22(火) 21:07:08ID:???0968nobodyさん
2006/08/22(火) 22:00:57ID:???ってことにならないように行うものだよ
だからさ、バグがありませんよって示せるようなテスト結果があればいいってことだよ
単体テスト、結合テストってプロジェクトの規模によって複数階層別になるし
ほかのみんなが言っている単体テストを質問者のプログラムに直接対応させるのは
おかしいと思う
単体テスト=個々の機能テスト
結合テスト=複数の連携テスト
ようはバグがあとあとでてこないように、発生しうるルートをすべて網羅できるように、
小さい機能から先にテストしておきましょうってことかな
複数の機能が連動するようなテストだと、すべて網羅することは難しいからね
0969nobodyさん
2006/08/22(火) 22:35:57ID:pY0h5YuJクライアントの要望で、PHP、SQLの環境で、スプレッドシート(セル)形式のUIを作って欲しいと。
なぜか? と聞いたら、取引先のxlsからコピーできたりしたら、素晴らしいことでしょ? それとライセンスの関係でエクセルが無いPCがあるので、エクセルに依存してるのは駄目だと。
との答え。
はい。 途方にくれました。
まず、エクセル以外のスプレッドシート… 思い浮かびません。色々調べたけど、英語過ぎて分からなかった。ライセンス激高いソフトは発見したけど、SQLの兼ね合いがまるで不明。
それになんらかのスプレッドシートを作ってもSQLから出力できるのかと。
明日一日調べる予定だけど、英語てんでだから、難しいだろうなぁ;;
皆さんお知恵があれば、助けてください;;
0970nobodyさん
2006/08/22(火) 22:39:53ID:???それ、いくらで作るの?100万とかじゃないよね。
まぁ、そんなあなたに
つ Google Spreadsheets
0971nobodyさん
2006/08/22(火) 23:18:42ID:pY0h5YuJ100ってことはないと思いますね。PMと営業にまだ聞いてないので、詳しくは知りません。
Google Spreadsheetsですか〜 ちょっと調べてみます〜
HTMLにさえ入れられれば… ☆(ゝω・)vキャピ
0972nobodyさん
2006/08/23(水) 00:07:29ID:???一応考え付いた方法は、$_SERVER['HTTP_REFERER']と$_SERVER['HTTP_HOST']を
取得して、$_SERVER['HTTP_REFERER']の文字列の中に$_SERVER['HTTP_HOST']が
含まれてるかどうかをチェックするというもの。
これだと何かマズイ点とかありますでしょうか?
0974nobodyさん
2006/08/23(水) 00:24:27ID:???CSRF対策での話なので、リファラ偽装は関係ないと思いますが・・・。
CSRFによる被害を受けちゃう本人がリファラを偽装してる分には
その人自身の責任ですからね。
0975nobodyさん
2006/08/23(水) 00:40:33ID:???0976nobodyさん
2006/08/23(水) 01:01:54ID:???【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
0977nobodyさん
2006/08/23(水) 01:16:21ID:???=?iso-2022-jp?B?".base64_encode(mb_convert_encoding("ここに日本語の件名","JIS","EUC-JP"))."?=";
って言う指定をしたらある程度文字化けを防げるようになったんだけど、一部の人間はまだ文字化けしてるって言ってる。
誰かヒントください!
0981nobodyさん
2006/08/23(水) 02:28:49ID:???そのクライアントがスプレッドシートに何を期待してるんだか分からん。
単に縦横にカラムが並んでればそれだけでいいのか?
0983nobodyさん
2006/08/23(水) 02:56:31ID:???0984nobodyさん
2006/08/23(水) 03:02:58ID:???それはあるな。
ただ、一番最初のIEの起動でさえ止めようとするあの男気には天晴れというほか無い。
>>977
あんまりメール系やらないから分からないけどmb_send_mailとかじゃダメなの?
0988nobodyさん
2006/08/23(水) 06:10:44ID:???0990nobodyさん
2006/08/23(水) 06:15:02ID:???【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
0991nobodyさん
2006/08/23(水) 07:45:29ID:???カテゴリを表示する処理で、
カテゴリA10 x カテゴリB10(カテゴリA1つの付10個存在) で = 100回もの
SQLを発行することになったんだけど、これって効率悪いですよね
最終的には下のように表示したいので、それぞれカテゴリA、カテゴリBの配列があればいいかな
って思ってこうやったんですが、何かうまい方法ってないんでしょうか
カテゴリA名1
カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....
カテゴリA名2
カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....
0992nobodyさん
2006/08/23(水) 08:08:35ID:???SQLの内容にもよるよ。軽いSQLなら100回くらいやっても別に問題ない。
回数よりトータルの待ち時間と、実行中のDBサーバー負荷が肝心。
それが過負荷になってるならカテゴリBの取得をまとめてやっておいて
PHPの配列処理で分配する方法も効果があるが、そういうのは
現物でベンチマークでも取りながらチューニングしないと何とも言えんよ。
で、とりあえず質問するならカテゴリAとBがDBのテーブルにどういう風に格納されてて
どんなSQLで拾ってるのか書いてくれんことにはアドバイスのしようがない。
多分、カテゴリBのSQLと配列への格納の仕方を手直しすれば一発で引けるとは思うが。
0993nobodyさん
2006/08/23(水) 08:12:43ID:???> カテゴリA名1
> カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....
> カテゴリA名2
> カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....
カテゴリA名1内のカテゴリB名1と、カテゴリA名2内のカテゴリB名1ってのは同じなのか?別物なのか?
0994nobodyさん
2006/08/23(水) 09:55:52ID:???>単に縦横にカラムが並んでればそれだけでいいのか?
そういうニュアンスのことを言われました〜。
Google Spreadsheets ちょっと見てみたけど、ヒントをくれた方は、JavaScriptでHTMLの中に入れてやれってことだったのかなぁ。
色々やってみたけど、上手い使いまわしはできなかたぁ〜。
0995nobodyさん
2006/08/23(水) 10:05:03ID:???そういうニュアンスだと「xlsからコピーできたら素晴らしい」とはならん気がするんだが…
どうやってコピーする気なんだよ、それ。
なんかクライアントが壮絶な勘違いと過大な期待をしてるような気がして仕方がない。
0996nobodyさん
2006/08/23(水) 11:13:00ID:???俺もそう思う
お馬鹿な客っぽいから、グラフなんかもCOPYさせろとか言われそうw
素直にxlsファイル読み込みで、テーブルに表示させて、ゴリ押しだな
0997nobodyさん
2006/08/23(水) 11:30:10ID:???欲しいものがクライアントも理解できていない、典型的な例に見えるね
好意的に解釈するのなら
・スプレッドシート形式のUIが欲しい
・xlsファイルのインポート機能も欲しい
・だからと言って、まずxlsファイルを編集して、インポートする機能だけのものは駄目だ
また、エクセルをインストールしないと使えない処理も不可
と言うことじゃないかな
それでも、まともなスプレッドシート機能を実現するのはかなりめんどうだとは思うが
動的な列や行の追加やらなんやら…
0999軟式PHP
2006/08/23(水) 11:54:09ID:???1000(^ω^)
2006/08/23(水) 12:11:06ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。