【PHP】下らねぇ質問はここに書き込みやがれ 26
■ このスレッドは過去ログ倉庫に格納されています
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カテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
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に戻すのもちょっと嫌ですが。
■ このスレッドは過去ログ倉庫に格納されています