5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【PHP】下らねぇ質問はここに書き込みやがれ 25

1 :nobodyさん:2006/07/23(日) 20:00:03 ID:???
PHPに関するくだらねぇ質問用スレです。
ここならお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2

2 :nobodyさん:2006/07/23(日) 20:00:35 ID:???
【PHP】くだらねぇ質問はここに書き込みやがれ
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/

3 :nobodyさん:2006/07/23(日) 20:02:03 ID:???
【PHP】下らねぇ質問はここに書き込みやがれpart16
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/

4 :nobodyさん:2006/07/23(日) 20:02:34 ID:???
関連リンク
■本家マニュアル   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/に変えてみたら日本語があるかもしれません。

5 :nobodyさん:2006/07/23(日) 20:06:11 ID:???
関連スレ
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/
PHP統合開発環境スレ
http://pc8.2ch.net/test/read.cgi/php/1123912762/
最強の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/

6 :nobodyさん:2006/07/23(日) 20:06:43 ID:???
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
2. ハードウェア、OSのバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。
5. 質問者としても態度をわきまえること。


◆質問後の注意
・質問者は必ずIDを表示させてください。
  書き込む場合はメール欄に何も記述しないでください。
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)

7 :nobodyさん:2006/07/23(日) 20:07:19 ID:???
・part17よりテンプレ化

extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

って形で送られてきたとします。これを

extract($_GET)

しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。

もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。

それを避けるために

extract($_GET, EXTR_SKIP)

ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。

8 :nobodyさん:2006/07/23(日) 20:08:38 ID:???
以上、完了。

9 :nobodyさん:2006/07/23(日) 20:09:35 ID:???
>>1
乙〜

テンプレで夏厨対策とかできたらいいんだけど、そこまでは無理だね

10 :nobodyさん:2006/07/23(日) 20:10:17 ID:???
しかしどーでもいいんだがextractの話ってテンプレに入れる必要あんのか…?
というか、未だにextractなんて無節操に使うやつが残ってることが驚きなんだが。

11 :nobodyさん:2006/07/23(日) 22:20:32 ID:ucKp6iBH
質問です

Google・Yahooの検索エンジンを使って
「まんじゅう」というキーワードでサイトに訪問したとします。

このまんじゅう(検索語句)を $key に入れる事はできるのでしょうか?

12 :nobodyさん:2006/07/23(日) 22:30:39 ID:???
>>10
スレタイ嫁。 下らねぇ質問が集まるスレなんだからそんなユーザなんて五万といる

13 :nobodyさん:2006/07/23(日) 22:33:41 ID:???
・セーフモードは、PHP 6.0.0 で削除されます。
・ロケールの変更は PHP 6 以降では、i18n_loc_set_default() 関数を使用する必要があります。
・register_globals は PHP 6.0.0 で完全に削除される予定です。

備えあれば憂いなし。

14 :nobodyさん:2006/07/23(日) 22:40:41 ID:???
>>11
アクセス解析でRefererを取得すれば、良いでしょう。

15 :nobodyさん:2006/07/23(日) 22:47:33 ID:???
>>11
本当に下らない質問だな。

もうちょっと思考の末悩んで持ってきた質問は無い物か。
最近直ぐに答えが出る質問ばっかりだ。

もっと発想力を鍛える質問クレクレ

16 :nobodyさん:2006/07/23(日) 23:48:25 ID:???
>>13
お?そろそろPHP6出るのか?

17 :nobodyさん:2006/07/24(月) 00:13:03 ID:Mn5lSOKP
PHP6が出ると、PHP4が破棄されて、

PHP6 … 先行版
PHP5 … 安定版

に繰り上げられるのでしょうか?

18 :nobodyさん:2006/07/24(月) 00:20:48 ID:???
出てから心配しろ

19 :17:2006/07/24(月) 00:31:08 ID:Mn5lSOKP
一理ありますが、今までの経緯(PHP5がリリースされた時等)から決まったシステムがあるのかと思いましたもので…。

20 :nobodyさん:2006/07/24(月) 00:37:41 ID:???
php4は普及してるからそんな直には破棄されんだろ

21 :nobodyさん:2006/07/24(月) 00:45:15 ID:JznHVVLQ
PHPで自分がいるディレクトリの名前を取得することってできますか?
たとえば
〜/hoge/huga/index.php
という階層にphpを書いたファイルがあるとして
"huga"をindex.php上で取得することってできますか?

22 :nobodyさん:2006/07/24(月) 01:00:13 ID:???
>>21
アノォ・・・・・・・・・・・

23 :nobodyさん:2006/07/24(月) 01:17:46 ID:???
>>21
最近こんな糞以下のくだらないのばっかり。

こんな奴が作ったphpとか恐ろしくてアクセスしたくないんだけど。
無限ループとか平気で起こしてそうだから。

とりあえず探してどうしても無かったらこいや。
勉強だってまずは自分で調べるだろが。努力もせずに楽してる奴は一生そこから上には行けんよ

24 :nobodyさん:2006/07/24(月) 01:28:01 ID:???
>>19
PHP5が出たときは、とうの昔にPHP3なんて廃れてた

25 :nobodyさん:2006/07/24(月) 01:30:50 ID:???
>>21
少なくとも ttp://www.php.net/manual/ja/ref.dir.php は読んだ上でその質問をしてるんだろうな??

26 :nobodyさん:2006/07/24(月) 04:15:43 ID:???
>>23
ちょっと気になるなぁ。貴方は質問に答えられる人間なのだろうか。
製作者側からして初級プログラマの製作で恐いのはセキュリティやサーバへの負荷だと思うが
利用者側から「こいつ初級プログラマだから嫌だ」と思うことってあるだろうか?
まぁちゃんと実行されてないと嫌になるけどね。

というか初級プログラマが犯した無限ループやらのPHPが恐くてアクセスしたくない
なんて感情が生まれるだろうか?PHPを扱っている人間とは思えないな。
ちょっと辛口だったのでマジレスしてみた。

までも俺も初級プログラマだけどPHPマニュアル以外にやっぱり本を買うべき。
関数メインの辞書とサンプル集でも買っておけば大抵の事は実行できるはず。
それでも分からなかったら質問しましょうよ。

27 :nobodyさん:2006/07/24(月) 06:25:21 ID:???
>>26
ヘタな回答されるよりはマシくらいに思っておいて吉。


28 :nobodyさん:2006/07/24(月) 07:28:39 ID:???
>>26
共有のサーバーに置かれてて他人の大迷惑になってる場合もあるけどね。
しょぼい企業のページでPHPが生のエラーメッセージ吐いてたりするのはまだ笑えるんだけどw

29 :nobodyさん:2006/07/24(月) 08:23:00 ID:???
>>26
確かにちょっと辛口過ぎたかもしれない、スマソ。
なんていうか折角PGやってるのに向上心のないユーザを見るとついカッとなってね orz

>セキュリティやサーバへの負荷
無限ループも似たようなもんな気がしないでもない様な。
ユーザ権限の場合どちらかというとサーバ負荷が一番危惧される問題点だと思う。

権限上サーバに深刻なダメージを与えることはユーザ領域のphpでは難しいし、
せいぜいユーザ領域が荒れるくらいかな。


>無限ループやらのPHPが恐くてアクセスしたくない
タブブラウザだと無限にHTMLが出力されて他のタブも巻き添えで落ちるから結構凹みますよ?

30 :nobodyさん:2006/07/24(月) 08:29:13 ID:???
あー。無限ループって処理ループしっぱなしで帰ってこない→タイムアウトを想像してたけど、
出力を無限ループして巨大なHTMLを吐くようなのもあるのか。
すげー間抜けなプログラムだなそりゃ。

31 :nobodyさん:2006/07/24(月) 08:30:54 ID:???
>>26
そういやこの手の「いくらなんでもリファレンス本見れば一発で分かるだろう」みたいな質問するやつって
いったいどんな本etcを見て勉強してるんだろうね。

32 :1:2006/07/24(月) 08:44:47 ID:???
>>6
いけね。そういやハードウェアのバージョンは要らんだろ、って話になってたっけ?
忘れてたよ〜。次回よろ。
↓みたいな感じでどうだろ。

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
2. OS、Webサーバー、PHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。


◆質問後の注意
・質問者は必ずIDを表示させてください。
  書き込む場合はメール欄に何も記述しないでください。
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)

33 :nobodyさん:2006/07/24(月) 09:00:25 ID:???
質問とはちょっとそれるんだけど依頼元のphpがShift_JISで構成されてるんだけど、
普通は書く時皆さんはどちらで作成してますか?

phpの内部コードはEUC_JPが一般的でEUCで書いてるのですがShift_JISで作成するメリットって何でしょうか。
色々と文字コード特有の弊害もありそうで指摘にはEUCの方が便利なのですが。

34 :nobodyさん:2006/07/24(月) 09:01:03 ID:???
これも貼っとくか

471 名前:nobodyさん 投稿日:2006/07/15(土) 18:01:13 ???
プログラミングとは結果を得るための手順を考えることだ。
手順さえ思いつけば8割がた出来たも同じ。後は利用する
プログラミング言語の文法に従って書けば良いだけだからな。

その手順を考えることを放棄するような奴ってなに考えてるんだろうね?
この世に不要なんだよ。存在自体が。

ここはくだ質スレだが、こういう結果が欲しくてこういう手を考えたが
もっとスマートな方法は無いか?とかどういう関数が使えるか?
ちうことを聞くところだ。
考えることを放棄するような奴はイラネ。うせろ。

35 :nobodyさん:2006/07/24(月) 09:03:26 ID:???
>>33
UTF-8

携帯用とかWindowsしか考えてないとか、そもそも文字コードの
概念自体ないとかかな?>SJIS

36 :nobodyさん:2006/07/24(月) 09:18:45 ID:???
>>33
1.UTF-8
2.EUC-JP
3.SJIS

SJISのメリットはメモ帳でもとりあえず作れるとか、
携帯専用ページならコード変換なしで入出力できた(過去形)とか
どっかと共用してるDBのコードがSJISでHTML出力もSJISだったとか
どっかのデザイナーが作ってたHTMLに埋め込む形で開発スタートしてたとか
割と後ろ向きな理由しかないと思う。

>>34
冗長すぎて読む気しない
しかも今の連中が読むと「考えが古臭い」で一掃されそう

37 :nobodyさん:2006/07/24(月) 09:34:27 ID:???
>>36
そうか。じゃ手取り足取りサポートしたれや。
俺は退場するわ。

38 :nobodyさん:2006/07/24(月) 09:54:49 ID:???
>>33
EUC-JP

UTF-8 は波ダッシュ問題などがあるし、UTF-8 じゃないと困るということもないので。

39 :nobodyさん:2006/07/24(月) 10:02:52 ID:???
>>37
誰も素直にサポートするとは言っとらん
こんないきなり考え方から矯正しようとしたって無駄って話
アホ質問が出たらその都度叩けば十分だろ

40 :nobodyさん:2006/07/24(月) 10:06:46 ID:???
>>38
人名をなるべく忠実に再現してくれって要望は多くない?
そんな関係で俺はUTF-8を使ってる。

波ダッシュで困るケースって例えばどんな?


41 :33:2006/07/24(月) 10:10:31 ID:???
レス有難う御座いますm(_ _)m
思いのほかUTF-8が一番人気なのですね。

日本語なのでEUCとSJISしか考えてませんでしたが多言語サポートのUTF-8も良さそうですね。
個人的にはUTF-8は外国物て印象があってイマイチ敬遠してしまうのですがSJISの様に文字化けしてしまいませんでしょうか;

例えばSJISだと機能が機\能だったり予定が予\定だったり、
eregとか関数に「ー」が入ると構文エラー引き起こしたり云々・・・。(あと☆とか★の記号も

42 :nobodyさん:2006/07/24(月) 10:21:28 ID:???
>>38
UTF-8 の方がむしろ人名を忠実にって要望は応えられないんじゃ?
Han Unification ってそういう問題だよね?
JIS でも葛飾の「葛」って字も正しくは処理出来ないし
そういう観点で見ると、どれが良いとは言えないと思うけど。

43 :nobodyさん:2006/07/24(月) 10:46:24 ID:???
>>41
文字化け率で言えば2バイト目に普通に半角記号コードを含んでいるSJISが最低だろう

44 :nobodyさん:2006/07/24(月) 10:54:24 ID:???
最低っつーか最悪

45 :軟式PHP:2006/07/24(月) 11:46:46 ID:???
今時SJISで書いてるやつなんて稀だろ。
<?php
$a = "ソ";
?>
でもエラーが出てしまう。

46 :nobodyさん:2006/07/24(月) 13:43:46 ID:???
世間ではそろそろ夏休みなので回答者の方々は警戒をお願いします。

47 :nobodyさん:2006/07/24(月) 14:07:33 ID:???
>>39にまかした。>夏厨

48 :nobodyさん:2006/07/24(月) 14:10:11 ID:TyNTrbq3
メールを標準入力で受けて処理してるのですが、どうもexplodeがマッチしないです
\r\n\r\n ではダメでしょうか?宜しくお願いします。

$data = file_get_contents("php://stdin");
list($head, $body) = explode("\r\n\r\n", $data, 2);

49 :nobodyさん:2006/07/24(月) 14:18:19 ID:???
>>48
ちゃんと$dataの内容見た?

50 :nobodyさん:2006/07/24(月) 14:33:08 ID:???
$dataの内容見ても連続改行になってるだけなので・・・

51 :nobodyさん:2006/07/24(月) 14:52:07 ID:Xe10Bw+u
session_destroy関数にてセッションデータを破棄した際に
警告が出るのですが理由がわかりません。

破棄対象のセッションデータのファイル(sess_*)は削除されていました。


> $sess_id = session_id();
> if( !empty( $sess_id ) )
> {
>  session_destroy();
> }

「Warning: session_destroy() [function.session-destroy]: Session object destruction failed in ファイル名 on 行番号」

何か考えられる原因がありませんでしょうか?

52 :nobodyさん:2006/07/24(月) 15:28:03 ID:CYiRB3t9
if(!file_exists("./data/log".$g_number.".cgi")){
if($fp = fopen("./data/log".$g_number.".cgi","w")){
chmod("./data/log".$g_number.".cgi",0666);
fclose($fp);
}

if($fp = fopen("./data/member".$g_number.".cgi","w")){
chmod("./data/member".$g_number.".cgi",0666);
fclose($fp);
}

}

ファイルがなければファイルを作成し、パーミッションを変更するように作ったのですが、
作成されたファイルの属性を見ても0644になっており、パーミッションが変更されていません。
何か記述の仕方が間違っているのでしょうか?

53 :nobodyさん:2006/07/24(月) 15:29:50 ID:2NxzUp1f
smartyでfile=""中に$array.indexを埋め込みたいのですが
どう書けば良いでしょうか?
{include file="aiueo($array.index)kakikukeko"}
こういう感じです。
よろしくお願いします。

54 :nobodyさん:2006/07/24(月) 15:37:35 ID:???
classの使い方(利点)がいまいち分かりません。
マニュアルでは分かりませんでした。
詳しく説明できる方お願いします。
分かりやすいサイトも大歓迎です。

55 :軟式PHP:2006/07/24(月) 15:49:27 ID:???
>>52
ちょっと確認してないので曖昧だけどfcloseしてからchmodやったほうがいいんでない?
あと、chmodの戻り値もTRUEかFALSEかどっちが返ってきてるか見てみて。


56 :nobodyさん:2006/07/24(月) 15:55:01 ID:CYiRB3t9
>>55
その方法で解決しました。
有難うございます。

57 :nobodyさん:2006/07/24(月) 16:26:14 ID:???
>>54
利点がわからなければ、使わなければいい
別にクラスがないとPHPでスクリプトをかけないわけじゃないし


58 :53:2006/07/24(月) 16:38:35 ID:2NxzUp1f
自己解決しました。

59 :nobodyさん:2006/07/24(月) 17:15:06 ID:???
PCのログイン状況をブラウザで確認できるようなプログラム組みたいのですが・・

ブラウザ上ということでjavascriptかなとは思っているのですが、javasは使ったことがないので
pingに相当する関数など用意されているのかどうか分かりません('A')

ご教授お願いします





60 :17:2006/07/24(月) 17:17:02 ID:Mn5lSOKP
>20,24
レスありがとうございます。
これといった慣習はないのですね。

>33,41
UTF-8 か EUC-JP で。
UTF-8 は preg_* でマルチバイト文字を扱えるのが便利です。

>54
クラスで同じ処理を使い回しすると、コードが短くなります。

61 :nobodyさん:2006/07/24(月) 17:23:41 ID:???
教授〜、出番ですよ〜。
ご教示お願いします。

62 :nobodyさん:2006/07/24(月) 18:24:12 ID:???
>>59
JavaScriptは板違いです。

63 :nobodyさん:2006/07/24(月) 18:40:27 ID:???
>>59
PCのログイン状況とpingというコマンドがいまいち結びつかない
ネットにつながっているマシンを一覧で見たいのか?


64 :51:2006/07/24(月) 18:48:22 ID:???
自己レスです。。。

session_destroy();を@session_destroy();にしたら出なくなりました。。。
理由が解りませんorz

65 :(^ω^):2006/07/24(月) 19:07:11 ID:???
@はエラーを抑制する演算子だから当然

66 :(^ω^):2006/07/24(月) 19:16:43 ID:???
途切れた…


ttp://jp2.php.net/manual/ja/function.session-destroy.php
予想 HTTPヘッダが送信し終わっている

67 :64:2006/07/24(月) 22:52:50 ID:???
>@はエラーを抑制する演算子だから当然
関数を明示してるのかと勘違いしていましたorz

>予想 HTTPヘッダが送信し終わっている
session_startより後、session_destroyより前に、
session_regenerate_id関数でセッションIDを更新していた
のが悪かったようです。。cookieを扱うためと予想。。

セッションID更新は破棄しないときのみ行うように
しないとダメということですね。。もしくはob_startかな。。

ありがとうございました。

68 :nobodyさん:2006/07/25(火) 00:19:02 ID:???
携帯ってrefererありますか?

69 :nobodyさん:2006/07/25(火) 00:55:18 ID:???
あったりなかったり

70 :nobodyさん:2006/07/25(火) 00:59:19 ID:???
>>68
もちろんだよマイハニー。

71 :nobodyさん:2006/07/25(火) 04:55:26 ID:???
>>68
キャリアによる

72 :nobodyさん:2006/07/25(火) 04:57:52 ID:???
>>59
PCのログイン状況って何を指してるんだろ。
自分のサイトのページにアクセスしてる人、とはまた違う?
ひょっとして会社のフロア内でユーザがログインしてるPCの台数が知りたい、とか…?

73 :nobodyさん:2006/07/25(火) 05:32:01 ID:???
>>29
遅くなりましたが真摯に受け止めて頂き幸いです。読み返すとかなり上から口調で申し訳ない。
リア厨がよくも分からないのに叩いているものかと思っておりました。。
俺が指した「セキュリティうんぬん」はSQLインジェクション程度の事です。
ブラウザが落ちるほどの無限ループは予想してなかったですね。

ところで差し支えなければ上級者はどんなプログラム作っているのか教えてください。
俺は送信フォームやらが殆どです。orz

74 :nobodyさん:2006/07/25(火) 06:44:57 ID:???
上級者はPHPなんて使わない
仕事でそういう案件があるから仕方なく使ってるだけ。作るの簡単だしね
どんなの作ってるか見たいならphpの拡張子で検索すればいいやん

75 :nobodyさん:2006/07/25(火) 07:17:06 ID:???
>>74
そうかねぇ。使用言語とスキルはそこまで関係ないと思うけど。
確かに Visual Basic だけしか使えないエンジニアってのは嫌だけど
PHP 使ってる人って、PHP だけしか使えない人ってあまりいないような。
Java や Ruby に比べてって言いたいのは分かるけど
米 Yahoo! が PHP を採用したのもそれなりに理由があるんだし
PHP 使いに上級者はいないってのは、ちょっと言い過ぎかと。

76 :nobodyさん:2006/07/25(火) 07:53:37 ID:???
>>73
俺はコミュニケーションサイト一式かな。
(会員登録、ユーザ間メール、掲示板、携帯からの写メ登録、アフィリエイト処理、各種管理機能、月間集計処理)

77 :nobodyさん:2006/07/25(火) 08:50:45 ID:???
>>48
試しに$dataをそのまま保存してバイナリエディタで見てみれば?
もしくは頭200バイトくらいを1文字単位にord()して出力してみるとか。
いっそ"\r\n\r\n"でなく"\n\n"にして実験してみるとか。

78 :nobodyさん:2006/07/25(火) 08:55:28 ID:???
>>45
それ、internal_encodingの指定をしてないだけじゃ。

79 :軟式PHP:2006/07/25(火) 09:36:47 ID:???
>>78
あれ、そうなん?
mbstring.internal_encoding = SJIS
でもエラーが出るんだが・・・。もし間違いだったらスマソ。

80 :軟式PHP:2006/07/25(火) 09:59:11 ID:???
>>73
某大手通信会社イントラ向けポータルサイト、中規模ECサイト、携帯向けMORPG、出会い系など。
全部PHP。たまにOracle ASやTomcatが最初から鯖に入ってて既存のコンテンツがあり、PHPを新規で入れるのを嫌がられる場合にJavaを使う場合はある。
Perlは本当減ってきた。自作ライブラリもとっくにPerlよりPHPのほうが多くなってしまった。

81 :nobodyさん:2006/07/25(火) 11:11:30 ID:???
PHPを使った会員サイトとかで、フリーメールでの登録を禁止する場合、みんなはどうやってますか?
自分でhotmailだの何だのというフリーアドレスのドメインを
列挙して配列か何かに組み込んでおいて使うのもいいけど、
それだと無数にあるフリーメール・サービスを全部調べて列挙するのって大変だよね。

どっかにフリーメール・サービスのドメイン一覧リストとか落ちてないかな?

82 :nobodyさん:2006/07/25(火) 11:12:14 ID:???
チャットで、現在のメンバーが表示されていますけど、
これはどうやって確認しているのでしょうか?

83 :nobodyさん:2006/07/25(火) 11:12:54 ID:???
>>78>>79
あとmbstring.script_encodingも必要


84 :nobodyさん:2006/07/25(火) 11:15:09 ID:???
>>81
そんな便利なリストがひょっとしたらどっかにあるのかもしれないけど
とりあえず知らないのでドメインデータを自前で登録してる。

85 :nobodyさん:2006/07/25(火) 11:16:48 ID:???
>>82
チャット自体の仕組み次第

86 :nobodyさん:2006/07/25(火) 11:31:13 ID:???
こういうサイトで使われているチャットです
ttp://www13.big.or.jp/~fubuki/

87 :nobodyさん:2006/07/25(火) 11:58:42 ID:???
>>84
やっぱそうか・・・。
フリーメール(特にhotmail)を使ってるヤツってのは、たいてい
「コンピュータに疎い超ド素人」か、
「イタズラや誹謗中傷、その他いろんな悪事を働くキモヲタ」か、
どちらかであることが多い。だから排除したい。

88 :nobodyさん:2006/07/25(火) 12:23:12 ID:E5TbsTHe
人の書いたソース見て勉強中なのですが、関数の定義のところで
function &hoge($id){

}

とかあるんです。変数の参照渡しで&を使うのは知ってるんですが、
関数で&をつかうというのは一体?
ttp://www.php.net/manual/ja/language.functions.php
ここみても関数名の前に&を付けるようなことは何も書いてませんし…。
どういう時に使うのか、&つけると何が便利なのか、どこか載ってる
サイトなどありましたら教えてください。

89 :nobodyさん:2006/07/25(火) 12:24:48 ID:???
>>88
こっちに書いてあるよ
http://www.php.net/manual/ja/functions.returning-values.php

90 :88:2006/07/25(火) 12:29:04 ID:???
>>89
うおおはえええ!ありがとうございます!
リ・・・リファレンス・・・なんじゃそら・・・
じっくり読んで勉強してきます!本当に助かりました!

91 :nobodyさん:2006/07/25(火) 12:31:21 ID:???
参照渡しを知っててリファレンスを知らないって一体…

92 :88:2006/07/25(火) 12:57:01 ID:???
変数の参照渡しは納得できるんすよ。
$a = &$b
$aも$bも同じものをみにいってるのねー、これは分かる。
でも関数で参照・・??
もしやこういうことだろうか。
function &fuga($nya){
$nya++;
return $nya;
}
$wan = fuga($a);

これと、

function fuga($nya){
$nya++;
return $nya;
}
$b = fuga($a);
$wan = &$b;

これは同じことだよみたいな感じ?
こんな程度で給料もらってほんとすいません...

93 :nobodyさん:2006/07/25(火) 13:10:12 ID:???
>>87
おまえメッセンジャー使ってないの?

94 :nobodyさん:2006/07/25(火) 13:11:56 ID:???
87じゃないが、メッセンジャーなんて何に使うの?
PCいじりたての初心者が遊ぶためのものかと思っていた。

95 :nobodyさん:2006/07/25(火) 13:25:52 ID:???
>87じゃないが、メッセンジャーなんて何に使うの?
メッセンジャーだからメッセージをやりとりするのに使うに決まってる。

>PCいじりたての初心者が遊ぶためのものかと思っていた。
素直に便利だと思う人が使う。

96 :軟式PHP:2006/07/25(火) 13:31:28 ID:???
>>83
情報サンクス。
ちょっとやってみたんだが、PHP4.3.2で設定してもscript_encodingが
phpinfoにすら反映されてないようで、うまく動かなかった。
原因を探るのも面倒なのでこの辺でやめとくよー。
色々検索してみたら動きそうな感じではあった。

97 :nobodyさん:2006/07/25(火) 13:45:36 ID:???
自宅で仕事する時とか打ち合わせでメッセンジャー使ってるよ。

98 :nobodyさん:2006/07/25(火) 13:46:38 ID:???
>>87
マジきもい

>だから排除したい。
お前の基準だと、全排除で登録サイトとかサービス立ち上げる必要なくね?

99 :nobodyさん:2006/07/25(火) 13:50:16 ID:???
>>87,94
みたいのをなんちゃって玄人って言うんでしょ

100 :nobodyさん:2006/07/25(火) 13:57:24 ID:???
>>76 >>80
これは下請けですか?それともガッポリ儲けちゃってるんですかね?
どっちにしろボリュームが多いのは精神的にきますね、、

>>94
会社によればメッセ使用する所もありますよ。最近ではSkypeなんかも。

101 :nobodyさん:2006/07/25(火) 14:02:01 ID:???
ファイルのアップロードについて質問なんですが、
スクリプト終了と同時にファイルは削除されてしまうと考えてもいいんでしょうか?
if (is_uploaded_file($_FILES['test']['tmp_name'])) {
print_r($_FILES);
}
else {
echo "error\n";
}
で、表示された$_FILES['test']['tmp_name']の値は[tmp_name] => /tmp/phpHmZfdd

上記のスクリプトを実行して確認してみたところ/tmp/phpHmZfddは存在しませんでした。

102 :軟式PHP:2006/07/25(火) 14:10:03 ID:???
>>97
簡単なやり取りは俺もメッセンジャー経由だなぁ。

>>100
大きな案件は、大抵代理店通るからガッポリまではいかない。
ただうちは恵まれてるほうだから2次受けになる事が多いためそこそこ儲かる。
3次、4次受けとかなると連絡網がゴチャゴチャしてきて儲からないだけではなく仕事もやりづらくなる。

103 :nobodyさん:2006/07/25(火) 14:21:09 ID:???
>>102
俺はバイトなんで詳しくは分からないが俺んとこは恐らくその3次受けしてた。
金もあまり入らずデザインの業者に散々振り回された。しかもデザインの業者が優先だってさ。

104 :nobodyさん:2006/07/25(火) 14:21:22 ID:???
1次とか2次とか下請けではなく自社サービス これ最強
ガッポリ儲けて融通も利きまくり

リスク高いけどな

105 :76:2006/07/25(火) 14:46:55 ID:???
>>100
うちは自社開発ですよ。結構儲かってるらしいよ。正確な額は知らんけどさw
>>94
うちも簡単な打ち合わせや連絡ではメッセンジャー使ってる。
同じ会社の部署と言ってもビル離れてたりするし。
記録性で電話以上メール以下、即時性でメール以上電話以下の場合、だね。
>>96
script_encodingってConfigureで多言語対応の指定してコンパイルしないとダメじゃなかったっけ?

106 :87:2006/07/25(火) 15:52:30 ID:???
>>93 なぜいきなりメッセンジャーの話? フリーメールと関係ある?

>>98 とりあえずお前みたいなキモヲタの排除から始めたい。

>>99 じゃあどうしたら「なんちゃって」じゃなくなるのか、具体的に説明よろしく。

107 :54:2006/07/25(火) 15:56:17 ID:jWaJnsY8
レスありがとうございます。

>分からないならつかわなければいい
ごもっともなんですが、引継ぎでいじらなくてはならないんです。
私みたいなマルデダメオですが、ご指導お願い致します。

108 :nobodyさん:2006/07/25(火) 15:58:21 ID:???
>>86
そんなにメッセンジャーがダメダメいうなら
貴方が作ったメッセンジャー以上のツールうpしてください><

どうせ電卓くらいしか作れないんでしょうけど

109 :nobodyさん:2006/07/25(火) 16:08:16 ID:???
>>106
>>93 なぜいきなりメッセンジャーの話? フリーメールと関係ある?
ってあるけど>>87で特にhotmail使ってる奴はうんぬんかんぬんと言ったからじゃないの?
メッセ使用のほとんどはhotmail使ってるでしょ。たまに違うの見かけるけど。
なのであなたはメッセ使ってる人間をキモヲタ呼ばわりしたと解釈されてるんじゃないかなと。

110 :nobodyさん:2006/07/25(火) 16:19:45 ID:???
初心者ですみませんが、リファレンス読んでも進まない状況です
フォーム認証後に条件処理で、"正"ならグーグルサイト、"負"なら2chにページを飛ばしたいのですが
fopenは「URLを開ける」と説明されていますが、実行してもページは真っ白のままです
どのような関数、スクリプトをチョイスすればいいのでしょうか?

// 認証後の処理
if($userExists[0] ==1){
fopen('http://www.google.co.jp','rb');
}
else{
fopen('http://2ch.net','rb');
}

111 :87:2006/07/25(火) 16:27:48 ID:???
>>110
市ね
switch($userExists[0]) {
 case 1:
  header('Location: http://www.google.co.jp');
  break;
 default :
  header('Location: http://2ch.net');
}

112 :軟式PHP:2006/07/25(火) 16:33:20 ID:???
まぁ、headerでlocation送ったら普通はexitするがな。

113 :87:2006/07/25(火) 16:36:46 ID:???
>>112
おめえさんの「普通」なんか聞いてないから
正しいアルゴリズムで書いてりゃ問題ない

114 :nobodyさん:2006/07/25(火) 16:39:51 ID:???
何この>>87の豹変ぶり('A`)

115 :110:2006/07/25(火) 16:41:48 ID:???
>>111
ありがとう(感涙
愛しています

116 :軟式PHP:2006/07/25(火) 16:42:11 ID:???
>>113
<?php
switch($userExists[0]) {
case 1:
header('Location: http://www.google.co.jp');
break;
default :
header('Location: http://2ch.net');
}

header('Location: http://www.yahoo.co.jp');
?>
さぁ、どこにいくでしょう。
だから「普通」はexitを書く。わかるか?

117 :87:2006/07/25(火) 16:46:56 ID:???
>>116 === 馬鹿

「正しいアルゴリズムで書いてりゃ問題ない」
そんな書き方邪道

118 :110:2006/07/25(火) 16:54:16 ID:???
すみません;;
>>116
exitを書くとすれば最後でいいわけですよね?
こんなわ風に

header('Location: http://2ch.net');
exit;
}

119 :軟式PHP:2006/07/25(火) 16:56:46 ID:???
>>117
邪道というか例なんだけど。そういうバグの危険性があるということ。
バグの危険性があるならexitで終わらせたほうがいいじゃん。

>>118
んだ。あとcase1のheaderの下にもね。

120 :にせ87 = 108:2006/07/25(火) 16:57:04 ID:???
>>110 ===市ね
質問
どんな時に$userExists[0]がdefault以外になるんでしょうか??
その後に書く必要はないだろ

121 :nobodyさん:2006/07/25(火) 17:09:01 ID:???
毒を吐く人に真面目に対応する必要はないと思うが…。>軟式PHP氏
「正しい」と「マナーがよい」は別問題。

彼の言うのは、Location をスクリプトの最後に書けば問題ないという事なのかね。
別段、問題があるわけではないし、exit を付けても良いと思う。
人それぞれで良いじゃないか。

122 :nobodyさん:2006/07/25(火) 17:09:24 ID:???
default以外じゃなくてswitchのあと処理を止めてない、って話じゃ…

123 :nobodyさん:2006/07/25(火) 17:10:46 ID:???
「正しいアルゴリズム」というよりは「動けば正義」って普通は言うけどね。そういう書き方のこと。

124 :nobodyさん:2006/07/25(火) 17:16:08 ID:???
文句を言うのは構わないが、具体的に問題点を列挙して欲しいね。

「正しいアルゴリズムで書いてりゃ問題ない」では、問題点がわからないじゃないか。
ただ不満を言いたいだけなら、荒らしと同義。

125 :nobodyさん:2006/07/25(火) 17:19:45 ID:???
おまんこ

126 :nobodyさん:2006/07/25(火) 17:33:26 ID:???
俺は軟式氏指示
可読性にも繋がるしね

127 :nobodyさん:2006/07/25(火) 17:52:13 ID:???
Locationヘッダ送出後、exitするのは基本中の基本

128 :nobodyさん:2006/07/25(火) 17:53:12 ID:???
その後、一切何も出力しないとしても、exitしておくくらいでよい

129 :nobodyさん:2006/07/25(火) 17:54:19 ID:???
つかマニュアルに書いてあるし・・・

130 :107:2006/07/25(火) 18:02:50 ID:???
あのぉ...

131 :nobodyさん:2006/07/25(火) 18:07:31 ID:???
>>129
このマニュアル人間!

132 :nobodyさん:2006/07/25(火) 18:12:34 ID:???
>54,107,130
>60

133 :107:2006/07/25(火) 18:18:23 ID:???
>>132
もっと詳しく
例とか出して

134 :nobodyさん:2006/07/25(火) 18:20:42 ID:???
>>133
クラスのどこがわからないのかを詳しく。
「全部わからない」丸投げはご遠慮願いたい。
それは、マニュアルを見ないで努力放棄しているのと同じ。

135 :nobodyさん:2006/07/25(火) 18:26:27 ID:???
>54,107,130,107
引継ぎなら仕様書があるでしょ。使い方はそれを読む
中を弄らなければならないという場合でも所詮phpなんだし

まずはソースがあるんだから(=引継ぎ)それを理解して分からないことを質問しれ

ここは家庭教師ちゃうで

136 :nobodyさん:2006/07/25(火) 18:33:58 ID:???
なんか変なのが沸いてたみたいだね

137 :87:2006/07/25(火) 18:49:56 ID:???
>>109 メッセンジャーと言ってもMSN以外にYahooだのスカイプだのたくさんありますが・・・

ちなみに>>111>>113>>117は偽者です。
なぜ俺が騙られたのか意味不明・・・

138 :nobodyさん:2006/07/25(火) 18:52:35 ID:???
>>137
>6 準拠で質問していれば、偽者は排除できたわけですが…。

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄には何も記述しないでください)

139 :107:2006/07/25(火) 18:53:21 ID:???
>>135
先生教えてくださいよ!
classの存在意味が全く分からないんです!

140 :nobodyさん:2006/07/25(火) 18:58:43 ID:???
>139
「ソースを読んで理解して分からないこと」を教えてくださいよ。
107の存在意義が全くわからないんです。

141 :nobodyさん:2006/07/25(火) 19:09:29 ID:???
>>46

142 :nobodyさん:2006/07/25(火) 19:22:25 ID:???
>>122
たぶんツッコんでる方にもそれに気がついてないのがいるっぽい
「軟式PHP」ですら、アヤシイ。

143 :nobodyさん:2006/07/25(火) 19:28:20 ID:???
extract関数が危惧されてますが私的には楽なので未だにしばしば用いてます。
以下のような感じで用いた場合にもリスクを抱え込むことになるのでしょうか?

extract($_REQUEST);
extract($_SERVER);

$Account = date("U");
$RD = fopen("password_files/".$Account.".DAT", "r"); <-重要なデータの格納されたファイルと仮定
echo fpassthru($RD);
fclose($RD);

144 :nobodyさん:2006/07/25(火) 19:41:51 ID:???
>>143
何処で変数の初期化を忘れるかもしれないから、この程度の脆弱性について他人に訊くぐらいなら使わないほうがいい。

145 :nobodyさん:2006/07/25(火) 19:51:43 ID:???
>>143
個人の趣味でやるだけなら使えばいいじゃん
仕事だとソースがスパゲティになることがよくあるから危険

146 :nobodyさん:2006/07/25(火) 19:55:13 ID:???
>>143
リスクもそうだけど、結果的に「変数の初期化をし忘れていないか」という不安を抱え込む。

extractしなければ、変数の初期化をし忘れていたら動作しない。
extract では必要な変数を初期化し忘れていると、extract で初期化されてしまうリスクを背負う。
そういうこと。

147 :nobodyさん:2006/07/25(火) 20:16:57 ID:???
グローバル変数に設定した値って、異なるクライアント同士で共有してみたりしないですよね?
クライアントがアクセスしたhoge.php内だけでのグローバルと見て良いですか?
セッションとかにも絡まないですよね?

148 :nobodyさん:2006/07/25(火) 20:17:45 ID:???
>>147
そんな恐ろしい事態になるなら俺は全て定数にする

149 :nobodyさん:2006/07/25(火) 20:20:36 ID:???
俺はそんな便利なグローバル変数があるなら、DB使うのやめたいサイトがいっぱいある

150 :147:2006/07/25(火) 20:29:41 ID:???
すまん、ありえないとは思ったが、念のため確認ですた。
ありがとん。

151 :nobodyさん:2006/07/25(火) 20:35:57 ID:???
「後からなにか出力しちゃうバグがあるかもしれない、だからexit書いておく」
 動機としては30点。
「ここで処理を終了するからexit」を堂々と書くべし。

むしろ「このページが表示されたらおかしいよ〜ん」と表示するページへの
locationヘッダを最後に入れとくくらいがいい(いや、それはさすがにやりすぎか)。

念のため〜は見えにくいバグを作る原因になりがちだからな。

152 :nobodyさん:2006/07/25(火) 21:55:31 ID:???
>>151
結局この人は何が言いたいの?

153 :nobodyさん:2006/07/25(火) 22:16:53 ID:???
>>151
「悪魔の証明」をご存じですか?

154 :nobodyさん:2006/07/25(火) 22:55:28 ID:???
>>153
「Design by Contract」をご存知か?

155 :153:2006/07/25(火) 23:34:25 ID:???
>>154
知りませんので調べてみましたが、具体的な内容は見つかりませんでした。
ソースはありませんか?

156 :nobodyさん:2006/07/25(火) 23:52:02 ID:???
htmlの中に
<?require('hoge.php')?>
みたいにしてphpを埋め込んで使ってるんですが、
phpを埋め込んだ行のところでどうしても空行が入ってしまって困ってます。

空行ってのはhtmlのソース上で入るんではなくて、
何故かブラウザの表示上で入ってしまうんです。
(XP IE6)

htmlのソースの表示をすると空行などなく変なスペースとかも入ってないのでおかしな話なんですが、
どうしても解決しません。

読み込んでるhoge.phpは単に

<?php

echo <<<EOF

<div class="hoge">テキスト</div>

EOF;

?>

くらいしか書いてません。
同じものをhtmlに直接埋め込んだ形にすると、特に問題なく表示されるのですが…
どなたかアドバイス頂けますでしょうか、よろしくおねがいします。

157 :nobodyさん:2006/07/25(火) 23:59:02 ID:???
>>156
> htmlのソースの表示をすると空行などなく変なスペースとかも入ってないのでおかしな話なんですが、
であれば、PHP の話題じゃないな。

158 :nobodyさん:2006/07/26(水) 00:04:31 ID:???
>>156
br要素があるとか。
スタイルシートの指定とかは? あ、板違いか…

159 :nobodyさん:2006/07/26(水) 00:42:13 ID:???
>>156
そのHTMLを名前をつけて保存する→保存したHTMLをローカルで表示してみる
で、問題が再現するならHTMLやCSSの問題であってPHP関係ないので他所行って。

160 :nobodyさん:2006/07/26(水) 00:49:07 ID:???
ていうかHTML如きもまともに扱えないのにphpなんて(ry

161 :nobodyさん:2006/07/26(水) 00:50:21 ID:???
PHPでクライアントからのHTTPリクエストのボディに入っているPOSTされたデータを直接文字列として取り出すにはどうすればよいですか?

JSPならHttpServletRequestからgetInputStreamで取り出して、という手順で可能なのですが。

162 :nobodyさん:2006/07/26(水) 00:53:09 ID:???
>>156
> 空行ってのはhtmlのソース上で入るんではなくて、
> 何故かブラウザの表示上で入ってしまうんです。
> htmlのソースの表示をすると空行などなく変なスペースとかも入ってないのでおかしな話なんですが、

先に確認したいんだが、「ソースの空行」と「ブラウザ表示上の空行」って違うよな?
ソースに空行があった場合、ブラウザ上では空白のように表示されるわけで見た目は空行にはならない。
話がそこから混乱してるので、症状の説明はもうちょい正確に頼む。

163 :nobodyさん:2006/07/26(水) 01:22:39 ID:+cVLS530
本当にくだらない質問ですみません。
<?php
$word1= "日本語";
$word2 = "English";
$word3 = "日本語English";
print ( $word1 ) . "<br>\n";
print ( $word2 ) . "<br>\n";
print ( $word3 ) . "<br>\n";
print strlen( $word1 ) . "<br>\n";
print strlen( $word2 ) . "<br>\n";
print strlen( $word3 ) . "<br>\n";
print mb_strlen( $word1 ) . "<br>\n";
print mb_strlen( $word2 ) . "<br>\n";
print mb_strlen( $word3 ) . "<br>\n";
?>
このようなスクリプトを書いて、ブラウザで表示したところ
日本語
English
日本語English
6
7
13
5
7
11
と表示されました。
strlen関数のほうは、ちゃんとバイト数を表示しているのですが
mb_strlen関数のほうが、2バイト文字が入っていると計算間違いを起こします。
これは、どのような原因なのでしょうか?
ご存知の方がいらっしゃいましたらご教授お願いします。

164 :nobodyさん:2006/07/26(水) 01:23:48 ID:???
>>161
ttp://www.php.net/manual/ja/wrappers.php.php
> php://input
ってファイルを開けば読める。

他に $HTTP_RAW_POST_DATA って変数もあるんだが、
ttp://jp.php.net/ini.core
これはphp.iniで always_populate_raw_post_data ってのをONにしないと
メモリを余分に食うので標準では使えないようにされてる。

165 :nobodyさん:2006/07/26(水) 01:28:43 ID:???
>>163
mbstringの設定が間違ってるんじゃないの?文字コードを正確に認識できてないんだと思う。
phpinfo() や echo mb_internal_encoding(); で今の文字コードが何になってるか確認してみれば?


166 :nobodyさん:2006/07/26(水) 01:30:03 ID:???
>>162
requireで外部からヒアドキュメントを読み込んだ場合と、
それをそのままhtml内に記述した場合

この二つものがソース上では一緒なのに、なぜか違う結果になる(ブラウザ上で空行が入る)、
というのが問題だったのですが、一応解決?しました。

ネストの親に当たる部分のdiv要素(.hogehoge)もhoge.phpの中身に一緒に書き込んでやると、
問題ない表示が実現しました。

単にネストされてるだけでクラス的には親子関係にないから関係ないと思っていたのですが…。
requireすると読み込みの遅れが生じてCSSの判断にバグでも出るんですかねえ、以下ソースです。
やっぱりCSS噛んだ話でごめんなさい

.hogehoge{
width: 100%;
margin: 0 0 10px 0;
display: inline;
}
.hoge{
float: left;
margin: 0 14px 0 0;
display: inline;
width: 127px;
}

<div class="hogehoge">
 <div class="hoge">
 テキスト
 </div>
</div>

167 :nobodyさん:2006/07/26(水) 01:33:09 ID:???
>>164
なるほど〜!サンクス!

168 :nobodyさん:2006/07/26(水) 01:33:59 ID:???
>>166
全体的に hoge だらけで意味不明。
> requireすると読み込みの遅れが生じてCSSの判断にバグでも出るんですかねえ、以下ソースです。
読み込み遅れ(って言い方も変だが)で問題とかあり得ない。

169 :nobodyさん:2006/07/26(水) 01:34:57 ID:???
>>166
> requireすると読み込みの遅れが生じて
読み込みしてるのはApacheであってブラウザじゃない。
CSSの解釈はブラウザが行っている。
よってCSS解釈のタイミングでは遅延は一切発生していない。原因はまた別にある。

170 :nobodyさん:2006/07/26(水) 01:44:20 ID:???
>>166
んーと?つまり、「テキスト」に対して
class=hogehogeが適用されると「テキスト」の下に空行が出て、
class=hogeが適用されてる場合は空行は出ない、ってことなんだな?

<html>
<style type="text/css">
.hogehoge{
width: 100%;
margin: 0 0 10px 0;
display: inline;
}
.hoge{
margin: 0 14px 0 0;
display: inline;
width: 127px;
}
</style>
<body>
aaaaaaaaaaa<br>
<div class="hogehoge">
<div class="hoge">
テキスト
</div>
</div>
aaaaaaaaaaa<br>
</html>

このHTMLをIE6で見たら普通に空行が出てくるぞ。PHP関係ない。
むしろ空行が消える=CSSの指定が一部無視されている、ように思うが?

171 :nobodyさん:2006/07/26(水) 02:00:28 ID:???
>>170
ああ、大事な空行の出る場所を書き忘れてましたね

ちがうんです、requireすると空行が出るのは下ではなく上なんですよ
下に出るのはCSSでマージン取ってるから問題ないんです
その例だとrequireした結果は

aaaaaaaaaaaa

テキスト

aaaaaaaaaaaa

になっちゃうのが困ってるんです

html側
<div class="hogehoge">
<?require='hoge.php'?>
</div>

hoge.php側
<?
echo <<< EOF
<div class="hoge">
テキスト
</div>
EOF;
?>

172 :nobodyさん:2006/07/26(水) 02:03:06 ID:???
>>171
小出しにしないで再現するスクリプト提示したら?
CSS の定義はどこよ?

173 :nobodyさん:2006/07/26(水) 02:12:38 ID:???
>>172
同階層のbasic.cssですー
headタグ内に書いてますので当然bodyより先読みです
<link rel="stylesheet" href="basic.css" type="text/css" media="all" />

ついでにいうと互換モードで書いてます
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

あとさっきのちょっと間違ってましたね
○ <?require( 'hoge.php' )?>
× <?require='hoge.php'?>

174 :nobodyさん:2006/07/26(水) 02:15:51 ID:???
>>173
結局全部は提示しないのね。
書かない所に原因があるかもしれない訳じゃない?
後出しじゃんけんばっかりやってると、誰も相手しなくなるよ。

175 :nobodyさん:2006/07/26(水) 02:20:53 ID:???
話が噛み合ってない。文章もロクに理解してない。出なおしてきなさい。

176 :nobodyさん:2006/07/26(水) 02:24:33 ID:???
>>173
コピペで同じの作ってみたが再現せんぞ。再現する内容を一式よこせ。

177 :nobodyさん:2006/07/26(水) 02:37:24 ID:???
すいません、jsファイル3つ呼んでcssも二つ呼んでなので
まんま渡すと何がなにやらわからなくなると思うので、
自分なりに絞ってみたんですが、それがよくなかったようですね

もうちょっと条件を絞り込んでから出直してきます
ありがとうございます

178 :nobodyさん:2006/07/26(水) 02:59:01 ID:???
>>177
自分とこで調べるにしても、まず余分なものを除去したもので再現させて
原因となりうるものを絞り込むのはデバッグ手法の常識。

179 :163:2006/07/26(水) 03:13:33 ID:+cVLS530
>>165さんありがとうございます。

mbstringの設定は

mbstring.encoding_translation = On
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0

というような感じになっています。
あまり良くわからないのですが、いろいろ調べて推奨されているもので自分の環境に合うものを選んだつもりです。
いろいろ弄ってはみたのですが状況は変わりません。

文字コードが認識されていないとのことですが
ここの設定で何とかなるものなのでしょうか?


180 :nobodyさん:2006/07/26(水) 03:28:38 ID:???
>>179
当然だが、>>163のソースはEUCで書かれているんだよな?

181 :nobodyさん:2006/07/26(水) 03:31:40 ID:???
ちなみにinternalがEUC-JPのPHPにSJISで書いた>>163のソースを実行させると
物の見事に>>163と同じ結果になったりするわけだが。

とりあえず一言。「意味も分からないまま真似だけするのはやめれ」

182 :nobodyさん:2006/07/26(水) 07:07:37 ID:???
>>163
print mb_strlen( $word1, "sjis") . "<br>\n";
print mb_strlen( $word2, "sjis") . "<br>\n";
print mb_strlen( $word3, "sjis") . "<br>\n";

183 :nobodyさん:2006/07/26(水) 08:16:20 ID:???
?, echo ?ぬ? . ?る? . ?ぽ?
href=?htt?://www.2ch.net?

184 :nobodyさん:2006/07/26(水) 14:37:04 ID:cMjm+LpN
phpぁぷろだの削除パスを暗号化(?)してるのってどんなプログラムですか?

185 :nobodyさん:2006/07/26(水) 15:46:13 ID:???
ソース読めば

186 :nobodyさん:2006/07/26(水) 16:32:43 ID:ZgT+QHaO
破壊タグて他サイト潰してみたいんですがどのようにタグを使えばいいのですか?

187 :nobodyさん:2006/07/26(水) 17:10:12 ID:???
>>186
天才ハッカー登場
http://pc8.2ch.net/test/read.cgi/hp/1137589842/1-5

188 :nobodyさん:2006/07/26(水) 17:10:23 ID:???
>>186
スレ違い

189 :nobodyさん:2006/07/26(水) 17:16:22 ID:???
破壊タグってこんなの?
<div class="comment">
こんにちは!!</div>
</div>

190 :nobodyさん:2006/07/26(水) 17:23:39 ID:???
>>189
ばか!こんなトコに書くな!!素人が真似したらどうする

191 :nobodyさん:2006/07/26(水) 17:53:30 ID:???
<B><FONT SIZE="999" COLOR="RED">
・・・・・・・・・・・掲示板破壊・・・・・・・・・・
</FONT></B>

192 :nobodyさん:2006/07/26(水) 17:58:45 ID:???
>>191
おまい、これはやり過ぎだろw糞ガキが真似したらどうすんだボケ!

193 :nobodyさん:2006/07/26(水) 18:06:18 ID:???
>>190
189じゃないけど、ほとんどの掲示板で無効だから杞憂ではないかと。

194 :nobodyさん:2006/07/26(水) 19:11:42 ID:kip7lvkm
PHPってHTMLと同じところに書くんだよね?
でも訪問者にソース見られてもスクリプトのところは隠れるって凄いね。どうやってんだろ?
俺が書いたら丸見えなんだけど・・・。

195 :nobodyさん:2006/07/26(水) 19:18:56 ID:???
くっ!!!これが夏休みの力か・・・・!

196 :nobodyさん:2006/07/26(水) 20:55:14 ID:???
そうぢゃお

197 :nobodyさん:2006/07/26(水) 21:17:03 ID:???
>>193
・・・・・・それ、マジレスじゃないよね?

198 :193:2006/07/26(水) 21:23:34 ID:???
>>197
ほとんどの掲示板は <>& が実体参照に置き換えられるから、クロスサイトスクリプティングは使えないという認識だけど、見当違いの事を言ってる?

199 :163:2006/07/26(水) 21:54:15 ID:???
>>180,181,182 の方々アドバイスありがとうございました。

いろいろ試してみて、結局はApacheとphpをインストールしなおして同じように設定したら直りました。
(私は、WindowsにApacheを組み込んでいます。)
結局アンインストールしてしまったので、原因が特定できなかったのですが
私が思うに、php.iniの書き換えた情報が適応されていなかったのではないかと思いました。
phpinfo()をみても、表示が変わらなかったので・・

折角アドバイスいただいたのに、結果がこれでごめんなさい(泣
また何かあったらお願いします。

200 :nobodyさん:2006/07/26(水) 21:56:52 ID:???
>>199
PHP.ini書き換えたら、ちゃんとApacheを再起動したか?
じゃないと、反映されないぞ

201 :nobodyさん:2006/07/26(水) 22:54:36 ID:l/6BBPaW
ブラウザから送られて来たデータが、整数かどうか調べるにはどうすれば
良いのでしょうか?

思いついたのは、以下の2つですが、合っていますか?

intval($_POST['id']) してから、is_int する
is_numeric($_POST['id']) する


よろしくお願いします。

202 :nobodyさん:2006/07/26(水) 23:08:32 ID:???
>>201
聞く前に自分で試せ

203 :163:2006/07/26(水) 23:16:04 ID:???
>>200

Apacheを再起動してもダメで
PCも再起動してもダメだったので
再インストールしました。

204 :nobodyさん:2006/07/26(水) 23:24:00 ID:oSPf1yZU
>>156

多分文字コードを 「UTF-8 で ボムを含める」でやってるからだと思う。
AJAXをやると、「UTF-8 で ボムを含める」の文字コードを使用するのが
常識だけど、それやると header 関数も動かなくなるんだよね。
ということで、解決策。

「UTF-8 で ボムを含めない」 に変換して下さい。
(マックだとAJAX動かなくなるけど、この際無視)

205 :nobodyさん:2006/07/26(水) 23:26:03 ID:???
>>198
見当違い以前に、冗談にマジレスしてどーすんだ、って感じ

206 :nobodyさん:2006/07/26(水) 23:39:39 ID:???
ま、昔の人は火星人が攻めてきた〜でパニックになったんだから
勘弁してやれなり。

207 :nobodyさん:2006/07/27(木) 01:53:44 ID:???
PHP4でDOMXMLをつかっているのですが
二つのXMLファイルを読み込んだ後
それぞれのノードを統合してほげほげしたいのですが
配列のように統合する方法はないのでしょうか?

208 :nobodyさん:2006/07/27(木) 01:55:23 ID:???
>>201
普通に考えたらis_numericじゃ?
つか、intvalしちゃったらどんなデータでも整数になっちゃうだろ。チェックの意味ねぇ。
ノーチェックで、何がきてもエラーを出さないようにする対策として使うなら前者。

209 :nobodyさん:2006/07/27(木) 02:22:11 ID:???
>>194
わろすwwww

210 :nobodyさん:2006/07/27(木) 02:32:55 ID:???
なんかもう凄い夏休みな奴らがいるな

211 :nobodyさん:2006/07/27(木) 02:46:08 ID:???
どう見てもわざとだろ・・・

212 :nobodyさん:2006/07/27(木) 03:25:03 ID:J0an5vjc
PHPから別のアプリケーションを起動することってできますか?

環境はwindowsXP、IIS、PHP5です。
今やりたいのはexec()を使って

exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p /h hoge.pdf');

などとして印刷する処理をしたいのです。
でも、これだととまってしまいます。
PHPから外部アプリケーションの起動ができないのかと思い、
試しに

exec("c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe");

とやっても起動しませんでした。(コマンドプロンプトでは起動確認済み)
サーバ側のプログラムは起動しない仕様なんでしょうか?
それとも別のやりかたがあるのでしょうか?


213 :nobodyさん:2006/07/27(木) 04:28:02 ID:???
>>212
IISのユーザ権限とかも影響するかもしれないので何とも言えないが、
PHPからexec()でサーバー上のアクロバットリーダーのプログラム起動や印刷は可能。

> exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" /p /h hoge.pdf');
hoge.pdfもフルパスで指定してみては?

> exec("c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe");
これは
exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"');
と指定しないとパスに空白を含むのでシェルが認識できない。

214 :nobodyさん:2006/07/27(木) 05:14:20 ID:???
>>212
「起動しませんでした」てのは何を確認したの?
実行時のメモリー足りてる?
exec('"・・・・・ hoge.pdf > c:\hoge.txt');
とかしてコマンドの出力を調べてみれば何かわかるかも

215 :nobodyさん:2006/07/27(木) 08:44:29 ID:???
>>212
execに第2第3引数を付けてチェック

216 :nobodyさん:2006/07/27(木) 09:07:25 ID:???
フォーム認証後、指定ページを表示させることができていますが
当たり前のように、指定ページは「直リン」できてしまう状況です

直リンさせないようにするには、どのような方法があるのでしょう?
ぐぐる先生も上手くヒットさせてくれませんでした

IIS6+PHP5+mySQL5です
おながいします

217 :nobodyさん:2006/07/27(木) 09:12:37 ID:???
>>216
認証後、各ページでセッションチェックして、セッションが無いか無効な場合は403を返す

218 :216:2006/07/27(木) 09:16:32 ID:???
>>217
ありがとうございました
session_start()関数を使ってTRYしてみまつ

219 :nobodyさん:2006/07/27(木) 12:10:51 ID:???
質問です
PHPのsessionってどれくらいの期間サーバーに保存されるんですか?
あまり保存期間が長すぎたらサーバーに負担かかる?

220 :nobodyさん:2006/07/27(木) 12:37:44 ID:???
>>219
保存期間はphp.iniで設定できる

221 :nobodyさん:2006/07/27(木) 12:57:56 ID:???
あるディレクトリ以下を圧縮しながらダウンロード、
ということをしたいんですが、
どんな関数使えばいいでしょうか?
zlib とか gz とか色々調べたんですがよくわからないのですorz

222 :212:2006/07/27(木) 12:59:34 ID:J0an5vjc
>>213
>>214
>>215
回答ありがとうございました!

まず>>213さんの
>exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"');
>と指定しないとパスに空白を含むのでシェルが認識できない。
ということだったので

  exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"');

としたところ、ブラウザが「・・・を開いています」のまま動きません。
>>214さんのように

  exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" > hoge.log');

としてみましたが、同じ結果でした。
>>215さん
exec()の第2、第3引数ですね?リファ確認してみます。




223 :nobodyさん:2006/07/27(木) 13:15:03 ID:OicfcVgw
> exec('"c:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" > hoge.log');
>としてみましたが、同じ結果でした。
hoge.logを見てみろって

224 :nobodyさん:2006/07/27(木) 13:59:37 ID:???
>>221
shell_exec() でシェルスクリプトを動かして圧縮
出来上がったファイルに対してリンクをはる


225 :nobodyさん:2006/07/27(木) 18:04:59 ID:02auc3if
正規表現にマッチしたファイルを探すglob()関数について質問します。
「20030710.txt」←のように、数字が8個並ぶ拡張子「.txt」のファイルを探したいのですが

glob('[0-9]{8}\.txt');
↑数字を8回繰り返すこれだとマッチせず、

glob('[0-9]*\.txt');
↑数字を一回以上繰り返すこちらだとマッチします。

数字が8回繰り返す正規表現は[0-9]{8}でいいと思うのですが、glob()関数だと違うのでしょうか。

ちなみに文字列検索ではマッチします
ereg('[0-9]{8}\.txt','20030710.txt');

226 :nobodyさん:2006/07/27(木) 18:21:21 ID:???
>>225
正規表現検索とワイルドカード検索の違い

227 :nobodyさん:2006/07/27(木) 18:21:30 ID:???
grobってたいていシェルパターンマッチじゃないの?
PHPは知らんけど。

228 :nobodyさん:2006/07/27(木) 18:25:04 ID:???
>>225
glob 正規表現
でググってごらん。
違いが分かると思う。

229 :nobodyさん:2006/07/27(木) 18:26:09 ID:???
誰か>>194に答えて・・・orz

230 :nobodyさん:2006/07/27(木) 18:29:06 ID:???
>>194
拡張子はサーバからPHPスクリプトだと認識されてるものか?

231 :nobodyさん:2006/07/27(木) 18:39:23 ID:???
index.php

232 :nobodyさん:2006/07/27(木) 18:41:12 ID:???
>>194
おそらく全員が釣りだと思っていたはず。

<?php
phpinfo();
?>

と書いたファイルにtest.phpという名前をつけて
アップロードしてアクセスしてみて。

233 :nobodyさん:2006/07/27(木) 19:19:40 ID:s2/F2cYJ
ファイルを開いて行を読んでくる処理なんですが、
実在する行より1行多く読んできて、最後が空行になってしまいます。
次のような簡単なソースです。

$fp = fopen("data.txt", "r+");
 if ($fp){
  flock($fp, 2);
  while (!feof($fp)){
   $list[] = fgets($fp);
   $i++;
  }
 }
}

data.txtには3行の記述があり、最後の行もきちんと改行で終わり、
最後に余計な改行などは入っていません。

ところが、 $i が 4となってしまい、$listも、 $list[3]まで作られ、中身は空です。
PHPは前からやっていたんですがこうなったことはないのですが、
いったいどんな原因が考えられますか?

234 :225:2006/07/27(木) 19:23:50 ID:???
>>226
>>227
>>228
どうもありがとう。
解決しました。


235 :nobodyさん:2006/07/27(木) 19:31:44 ID:h5ch3/9D
正規表現で文字検索しているんですが、
下記のような場合、どうすればこちらが意図した通りに処理してくれますか?

$text = '!0! !1! !2!';
$serach = '!([0-9]{1,3})!';
ereg($serach,$text,$key);
foreach($key as $key_arr) {
echo $key . 'ですぅ<br>';
}

0ですぅ
1ですぅ
2ですぅ

こんな感じで表示させたいのですが$keyに0しか入らないみたいなんです。
教えていただけないでしょうか?

236 :nobodyさん:2006/07/27(木) 20:15:19 ID:???
$text = '!0! !1! !2!';
$serach = '!([0-9]{1,3})!';
ereg($serach,$text,$key);
foreach($key as $key_arr) {
echo $key . 'ですぅ<br>';
}

これを

$text = '!0! !1! !2!';
$serach = '!([0-9]{1,3})!';
ereg($serach,$text,$key);
foreach($key as $key_arr) {
echo $key . 'です<br>';
}

こう変える

237 :nobodyさん:2006/07/27(木) 20:45:34 ID:???
>>235
何処から突っ込んだら良いのか

とりあえずserach→searchな。
ereg系関数はpreg系関数と比べて大抵かなり遅いから出来れば使わないように。
foreachなのになんで$key_arr?
なんでforeach内で配列使う?


$text = '!0! !1! !2!';
$serach = '/!(\d{1,3})!/';
preg_match_all($serach, $text, $key_arr);
foreach($key_arr[1] as $key => $value) {
echo $key . 'ですぅ<br>';
}

238 :237:2006/07/27(木) 20:47:10 ID:???
echo $value .'ですぅ<br>';

だな、スマソ

239 :237:2006/07/27(木) 20:48:44 ID:???
痛いな、俺。

$text = '!0! !1! !2!';
$search = '/!(\d{1,3})!/';
preg_match_all($search, $text, $key_arr);
foreach($key_arr[1] as $value)
  echo $value . 'ですぅ<br>';

240 :nobodyさん:2006/07/27(木) 22:51:30 ID:S/uf8GoH
switch構文なんですけど、
function test($a) {
switch ($a) {
case 'a':
return 'あいうえお';
case 'ka':
return 'かきくけこ';
}
}
こう書いても問題ないッスよね?
それとも、
function test($a) {
switch ($a) {
case 'a':
$result = 'あいうえお';
break;
case 'ka':
$result = 'かきくけこ';
}
return $result;
}
と書いた方がよいのでしょうか?

241 :nobodyさん:2006/07/27(木) 23:31:43 ID:???
どっちでもいい。
まあ、caseが2つならif elseifで済ましてしまうが。

個人的には下。returnする前に何か処理が入る必要が出た時のために。notice対策でswitchの前に$return = null;で初期化しておく。

242 :240:2006/07/27(木) 23:46:58 ID:???
>>241
レスサンクス。
やはり下の書き方の方がスマートなのか。

243 :nobodyさん:2006/07/28(金) 00:25:54 ID:???
>>233
最後の行が改行で終わってる場合、3行目を読み込んだ時点ではeof()は立たない。
(EOFを認識する前に、改行を認識した時点でfgets()は制御を戻してしまうため)
さらに4回目のfgets()が動くとEOFを認識し戻り値がFALSEとなり、eof()が立つようになる。
(var_dump()してみれば分かるが、$list[3]は string(0) "" ではなく bool(false) になってるはず)

普通、そういう読み込みループは
  while (($line = fgets($fp)) !== FALSE){
   $list[] = $line;
   $i++;
  }
と書くか
  while (!feof($fp)){
   $line = fgets($fp);
   if($line === FALSE) break;
   $list[] = $line;
   $i++;
  }
のように書く。

PHPは前からやってたって言うけど、それにしちゃ経験浅すぎない?
その辺り、公式マニュアルのfgetsの説明に
ttp://www.php.net/manual/ja/function.fgets.php
> 陥りやすい罠:
> C 言語の fgets の動作に慣れている人は、EOF を返す条件の違いについて 注意する必要があります。
という感じで注意書きがされているよ。

244 :nobodyさん:2006/07/28(金) 00:46:54 ID:???
>>224
全然、圧縮しながら、じゃないですね・・・

245 :nobodyさん:2006/07/28(金) 00:52:33 ID:/hbJS61y
jpegファイルの縦横のサイズを取得するのにどうされています?
EXIFは空なのでここに書いてある情報は使えないものとします。

246 :nobodyさん:2006/07/28(金) 01:18:23 ID:???
>>423
ヒント:夏休み

247 :nobodyさん:2006/07/28(金) 01:24:33 ID:???
>>246
未来レス乙

248 :nobodyさん:2006/07/28(金) 01:28:16 ID:???
>245
ttp://jp.php.net/manual/ja/function.getimagesize.php

249 :245:2006/07/28(金) 01:29:16 ID:???
>>248
ドウモデス( ´∀`)ノシ

250 :nobodyさん:2006/07/28(金) 01:39:36 ID:???
>>249
これに反省したらもっとマニュアルをきちんと読むように。
そんな分かりにくい場所に書いてあるわけじゃないだろう。

251 :245:2006/07/28(金) 01:40:36 ID:???
(;´∀`)ノシ

252 :nobodyさん:2006/07/28(金) 01:51:28 ID:???
顔文字で逃げる癖があるな

253 :nobodyさん:2006/07/28(金) 02:12:26 ID:???
>>221,244
その知識で簡単に使えるものは無いだろうね。

>>222
exec("command -o -p -t", $returndata, $returncode);
var_dump($returndata); var_dump($returncode);
215はこういうこと。ちなみに214のhoge.log=$returndata
とりあえずIISはおいといて、タスクマネージャ見ながらCLIで動かしてみて。

254 :212:2006/07/28(金) 04:22:07 ID:hIe930sx
>>223
>hoge.logを見てみろって

hoge.logをnotepadで開いたところ、ファイルの中身は空っぽでした。
でも、ファイルは作られてます。

>>253
>exec("command -o -p -t", $returndata, $returncode);
>var_dump($returndata); var_dump($returncode);
>215はこういうこと。ちなみに214のhoge.log=$returndata
>とりあえずIISはおいといて、タスクマネージャ見ながらCLIで動かしてみて。

ブラウザ以外でやったことないので不慣れですが、CLIというのをやってみます。
回答ありがとうございました。


今のところ↓みたいなのになります。
CGI Timeout
The specified CGI application exceeded the allowed time for processing.
The server has deleted the process.

255 :nobodyさん:2006/07/28(金) 04:34:49 ID:???
>>254
実はサーバー側でちゃんと起動してたんだがそのままウインドウが出たままになって終了せず、
その終了をずっと待ってたPHPがタイムアウトで終了しただけ、とかいうオチじゃないだろうな。
サーバーマシン側の画面はちゃんと見ているの?
そもそもIISってバックグラウンドのサービスで動かしてるのか?だとするとウインドウアプリケーションって
表示できずに裏で固まってたりするんじゃないのか?

256 :nobodyさん:2006/07/28(金) 04:51:56 ID:???
245 じゃありませんが稀に getimagesize で値を取得できない .jpg があります。
拡張子偽装ファイルとかではなく真の .jpg です。

getimagesize に変わる方法や回避策などありませんでしょうか

環境はPHP Version 5.1.4 GD Version bundled (2.0.28 compatible) です。


257 :nobodyさん:2006/07/28(金) 05:04:30 ID:???
>>256
SOF0 を解析

258 :nobodyさん:2006/07/28(金) 05:08:48 ID:???
自己フォロー。なんぼなんでも GD の getimagesize でも同じことやってるか。
じゃ、基本 DCT 方式じゃない JPEG なのかも。
どういう JPEG ファイルか中身を見てみないと分からん。

259 :nobodyさん:2006/07/28(金) 06:32:58 ID:???
(A)投稿フォーム → (B)内容確認画面 → (C)DBに保存して終了画面表示
上記のような画面遷移で、あるフォームから投稿された内容をDBに保存する前に、表示確認画面を挟むとします。

このとき、(A)で投稿された内容を(B)で表示する場合にはもちろんエスケープして表示するのですが、
(C)に渡すために(B)にhiddenで埋め込んだ内容データはエスケープしなくていいんですよね?

っていうか、エスケープしちゃったら元の内容と違っちゃう(たとえば改行が<BR>に変換されちゃう等)ので
(A)で投稿された生のままhiddenに入れるべきですよね?
それで何かセキュリティ上の問題って起きますでしょうか。

260 :nobodyさん:2006/07/28(金) 06:57:41 ID:???
>>259
エスケープしとかないと途中に"とか入ってた場合にinputタグが壊れるだろう。
セキュリティとか以前の問題だぞそりゃ。

261 :nobodyさん:2006/07/28(金) 07:08:35 ID:???
>>260
あっ、そっか・・・

でもエスケープしちゃったら、元のデータが再現できないですよね?
DBに入れたものを取り出してエスケープして表示するときに、<BR>が二重になっちゃうし・・・

262 :nobodyさん:2006/07/28(金) 07:26:10 ID:???
>>260
ん? 試しにやってみたら壊れないみたいだけど???

263 :nobodyさん:2006/07/28(金) 07:33:18 ID:???
>>261
というか、お前いったいどんなエスケープしてんの?改行が<BR>に変換って何の話だ?

264 :nobodyさん:2006/07/28(金) 07:46:40 ID:???
>>263
htmlspecialchars

265 :nobodyさん:2006/07/28(金) 07:53:04 ID:???
htmlspecialcharsで改行が<BR>に変換されたりはしないだろ。

266 :nobodyさん:2006/07/28(金) 07:59:42 ID:???
DBに入れる前(フォームから投稿された直後)と、
DBから取り出した後(HTMLで表示する直前)、
この2回のタイミングでhtmlspecialcharsをかけると・・・

267 :nobodyさん:2006/07/28(金) 08:00:50 ID:???
>>266
普通だろ?何か問題あるか?

268 :nobodyさん:2006/07/28(金) 08:04:20 ID:???
>>266
なぜ、2回実行する?
一度で十分だと思うが。

269 :nobodyさん:2006/07/28(金) 08:04:27 ID:???
>>266
> DBに入れる前(フォームから投稿された直後)と、
マテ。DBに入れる前に何故htmlspecialcharsなんてかけるか。

フォームから投稿
→確認ページでhiddenにセットするときにhtmlspecialchars
→再投稿(アンエスケープされた状態になる)
→そのままDBに格納

でいいだろが。

270 :nobodyさん:2006/07/28(金) 09:56:54 ID:???
>>259
投稿内容をhiddenに埋め込むなよ
ローカルからでも他サーバからでも勝手に自由なデータを投稿されるぞ

271 :nobodyさん:2006/07/28(金) 09:59:52 ID:???
>>243
なるほど。ありがとうございます。
ちなみにC言語はやったことがないので、違いを認識することはできません。

そのページの著者の予定では、C言語をやったことがない人は罠には引っかからないはずなんだけど、
fgetsのマニュアルのページで、4096バイトずつとりだすやり方のみ例文となっており、
Lengthを指定しない形での例がないことから、
そのままそこに載っているバイト指定で取り出すルーチンを使ってしまうという結果になってました。

これはC言語をやったこがある人ならば、その注意書きにより気づくかもしれませんが、
やったことがない人は何の疑問も抱かずその例1のルーチンをそのまま使う罠にはまりやすいと思います。

272 :nobodyさん:2006/07/28(金) 10:09:38 ID:???
>>271
オマエだけ
他人のルーチンを理解せずそのまま使う方が悪い
普通はどういう処理をしてるか理解して、自分が望む処理でない場合は修正してから使うもんだ

273 :nobodyさん:2006/07/28(金) 10:42:36 ID:???
>>270
そんなことはないだろ

274 :nobodyさん:2006/07/28(金) 10:49:50 ID:???
>>270
Yahooでもhiddenで持たせてるんだが、キミはどうやって埋め込んでるんだ?
全部セッションとか?w

275 :nobodyさん:2006/07/28(金) 10:50:41 ID:???
Webページの構成は フレーム分割をしており、上と下の2段構成です

上のページは「フォーム認証」画面
認証後、下のページに「正」ならA.html、「誤」ならB.html

と表示させたいのですが、上手くいきません
PerlではWindow-taegetなる関数があるのでPHPでやってみたのですが無駄でした
どのような方法がありますでしょうか?おながいしまつ

//現状のソース
switch($userExists[0]) {
case 1:
 $_SESSION['username'] = $username;
  header('Location: MAIN.html Window-target:right');
   break;
   default:
  header('Location: ERROR.html Window-target:right');
}

276 :nobodyさん:2006/07/28(金) 10:56:13 ID:???
>>270
確認画面のhiddenで勝手な投稿がされてしまうんなら、
元々の投稿フォームだって勝手な投稿ができちゃうってば。
内部データを外に出してるわけじゃないんだよ?

277 :nobodyさん:2006/07/28(金) 11:04:25 ID:???
>>274
わかった、きっと仮投稿段階ですでにDB上にデータを置いてだな、
それを認証する形なんじゃないか?
で、一定時間を過ぎて認証がなされなかった仮投稿データは破棄される…と。
マンドクセー

278 :nobodyさん:2006/07/28(金) 11:06:51 ID:???
>>271
> fgetsのマニュアルのページで、4096バイトずつとりだすやり方のみ例文となっており、
> Lengthを指定しない形での例がないことから、
君は大きな思い違いをしている。
今回の問題はEOFの認識の問題であってLengthなんて「全く」関係ない。

> これはC言語をやったこがある人ならば、その注意書きにより気づくかもしれませんが、
C言語とか関係なく、例では無条件に全ての結果をechoで表示してる(これは最後に空行を出力する)を、
君が何の疑問も抱かずにそのまま配列に格納するよう改造してしまっただけの話。
単に、君が関数の説明文の意味を理解できてないだけ。
自分で解釈せず、何でもコピペで済ますからそうなる。

マニュアルの例文は、実際に実行してみればファイルに存在しない空の1行を出力するので、
EOFの扱いとfgetsの挙動について理解しやすいものとなっている。
それを実際に試しもしないで使う方が悪い。

279 :nobodyさん:2006/07/28(金) 11:18:33 ID:???
>>275
> PerlではWindow-taegetなる関数がある
そんな関数は無いよ。Window-targetってのはHTTPヘッダの1種。
header('Location: MAIN.html');
header('Window-target: right');
という風にすれば使える。
でもこれIEでも使えるんだっけ?Netscape独自拡張だと思ってたけど。

> どのような方法がありますでしょうか?おながいしまつ
上のフォームで<form action="〜" target="right">と指定するだけ。

280 :nobodyさん:2006/07/28(金) 11:23:24 ID:???
>>271
>>233のソースではfgetsでバイト指定してない件について

281 :nobodyさん:2006/07/28(金) 11:23:45 ID:???
>>279
できました!!
非常に簡潔な文面、感謝です

282 :nobodyさん:2006/07/28(金) 12:19:19 ID:???
>>278
まあいままでファイル全部を書き直す場合があるのは、
任意行の削除と、任意行のデータ変更のみで、
この場合、配列の最後にstring評価した場合の空文字が入っていても、
echo ""; が実行され、ファイルには何の影響も与えず、
結果的にまったく動作に問題なかったため気づきませんでした。

283 :nobodyさん:2006/07/28(金) 12:41:41 ID:???
ウオおオオマニュアルに繋がらねぇぇっぇぇ

284 :nobodyさん:2006/07/28(金) 12:50:34 ID:???
>>282
なかなか大した量の経験ですね。

285 :235:2006/07/28(金) 13:03:50 ID:brf1+TV+
>>237さん
ありがとうございます。
無事、意図した動作をするようになりました。
経験豊富な貴方みたいな方に教わりたかた

286 :nobodyさん:2006/07/28(金) 13:06:06 ID:???
ttp://jp.php.net/manual/ja/
こっちはつながるよ

287 :nobodyさん:2006/07/28(金) 13:10:00 ID:???
>>286
サンクス

288 :nobodyさん:2006/07/28(金) 14:17:00 ID:???
>>269
> →再投稿(アンエスケープされた状態になる)

えっっっ!!!!???? ・・・そうなの!?
エスケープされた状態のデータをhiddenで埋め込んで再POSTすると
アンエスケープされるなんて、初耳だぞ。
そんなのマニュアルに載ってたっけ??(もしかしてPHPじゃなくてHTTPの話かな?)

289 :nobodyさん:2006/07/28(金) 14:33:44 ID:???
>>283
最新のマニュアルを公式で落としてパッチ当てとけ。

290 :nobodyさん:2006/07/28(金) 15:02:53 ID:???
>>276
少なくとも自動書き込みには対応できるよ

291 :nobodyさん:2006/07/28(金) 15:08:06 ID:???
>>290
出来ない。

hiddenのほうから直接やればいいんだし。
ワンタイムチケットとかRefererチェックやれば対応できるがどちらも一長一短

292 :nobodyさん:2006/07/28(金) 15:12:10 ID:???
自前でアクセス解析作ろうと思うんですが
ログの保存はファイルに書くのとMySQLに入れるのどちらが負荷小さいですか?

293 :nobodyさん:2006/07/28(金) 15:14:17 ID:???
>>292
アクセスログを全て記録しっぱなしでランダムアクセスするならデータベースのが有利だな。
100件とか1000件で固定するならファイルで充分

294 :nobodyさん:2006/07/28(金) 15:23:15 ID:???
入れるだけならファイルが一番負荷小さいだろう

295 :nobodyさん:2006/07/28(金) 15:36:37 ID:???
アクセス解析ならせめて1か月分ぐらいのログは保持したいだろうし
データベースの方がいいんじゃないか。

296 :nobodyさん:2006/07/28(金) 16:38:07 ID:???
あの。ローカルサーバーでメールを配信したりしたいのですが、
どのような設定が必要なんでしょうか。。。?

297 :nobodyさん:2006/07/28(金) 16:40:22 ID:???
$temp_file = md5_file($temp_file);

$temp_file はテンポラリに入っています。書き出す前です。
この様な段階でme5_file する事は無理なのでしょうか?

現在は move_uploaded_file chmod で一度書き出し me5_file した後 unlink で消しています。
この様な面倒な方法以外の方法があればご教示ください。

298 :nobodyさん:2006/07/28(金) 16:53:52 ID:???
>>296
OSは何か言えよ

299 :nobodyさん:2006/07/28(金) 17:17:42 ID:???
>>298
WindowsXPです。

300 :nobodyさん:2006/07/28(金) 17:19:05 ID:???
>>299
まずはググって参考になるサイトでも探した方が有益

301 :nobodyさん:2006/07/28(金) 19:32:50 ID:qH9kRSG5
やりたい事は、セカンドメールサービスのようなもので、
登録したユーザー同士でセカンドメールを与えるという物です。

user_a@hotmail.comにid_a@mydomain.com
user_b@hogehoge.comにid_b@mydomain.comを与え、

user_a@hotmail.comからid_b@mydomain.com宛てに送られたメールを
From: id_a@mydomain.comとして、user_b@hogehoge.comに送るような感じです。
1対1のメーリングリストのようなイメージです。

環境は、mod-perl+MySQL+qmail+vpopmailで、vpopmailのユーザー管理はMySQLにしています。

現在はSubjectに送りたい方のidを入力してもらって、recept@mydomain.comを窓口にして転送してます。
パイプでperlに標準入力としてメールを渡し処理しています。

もっと直感的なシステムを作りたく、ご相談します。
こういう場合、各ID毎のメールアカウントを作る必要はないのでしょうか?


302 :301:2006/07/28(金) 19:33:57 ID:qH9kRSG5
スレ違いでした。すいません。<(_ _)>

303 :nobodyさん:2006/07/28(金) 20:27:58 ID:???
掲示板みたいに投稿してもらうシステムで、
投稿内容に半角英数字で途切れない長い一文(たとえば長いURLなど)があると、
それをテーブルで表示したときにピクセル指定してあるテーブルの幅で自動改行されずに
どこまでも延びていってしまい、レイアウトが崩れます。

英数字だけならchunk_splitやwordwrap関数で対処できるのですが、
日本語も混じっている文章の場合だと、それらの関数では文字化けしてしまいます。
この場合どうやって一行の長さを制御すれば良いのでしょうか?

304 :nobodyさん:2006/07/28(金) 20:37:06 ID:???
>>303
どの程度のレベルでやりたいのかは知らないけど、
一文字づつ走査していきつつ、
半角か?全角か?
半角から全角に(全角から半角に)文字が変わったか?
スペース(全角含む)か?
を調べ、文字列に追加していけばいいんじゃない?

305 :nobodyさん:2006/07/28(金) 20:51:29 ID:???
<?php
 フォルダからファイル名と数の取得
 ファイル数が0ならこれより下の処理を行わない
 ファイルの処理
?>

このような順番で処理を行いたいのですが、


if(!ファイル数==0){
ファイルの処理
}

でもいいと思うのですが、

”ファイル数が0ならこれより下の処理を行わない”
ここはどんな命令を書けばいいでしょうか?

関数内ではないのでreturnはつかえないですし、
caseでもないのでbreak文もつかえないみたいです。


306 :nobodyさん:2006/07/28(金) 20:52:09 ID:???
>>304
え〜、そこまで回りくどい方法でやらないと実現できないのかな?
逆にPHPで解決するんじゃなくて、HTMLやCSSのレベルで解決できないもんかな。

ミクシィの日記とかはしっかりテーブルの幅で英数字が自動改行されるけど、
あれはどうやって実現してるのだろうか・・・。

307 :nobodyさん:2006/07/28(金) 20:56:34 ID:???
>>306
みくしのがhtmlやcssならソースみればわかるんじゃない?

308 :nobodyさん:2006/07/28(金) 20:58:22 ID:???
>>305
そこでスクリプトが終わりでいいなら、
if(ファイル数==0){
Exit;
}

309 :nobodyさん:2006/07/28(金) 20:59:49 ID:???
>>308
ありgと

310 :nobodyさん:2006/07/28(金) 21:00:35 ID:???
exit;
だった。

311 :306:2006/07/28(金) 21:04:51 ID:???
自己解決しますた。

td { word-break : break-all; }

312 :nobodyさん:2006/07/28(金) 21:06:19 ID:???
>>311
俺もそれ使わせてもらうぜ

313 :nobodyさん:2006/07/28(金) 21:44:50 ID:???
>>311
なるほど!
おまい・・・じゃないか、mixiて頭いいな!

314 :nobodyさん:2006/07/28(金) 22:08:46 ID:???
>>313
別にmixiが考えたわけじゃないけどな。
「word-break」でググってみるべし。

315 :nobodyさん:2006/07/28(金) 22:13:44 ID:???
>>300
すみません、探しているのですが何をすればよいのか

316 :nobodyさん:2006/07/28(金) 22:21:20 ID:???
>>315
まずさ、PHPでメールを送信ってことになると、メールサーバに送信を依頼するわけだ。
という事はまずメールサーバをたてなきゃならない。
でも、ここはPHPスレだ。分かるな?

まぁ、とりあえずメールサーバをたてる説明が載ってる簡単な解説本買ってきたほうが良いんじゃないか?

317 :nobodyさん:2006/07/28(金) 22:25:10 ID:???
メール→メールサーバー→他のアドレスにメールが届く

という仕組みなんですか?

318 :nobodyさん:2006/07/28(金) 22:29:42 ID:???
あ!つまり、Outlookと同じ設定すればよいのですね!

319 :nobodyさん:2006/07/28(金) 22:32:20 ID:???
>>318
一行なので斜め読みが出来ませんが・・・

320 :nobodyさん:2006/07/28(金) 22:35:41 ID:???
>>317
つまり、メールサーバーのヘルプを読まなきゃいけない。分かるな?

321 :nobodyさん:2006/07/28(金) 22:47:26 ID:???
>>320
メールサーバーはYahooでも良いのでしょうか?

322 :nobodyさん:2006/07/28(金) 22:51:07 ID:???
; For Win32 only.
SMTP = smtp.mail.yahoo.co.jp
smtp_port = 25

; For Win32 only.
sendmail_from = *****@yahoo.co.jp

とすると、

SMTP server response: 521 smtp.mail.yahoo.co.jp closing transmission channel. You must be pop-authenticated before you can use this smtp server,
and you must use your yahoo mail address for the Sender/From field. in

と返ってきました。Yahooじゃだめなんですね・・・。

323 :nobodyさん:2006/07/28(金) 23:30:55 ID:???
2chと同じトリップの出し方はどうすれば良いですか?

324 :nobodyさん:2006/07/28(金) 23:31:57 ID:???
>>321
つまり、メールサーバでぐぐらなきゃいけない。分かるな?

あなたは根本的に調べる努力が足りない。
節度ある人なら、調べてから質問するものだ。

325 :nobodyさん:2006/07/28(金) 23:37:29 ID:???
>>323
これでも参考にしろ:
http://pc8.2ch.net/test/read.cgi/php/1017456911/647-659

326 :(^ω^):2006/07/29(土) 00:06:35 ID:???
>>322
エラーメッセージの1行目は
http://e-words.jp/w/POP20before20SMTP.html
を参照

327 :nobodyさん:2006/07/29(土) 00:54:29 ID:o/NOOu9z
http://example.com/index.php
ここに、<A href="sample.php">で、
http://example.com/sample.phpへのリンクが貼られますけど、

http://example.com/index.php/hogehoge/
ここに、<A href="sample.php">で、
http://example.com/index.php/sample.phpになってしまいます。

どちらからアクセスしても、
http://example.com/sample.phpへのリンクを貼ることはできないのでしょうか?

また、http://example.com/http://abc.example.com/http://test.example.com/に変わったりを
すること前提でお願いします。(相対パス)

328 :nobodyさん:2006/07/29(土) 00:55:54 ID:???
ンアー ンアー

329 :nobodyさん:2006/07/29(土) 00:57:30 ID:???
>>327
どこにphpが関係するのでしょうか?

330 :nobodyさん:2006/07/29(土) 00:58:33 ID:o/NOOu9z
>>329
<? $_SERVER['PHP_SELF'];?>を使ったり、似たような感じで

331 :nobodyさん:2006/07/29(土) 01:00:58 ID:???
hinto
/

332 :84:2006/07/29(土) 01:04:06 ID:3hlZJo6T
おしえてください。PHPの初心者ですが、phpからIBM-DB2のデータベース
を使ってwebプログラムを作りたいのですが、設定の方法がわかりません。
WindowsXPProSP2,Apache2,php5.1,を使っています。php.iniとhttp.confを
いじるのでしょうか?その手のsiteの情報でもかまいません。お願いします。

333 :nobodyさん:2006/07/29(土) 01:05:53 ID:???
>>332
PHP DB2 でググってから来た?

334 :nobodyさん:2006/07/29(土) 01:13:23 ID:???
何事にもググれググれいうやつ多すぎ
ググって参考になるサイトがなかったから書き込みしてるんだろ


335 :nobodyさん:2006/07/29(土) 01:15:18 ID:3fQzY82m
.txt内で変数指定してそのままphpに持ち込むことってできる?

336 :nobodyさん:2006/07/29(土) 01:16:11 ID:???
>>334
ググり方が悪い

337 :nobodyさん:2006/07/29(土) 01:20:50 ID:???
俺は2chで質問なんかしたことなんか一度も無いけどね
PEARとか文献少なくて苦労したけど、ソース読めば分かるしね

338 :nobodyさん:2006/07/29(土) 01:20:59 ID:???
>>334
はぁ? ググったら DB2 知らん俺にもすぐ出来そうだったぞ。
ググって分かりそうだからググれって書いたまでだ。
情報検索能力を磨け。

339 :nobodyさん:2006/07/29(土) 01:33:10 ID:???
>>337
要するにソース読むのがしんどい時に訊くんだろ

340 :nobodyさん:2006/07/29(土) 02:30:05 ID:???
他人にその労力を押し付けてんじゃねぇ

341 :nobodyさん:2006/07/29(土) 02:49:30 ID:???
>>340
ここはそういうスレだからなぁ。
押し付けられるのがイヤなこのスレに来るんじゃねぇ。

>>332
初心者がどうしてわざわざDB2? 素直にMySQL使いなさい。

342 :nobodyさん:2006/07/29(土) 03:05:59 ID:br9tPqMJ
おれがググレカスと言う時は、明らかにググってないような質問の時だ。
最近特にそんなのが多いな。

343 :nobodyさん:2006/07/29(土) 03:12:17 ID:???
>>342
まあ別にいいじゃん。
初心者はググり方が分からない、または良いググり方を考えるのがめんどくさい時もある。
そんなときの質問スレ。
答えるのは義務じゃないんだから、イヤだったらスルーしれ。

344 :nobodyさん:2006/07/29(土) 03:25:10 ID:???
確かにそうだな〜
くだ質なんだし、マッタリ行こうぜ

ただ、PHPとかじゃなくてプログラミングの仕方が分からないってのはどうしたものかな?

345 :nobodyさん:2006/07/29(土) 03:39:28 ID:???
あとPHP以前にサーバーってなに?通信ってどういう仕組みでやってんの?レベルってのも
どうしたもんか悩んでしまうな。

>>317とか。

346 :nobodyさん:2006/07/29(土) 03:42:39 ID:???
>>288
こんなのもな。PHP以前にHTTPレベルの話。

347 :nobodyさん:2006/07/29(土) 06:59:35 ID:???
>>346
別に「以前」でも「以後」でもないと思うが。
ただ単に種類が違う話なだけで。

そしてWebアプリではHTTPやサーバ周り等も密接に関連するので、このスレで質問してOK。
厳密にPHP以外の話題が来るとすぐに「スレ違い」とか言うヤツはウザい。というか考え方が間違っている。
イヤなら見なけりゃいいのに。

348 :nobodyさん:2006/07/29(土) 07:09:50 ID:???
おk、俺がまとめておく。

ここはPHPスレです。Webアプリ全般や、HTTP等プロトコルレベルの話題はそれらのスレへどうぞ。

ってことだな。


349 :nobodyさん:2006/07/29(土) 10:01:24 ID:???
自作のログファイルは
どうやって作るのでしょうか?

画面に表示させないで
実行結果だけをファイルに出力する方法?

350 :nobodyさん:2006/07/29(土) 10:07:23 ID:???
>>349
デスクトップの何もない部分を右クリックして、
新規作成 → テキスト ドキュメント
を選び、出来たファイルの名前を log.txt にする。

351 :nobodyさん:2006/07/29(土) 10:32:49 ID:???
>>344
PHPどころか、基礎の基礎をすっとばして、いきなり *実用* しようとしている人が増えてきているからじゃないの?

352 :nobodyさん:2006/07/29(土) 11:04:36 ID:???
>>350
ありがとうございます。できました。

353 :nobodyさん:2006/07/29(土) 13:28:30 ID:???
確かに初心者だからこそマニュアルには目を通すべきだな。
最近の人ってマニュアル呼んでないのかな?

354 :327:2006/07/29(土) 13:40:04 ID:o/NOOu9z
echo "<A href=\"".str_repeat("../",substr_count($_SERVER['PHP_SELF'],"/")-2)."log.txt\">リンク</A>";

で解決しました。

355 :nobodyさん:2006/07/29(土) 13:47:31 ID:???
>>354
随分面倒くさい解決方法を選んだな

356 :327:2006/07/29(土) 13:48:40 ID:o/NOOu9z
>>355
何かもっと良い解決法があるのでしょうか?

357 :nobodyさん:2006/07/29(土) 13:55:43 ID:???
>>356
echo "<A href=\"/log.txt\">リンク</A>";

358 :327:2006/07/29(土) 14:01:05 ID:o/NOOu9z
>>357
試してみましたが、どの階層から飛んでも
http://localhost/log.txtに固定されてしまいます。

359 :nobodyさん:2006/07/29(土) 14:08:41 ID:???
>>358
しかしお前はアホだな。

360 :nobodyさん:2006/07/29(土) 14:14:28 ID:???
>>358
>>327ってそういうことじゃないのか??

361 :327:2006/07/29(土) 15:03:05 ID:o/NOOu9z
>>360
http://localhost/test/test.php
ここにリンクが貼ってあり、
http://localhost/test/test.php/a/i/u/e/o/
http://localhost/test/test.php/hogehoge/hogehoge/
http://localhost/test/test.php/012/3456789/

どれから飛んでも

http://localhost/test/log.txt

に飛ぶような感じです

362 :nobodyさん:2006/07/29(土) 15:04:11 ID:???
>>361
お前はしね!

363 :nobodyさん:2006/07/29(土) 15:13:59 ID:???
夏だなぁ

364 :nobodyさん:2006/07/29(土) 15:26:42 ID:???
>>348みたいなキモヲタは氏ね!!
この手のバカは、W3CとかGPLとかでも厳密さを求めて大騒ぎするタイプだな。
あ〜〜〜〜〜キモっっっ!!!!!!! こういう宗教の狂信者は氏んだらいいんだよ。

正しくは↓
ここはPHPスレです。Webアプリ全般や、HTTP等プロトコルレベル、データベース、サーバー関係の話題も絡めてどうぞ。

365 :nobodyさん:2006/07/29(土) 15:28:44 ID:???
>>362,364
おまえも十分キモイわけだが

366 :nobodyさん:2006/07/29(土) 15:36:32 ID:???
perl厨だった俺が、(仕事で)phpをやりはじめて数ヶ月…。

で、本スレどこよ?
"php" でこの板を検索するとメッサ出てくるんだが…

あと、クライアントの都合で Windows 環境でも動作するもの作るときあるんだけど、
http://www.php.net/download-docs.php ここにある、chm の文字化けなんとかならんのか?
以前、php-docs ML に話題に上っていたけど…。

あとさぁ…配列で戻り値返す関数、こういう使い方できないのね
$child = hoge( $sexmachine )[ 'oral' ]

仕事上、perl <---> php を行ったり来たりするから、混乱してかなわん

367 :nobodyさん:2006/07/29(土) 15:37:16 ID:???
普通に両方使ってるが問題ない。

368 :nobodyさん:2006/07/29(土) 15:38:37 ID:???
まともな質問以外スルーしようぜ
あと、sageでID非表示のヤツとかトリップ付けてないとかで本人確認ができない質問もスルーな
それと駄弁るのはスレ違い

369 :nobodyさん:2006/07/29(土) 15:39:30 ID:???
>>368 をスルー

370 :nobodyさん:2006/07/29(土) 16:03:49 ID:???
>>369
俺もそうオモタ

とにかく「スレ違い」とか言い出すバカは軒並みスルーしよう。

371 :nobodyさん:2006/07/29(土) 16:09:19 ID:???
・ググれ
・スレ違い

上記のことを言い出す人はスルーで

372 :nobodyさん:2006/07/29(土) 16:27:05 ID:???
回答者をスルーとかアホ過ぎる事やってる暇があるなら正しい解答を。

373 :nobodyさん:2006/07/29(土) 16:29:24 ID:???
スクリプトとして実行するとき
エラーを画面に表示させない方法を教えてください。

374 :nobodyさん:2006/07/29(土) 16:29:47 ID:???
どのみち、 >>361 まできてまだわからないようじゃ、
めがねを頭の上にかけておきながらメガネがないないと探しているようなもんだから
これ以上アドバイスはない。

375 :nobodyさん:2006/07/29(土) 16:32:24 ID:???
>>371
甘やかしすぎ

376 :nobodyさん:2006/07/29(土) 16:32:39 ID:???
>>373
php.iniで設定できる。

377 :nobodyさん:2006/07/29(土) 16:32:56 ID:???
質問者を甘やかしすぎるなって意味な

378 :nobodyさん:2006/07/29(土) 16:38:32 ID:???
>>373
そんなものはありません。

379 :nobodyさん:2006/07/29(土) 16:51:01 ID:???
>>378
嘘はイクナイ。

380 :nobodyさん:2006/07/29(土) 17:03:41 ID:???
>>379
だって質問が釣りだろ

381 :nobodyさん:2006/07/29(土) 17:05:36 ID:???
>スクリプトとして実行するとき
>エラーを画面に表示させない方法を教えてください。

まずこの「スクリプトとして実行する」という言い回し。ただものではない。
次に、普通、このレベルの質問をする浅いユーザーであれば、
「エラーを画面に表示させない方法ってありますか?」となるのが普通。
>>373 は、「エラーを画面に表示させない方法」がすでにあることを知っているかのような
書き方をしている。

よって釣り。

382 :nobodyさん:2006/07/29(土) 17:12:58 ID:???
正規表現スレって落ちたの?
正規表現の質問する場所が無くなった

383 :nobodyさん:2006/07/29(土) 17:25:27 ID:GIw5gWJk
jpgならjpgを表示、htmlならhtmlを表示、zipならzipをダウンロードしてそのファイル元URLは隠したいのですが、そういうことはできますか?
readfile()でやってみたら画像が表示されなくて…

384 :nobodyさん:2006/07/29(土) 17:26:07 ID:???
>>381
そうかあ?

その言い回しはむしろ素人臭く感じるし、エラーを画面に表示させない方法というのは

1.貰ってきたスクリプトが
2.配布元では問題ないのに
3.自分が動かすとエラーで埋まる!
4.スクリプトは同じはずだから、何かエラーを消す方法があるに違いない

という行程で普通に成り立つと思うんだが。
エラーを表示させない方法があるのは知っていてもやり方を知らない人は皆フィッシャーでつか。


385 :nobodyさん:2006/07/29(土) 17:31:03 ID:???
>>384
3→4の流れがおかしくないか?

>3.自分が動かすとエラーで埋まる!

となったら、どこにエラーの原因があるんだろう、と思うのが普通で、
エラー文を表示させなくしようなどとはおもわんだろ

386 :nobodyさん:2006/07/29(土) 17:45:27 ID:???
ヴァカばっかりだな…。
php関連スレってこんなのばっかりだな。ちっとも、役に立たない
よくもまぁ、飽きずに25まで伸びたもんだな

387 :nobodyさん:2006/07/29(土) 17:46:22 ID:???
>>385
いやあ、確かに俺らみたいに多少なりともかじった人間ならそう考えるだろうけどさ、

スクリプトは同じはず→全く同じ挙動を示すはず→配布元にもエラーが出なくてはおかしい!
でも出ない→なんか方法が!?

とか

膨大なエラー表示が出るが動作自体は問題ないようだ→表示だけ切るのが手っ取り早い!

とかいう思考もあるかなーと。某レッツPHPの配布物の見過ぎかな。

388 :nobodyさん:2006/07/29(土) 17:53:17 ID:???
来たるべき>>386の神解答に全世界が注目。

389 :nobodyさん:2006/07/29(土) 18:22:22 ID:HWlPmC1p
>>383
header("Content-Type: image/jpg");
header("Content-Type: text/html");

zipは定義されてたか?
なければ、たぶんオクテットストリームとかそんなやつ


390 :nobodyさん:2006/07/29(土) 18:47:45 ID:???
>>361
>>327と飛び先違うじゃん。
つか、そのくらい
echo "<A href=\"/log.txt\">リンク</A>";

echo "<A href=\"/test/log.txt\">リンク</A>";
にするだけだと何で気付かない???

それとも、ここのディレクトリ位置を自動判別したいってことなら
複数の条件を示してそう書かないと話が通るわけがない。

391 :nobodyさん:2006/07/29(土) 18:53:55 ID:???
>>366
本スレはこのスレに統合されたよ。

ヘルプファイル文字化けはお前がプロジェクトに参加して直してくれば?
実際のとこ最新版の維持も追いついてないしヘルプファイルは無いものと思った方がいいと思う。

Perlは数あるスクリプトの中でもずば抜けて特殊な構文を使える言語なので
それを基準にしてたらPHPだけじゃなくほとんどあらゆる言語が互換取れないよ。
基本的にPHPはC準拠構文。Cで使えるのに!ってもの以外は文句を言うに値しない。

俺もPerl屋だったんでその手のワンライナー系構文がことごとく使えないとかmapが使いにくいとか
sortで戻り値にソート結果を返せないとかに憤慨したけど思想が違うんだからしょうがない。
行ったり来たりで混乱するというならPHP準拠で揃えるしかねーべ。

392 :nobodyさん:2006/07/29(土) 20:04:54 ID:???
>>382
http://pc8.2ch.net/test/read.cgi/tech/1131028296/

393 :nobodyさん:2006/07/29(土) 22:17:13 ID:kQyUdpDF
外部ページをfile関数等で取り込みたいのですが、
httpsから始まるSSLのページだと、
Warningが出て failed to open stream: No such file or directory in どこそこ
と怒られます。
これを解決する方法はありますか?

<?
$url='https://www.uhauhauhaha.com/';
$souce=file("$url");
foreach ($souce as $hyouji) {
echo $hyouji;
}
?>

1 そういう事ができる関数が他にある
2 php.iniの設定や、PHPコンパイル時のオプションでできるようになる
3 そもそもfile関数でできない。sslのページを埋め込む事自体、やるべきではない

環境はPHP4.4.2です

394 :nobodyさん:2006/07/29(土) 22:44:17 ID:???
Windows版PHP5.1.4 SAPIで、DOMNodeListクラスのitemメソッドはDOMNodeインスタンスを返すとPHPマニュアルにあるのですが、何故かDOMElementインスタンスが返ってきます。
子要素に要素の追加を行いたいのでDOMElementでは困るのですが、どうすればいいのでしょうか。

また、子要素の先頭に要素を追加することは出来ないのでしょうか。

395 :nobodyさん:2006/07/29(土) 22:52:31 ID:3fQzY82m
>>389はたとえばgifの場合は
header("Content-Type: image/gif");など拡張子ごとに設定するんですか?

396 :nobodyさん:2006/07/29(土) 22:59:07 ID:???
>>393
Windows?


397 :nobodyさん:2006/07/29(土) 23:10:15 ID:???
>>393
そもそもURLに対してfopenなどをすべきではない。

socket系関数使え。

398 :nobodyさん:2006/07/29(土) 23:27:02 ID:kQyUdpDF
>>396
いえ、FreeBSD4x + apache1.3x mod ssl 上で PHP4.4.2です

>>397
file_get_contentsでやってみたんですが、同じエラーが出ました…

$url='http://www.uhauhauhaha.com/';
$hyouji = file_get_contents("$url");
echo $hyouji;

これ使え!っていう関数名か、pearのライブラリ名教えてもらえませんか?(><)

399 :nobodyさん:2006/07/29(土) 23:31:24 ID:???
>>374
どうみても自己解決してるじゃねーかww

400 :nobodyさん:2006/07/29(土) 23:43:03 ID:dwiwkLfB
話を掘り返すなよくそガキ氏ね

401 :393:2006/07/29(土) 23:51:07 ID:kQyUdpDF
すみません、>>398 の変数で指定しているURLは http ではなく https の間違いです…

402 :nobodyさん:2006/07/29(土) 23:51:24 ID:3fQzY82m
<?php
header("Content-Type: image/jpg");
readfile("test.jpg");
?>

これだけで記述して実行しても
?リ??。Exif
みたいに文字に化けて表示されるんですが、なにがまずいのでしょうか・・・

403 :nobodyさん:2006/07/29(土) 23:54:17 ID:???
破壊タグ使うのって法律に引っ掛かるんですか?


まだ使ったことないんで

404 :nobodyさん:2006/07/29(土) 23:57:54 ID:???
>>400
おまえが死ね厨房

405 :nobodyさん:2006/07/29(土) 23:58:10 ID:???
>>402
image/jpegだろ

406 :nobodyさん:2006/07/30(日) 00:02:44 ID:???
>>398
socket系関数使えって言われてるだろが。

>>403
合法

407 :nobodyさん:2006/07/30(日) 00:09:38 ID:SlTGL4ej
>>405
jpegにしてもダメでした。。。

408 :nobodyさん:2006/07/30(日) 00:13:29 ID:???
>>407
readfileってバイナリセーフだったか?

409 :nobodyさん:2006/07/30(日) 00:16:42 ID:h/4ugybZ
>>402
image/jpeg にしてもダメなら、
たぶん、出力時に自動的にエンコード変換がかかってるかも。
mb_http_output("pass");
で、明示的に、エンコーディング変換しないようにする.
それでもダメならわかりません><

410 :408:2006/07/30(日) 00:21:30 ID:???
バイナリセーフだった。うん。

>>409だろうな。多分。

411 :393:2006/07/30(日) 00:21:49 ID:1ePEuDKU
>>406
だってPHPマニュアルに(><)
で、自己解決しました
プログラム設置サーバ側でのphp4のコンパイル時に、
--with-openssl をつけPHPをインストールしないとダメだったようです…

お騒がせしました♪

412 :nobodyさん:2006/07/30(日) 00:24:52 ID:SlTGL4ej
Warning: mb_http_output(): Unknown encoding "test.jpg"

怒られた・・・

413 :nobodyさん:2006/07/30(日) 00:27:28 ID:h/4ugybZ
<?php
header("Content-Type: image/jpeg");
mb_http_output("pass");
readfile("test.jpg");
?>


414 :nobodyさん:2006/07/30(日) 00:29:21 ID:???
まさかpassをそのままpassにしてやってるんじゃないだろうな

415 :nobodyさん:2006/07/30(日) 00:29:23 ID:???
>>412
俺の.htaccess

php_flag output_buffering On
php_value output_handler mb_output_handler
php_flag session.use_only_cookies On
php_flag short_open_tag Off
php_value error_reporting 2047
php_value default_charset EUC-JP
php_value error_log C:\home\error.dat
php_flag log_errors On
php_value mbstring.language Japanese
php_value mbstring.internal_encoding EUC-JP
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass

で問題なく表示できた(4.4.2, 5.1.4共に)

416 :nobodyさん:2006/07/30(日) 00:30:29 ID:SlTGL4ej
え・・ダメなんですか?

417 :nobodyさん:2006/07/30(日) 00:37:09 ID:SlTGL4ej
>>413>>415をコピペして使ってみてもやはり文字化けとなって表示されます・・・うーん

418 :nobodyさん:2006/07/30(日) 00:39:25 ID:???
わかんないな・・・
freadでも使ってみれば?

419 :nobodyさん:2006/07/30(日) 00:40:23 ID:???
なんで、socket系じゃないと駄目なん?
理由が解らん&書いてない

420 :nobodyさん:2006/07/30(日) 00:49:10 ID:???
A extends B , B extends C をした時にCと Bのコンストラクタは呼ばれるのでしょうか?

421 :nobodyさん:2006/07/30(日) 00:53:34 ID:7xmFqdDD
質問です。自分の環境でPHP5.1.4でうまく動いている環境を、レンタルサーバ(PHP5.1.4)に持っていったところ、
容量の大きいファイルをアップロードすると"Internal Server Error"が発生します。大きいとはいっても1.5M程度で発生してしまうので、とても困っています。

そのサーバでcgi-wrapでphp5を動かしているのですが、何せすぐに500 Internal Server Errorが発生するために、原因が皆目つかめません。
エラーログを見ればもう少しわかるのでしょうが、そのサーバはエラーログを公開していないため、
試行錯誤で色々設定を変えて頑張っていましたが、どうしても現象がなおりません。

1Mのファイルでは確実に発生しますが、15kbyteくらいのファイルでもたまに500を返し、
その場合はそのままF5更新したら上手くアップロードできてしまいます。
またスクリプトの先頭すら実行されていないことも確認したので、スクリプトではなく設定の問題のようです。

とりあえず、socket_timeoutやmax_input_timeは変更し、phpinfoで反映を確認しました。一体何が原因で500が出るのでしょうか。

そのものずばりではなくても、解決の参考になるようなアイデアで結構ですので、
どうかよろしくお願いします。

関係ありそうな設定は以下の通りです
(php.ini)
default_socket_timeout = 1000
max_input_time = 1000
max_execution_time = 1000
upload_max_filesize = 4194304
memory_limit = 268435456 ;256M
post_max_size = 31457280

(.htaccess)
LimitRequestBody 20480000

422 :nobodyさん:2006/07/30(日) 00:53:49 ID:???
>>419
セキュリティ上の理由からallow_url_fopenをOnにすることが推奨されていない。
開発段階でもこれに依存したコードを書かないようにすべき。

423 :nobodyさん:2006/07/30(日) 00:55:14 ID:???
500 Internal Server Errorの意味をぐぐれば?

424 :nobodyさん:2006/07/30(日) 00:57:06 ID:???
>>421
PHPのパス。
改行コード。
ヘッダ未送信。

425 :nobodyさん:2006/07/30(日) 00:57:29 ID:???
>>423
どういう意図での話かわかりませんが、ファイルをアップロードしなければ当然動きますよ。
PHPが500を返すのは、phpが自らにかけているアップロードの制限を超えたり、
メモリが不足した場合におこるようですが、1.5Mのアップロードで起こるとは到底思えないのです。

426 :nobodyさん:2006/07/30(日) 00:59:08 ID:???
>>424
PHPは動いています。ファイルのアップロード、それも1Mを超えるサイズの場合だけの問題です。
アップロードさえしなければスクリプト自体は動いているので、改行コードは今回は問題になっていないようです
ヘッダ未送信については調べてみますが(レスポンスのHTTPヘッダですよね?)、小さいファイルではアップロード成功するので、
多分関係ない気はしています


427 :nobodyさん:2006/07/30(日) 01:14:52 ID:???
PHPをはじめて1年ほどになるんだけど、
windowsやmacのソフトを作りたくなりました。
他の言語は一切経験無しです。

お勧めの言語を教えて栗、
色々調べて Visual C#あたりをやってみようかと思うんですが、
これってWindows Only?

428 :nobodyさん:2006/07/30(日) 01:45:20 ID:???
>>420
Aに無かった時だけBコンストラクタを呼ぶ、無ければC@4.4.2

>>427
427のためにもム板への移動がお勧め
マルチプラットフォームを考えてるなら尚更

429 :nobodyさん:2006/07/30(日) 01:58:30 ID:???
>>427
C#だと比較的楽だけど、環境依存
C/C++だと高速だけどWindowsAPIの知識が必要かつ煩雑
Delphiとか最近多いけど文法が独特
VBはC#に同じ。PHPと似たような感じでは書けない
Javaは実行に仮想Javaマシンが必要

ム板行ったほうがいいな。

430 :nobodyさん:2006/07/30(日) 02:38:30 ID:???
>>427
まぁ、デスクトップアプリを作りたいが、winでもmacでも動作するものが作りたい
ってなったらJavaでSwingを使う、ってのが一番手っ取り早い気がするな

ム板行ったほうがいいな

431 :nobodyさん:2006/07/30(日) 03:43:00 ID:???
>>428
> >>420
> Aに無かった時だけBコンストラクタを呼ぶ、無ければC@4.4.2

ありがとうございます。
最後の@4.4.2は、どういう意味でしょうか?

432 :nobodyさん:2006/07/30(日) 04:26:41 ID:???
>>431
少なくともPHP4.4.2の場合はそういう仕様、って意味かと。
コンストラクタ周りはPHP3と4と5とでそれぞれ仕様が違うので。

433 :nobodyさん:2006/07/30(日) 04:45:35 ID:???
PHP5の場合は
注意: 子クラスがコンストラクタを有している場合、親クラスのコンストラクタが 暗黙の内にコールされることはありません。
親クラスのコンストラクタを実行するには、子クラスのコンストラクタの 中で parent::__construct() をコールすることが 必要です。

とマニュアルに書いてた。
つまりCの親クラスであるBクラスのコンスタラクタを呼び出すにははparent::__construnct()をCクラスで指定しなければならない。


434 :nobodyさん:2006/07/30(日) 09:18:36 ID:TrvGlatV
fgetsとは反対にそのポインタから一行分書き込むなんて事は出来るのでしょうか?

435 :nobodyさん:2006/07/30(日) 09:47:55 ID:???
>>434
fwriteがそうじゃないの?

436 :nobodyさん:2006/07/30(日) 09:55:49 ID:???
>>435
例えば「2222」の部分だけを「11」に変更したい場合にfwriteで書き込むとゴミが残りますよね?。
ファイルを全部読み込まずに奇麗に一行だけ変更する事はできないものかと思いまして。

*data
1111
2222
3333
.
.
.
.


437 :nobodyさん:2006/07/30(日) 10:14:07 ID:???
>>436
根本的な問題なんだけど、ファイルってのはディスク上の「決まった場所」に
1バイトずつデータを置いてるわけ。
で「1行」ってのは改行コード〜改行コードの間を指してるわけで、
別にディスク上で行単位に保存されてるわけじゃないの。

1行の長さを変更しようと思ったら、それより後ろ全体の配置を変えないとムリ。

438 :nobodyさん:2006/07/30(日) 10:19:21 ID:???
>>436
ファイル内容を
1111
2222
3333
なんてイメージしてるからそんな世迷言を吐ける。
ファイルってのは
"1111\n2222\n3333\n"
という1個の文字列でしかない。
それで2222を11に変更するにはどうすればいいのか、よく考えてみることだ。

439 :nobodyさん:2006/07/30(日) 10:32:27 ID:???
>>437-438
変更するデータが小さければ空白で穴埋めして読み込み時に手を加えるようにすれば
いいのでしょうけど大きい場合はやはりどうにもなりませんよね。

ありがとうございました。

440 :nobodyさん:2006/07/30(日) 10:49:47 ID:???
せっかくSQLite組み込まれているんだから使ってみればいいのに・・・

441 :nobodyさん:2006/07/30(日) 10:57:23 ID:PjLh0F//
田代砲って違法なんですか?

442 :nobodyさん:2006/07/30(日) 10:58:35 ID:???
>441
下げ忘れ
すいません

443 :nobodyさん:2006/07/30(日) 12:32:43 ID:???
>>441
その質問自体が違法。とりあえず通報した。どんまい
まあ殺人予告と違って事情聴取くらいで帰れると思うが

444 :nobodyさん:2006/07/30(日) 12:39:11 ID:???
>>441
使い方による

>>443.
夏ですね^^

445 :420:2006/07/30(日) 12:42:35 ID:???
>>432
なるほど。簡単なのに気づきませんでした。

>>433
マニュアルを何回か検索しているんですが、そのページが全然でてこないのですけど、
なんという単語で検索すればいいのでしょうか?
検索した用語「コンストラクタ」「親クラス」「子クラス」「_construct」

目的は、PHP4で「Aを呼ぶ時にBとCのコンストラクタを呼んで欲しい」です。




446 :nobodyさん:2006/07/30(日) 14:21:19 ID:???
>>441, 444
「違法」というわけではないが、この行為自体は「厨房」と同じw
これやってる奴は自覚していないというから恐い。

447 :nobodyさん:2006/07/30(日) 14:31:18 ID:???
>>446
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw
この行為自体は「厨房」と同じw

448 :nobodyさん:2006/07/30(日) 14:42:22 ID:???
ていうかなにマジレスしてんだセンスねえ

449 :nobodyさん:2006/07/30(日) 14:44:32 ID:???
夏厨がご迷惑をかけております
謹んでお詫び申し上げます

                                           糸冬
                                       --------------
                                       制作・著作 NHK


450 :nobodyさん:2006/07/30(日) 14:45:15 ID:???
Windows XP SP2
Apache 2.0
PHP 5.1.4

自宅でApacheをインストールして、ローカルホストとして起動しながらPHPの勉強を始めました。
教本を見ながら勉強しているのですが
$HTTP_HOSTや$HTTP_USER_AGENTというのが無効な様子です。

自分なりに考えた結果Apacheのhttpd.confの設定なのかなと思っているのですが
どうしたら、有効にできるのかご教授頂けないでしょうか。

451 :nobodyさん:2006/07/30(日) 14:49:12 ID:???
>>450
考えるのもいいけど、マニュアルも読んだほうがいい
環境変数の仕様が変わってる

452 :nobodyさん:2006/07/30(日) 14:51:57 ID:???
>>442
むしろ質問は下げちゃダメ 参>>6

453 :nobodyさん:2006/07/30(日) 14:56:04 ID:???
>>445
マニュアル→III言語リファレンス→18章クラスとオブジェクト(PHP4)→コンストラクタ
ttp://www.php.net/manual/ja/language.oop.constructor.php

検索で出てこない、ってのは検索モードをin the function listにしちゃってるからじゃ?
これは関数じゃないから出てこないでしょ。
in the online documentationなら出てくるよ。

454 :nobodyさん:2006/07/30(日) 14:57:29 ID:???
>>450
参考にしてるその本が古すぎ。
PHPは仕様変更が早いから書籍は参考にならないことが多いよ。

455 :nobodyさん:2006/07/30(日) 15:06:08 ID:???
>>447
お前馬鹿だろ?

456 :420:2006/07/30(日) 15:18:48 ID:???
>>453
ありがとうございます。

以下の文を探していました。

PHP 4 では派生クラスのコンストラクタから基底クラスの コンストラクタを自動的にコール
することはできません。 上流のコンストラクタを適切にコールするように伝播させることは
あなたの責任でやるべきことです。

つまり、BとCのコンストラクタを明示的にAで呼んであげないといけない
という理解で良いですよね。

#んー、なんかマニュアルって検索にうまくひっかからないのですよね…


457 :450:2006/07/30(日) 16:39:33 ID:???
$name = array(">>451",">>454");

for($i=0; $i < 2; $i++) {
echo $name[$i]."さんありがとうございます。<BR>\n";
}
echo "\$_SERVER[\"HTTP_HOST\"]に書き直したらいけました。";

458 :nobodyさん:2006/07/30(日) 17:31:42 ID:c850+3OT
斬新なレスだな。

459 :nobodyさん:2006/07/30(日) 17:36:12 ID:???
>>457

foreach($name as $value){ echo $value."さん〜"; }
echo "〜";

の方がスマートになると蛇足。

460 :nobodyさん:2006/07/30(日) 17:51:10 ID:???
浮動小数点数(3.14)などを16進数表示するにはどうしたらいいの?


461 :nobodyさん:2006/07/30(日) 17:58:25 ID:NzzdC7Vd
5.14ってもう、デフォルトでSQlite、ONになっていませんよね?

今、入門書を読み終わってSmartyの本読みを読み始めたところなのですが
SQliteが動きません。phpinfo();にもSQliteの項目がありません。

php.iniを見ると5.03の時にはなかった
extension=php_sqlite.dll
という項目があったので、ONにしてみたのですが駄目でした。
extのパスも間違っていない(はず^^;)です。
他に何かしなければオンにならないのでしょうか?

MySQLを使うか、5.03でテストしつつ読み進めれば問題ないのですが

私がなんか設定でオオポカをやらかしてるのか…
それとも、SQliteが見捨てられたのか…


462 :nobodyさん:2006/07/30(日) 18:17:08 ID:???
>>461
PDO SQLiteならデフォルトでOffになってる。
SQLite関数なら普通に使えたと思ったけどな・・・
--with-pdo-sqlite付けてコンパイルし直すと良いと思う。

463 :nobodyさん:2006/07/30(日) 18:33:01 ID:TgrmMjVZ
perlのスクリプトをPHPに起こしなおそうと思い、苦戦中
テキストファイルを読み込んで、
行ごとに、条件分岐で保存するかしないかを決める処理をしたいんだけど
例えば、以下の様なテキストファイルのDを含む行を削除するような
ABC
BCD
CDE
DEF

fopenのw+モードだと、テキストファイルの内容が読み込み方が分らず
r+モードだと、行の削除をどうやるかがわからず
唯一file関数で読み込んでからfopenでif文書いて処理すればいけるが、
fileロック的に微妙。

perlだと普通にopen関数でいけるのだけど
どうしたらよいの?

464 :nobodyさん:2006/07/30(日) 19:12:21 ID:???
>>402
サーバーの設定で例えば広告とかが混じってるんじゃないの?

465 :nobodyさん:2006/07/30(日) 19:16:14 ID:SlTGL4ej
>>464
キタ━━━━━━━━(゚∀゚)━━━━━━━━━━ッ!!
ありがとうございます!

466 :nobodyさん:2006/07/30(日) 19:23:29 ID:???
キターっていうのは電車男の影響だな。

467 :nobodyさん:2006/07/30(日) 21:13:16 ID:EgQavLOH
すれ違いなら誘導をお願いします。
恐らく PHP の文字コードの問題と思っているので、こちらにお邪魔しました。

PHP-4.4.2
MySQL-5.0.22

上記の環境で scuttle-0.7.2 を導入しようとしています。
動作までは行えたのですが、ブックマークの登録に日本語が通りません。
php.ini を書き換えて EUC-JP や UTF-8 で統一してみましたが、文字化けしたままでした。
phpMyAdmin も併用して、検証を行った結果、

scuttle から入力>phpMyAdmin で表示>文字コード判別不能。
phpMyAdmin から入力>scuttle で表示>scuttle 上はUTF-8で該当データはEUCでした。

MySQL 上ではutf8_general_ciでデータベースを作成しています。

どなたか、導入実績のある方などはいらっしゃいますか?
もしくは、ここが悪い?というご指摘をいただけると助かります。


468 :nobodyさん:2006/07/30(日) 21:56:48 ID:cXM04WS8
質問です。

GDで加工した画像データをmysql等のDBに入れたいのですが、
ファイルを作成するのはimagejpeg()等で出来ますが、変数に格納する方法が
わかりません。一時ファイルを作ってそれを読みこむ以外に方法は無いのでしょうか?

469 :nobodyさん:2006/07/30(日) 22:05:56 ID:???
>468
serializeとかじゃダメなん?

470 :468:2006/07/30(日) 22:11:39 ID:cXM04WS8
>>469
serialize(イメージID)としてみましたが駄目でした

471 :nobodyさん:2006/07/30(日) 22:39:19 ID:???
>>470
これ試してみな
ob_start();
imagejpeg($im, NULL, 75 );
$x = ob_get_clean();


472 :nobodyさん:2006/07/30(日) 22:43:40 ID:???
コンポーネントのscrollpaneの中に何を何個入れるか、をxmlで定義しようとしてます。

で、読み込ませるためにリンケージを貼ったMCの中でXMLをonLoadして、
そのXMLの定義にしたがって画像などをloadMovieしてるんですが、
何故かスクロールペインにスクロールバーが出ません

XMLのonLoadや画像のloadMovieが時間差を生んで、読み込み以前の状態が反映されてるのかと思い、
スクロールペインのonEnterFrame( )に
redraw( )をつけたりしてるんですが、
特に効果はありませんでした。

こういう時はどういう処理でスクリプトの流れを作ればいいんでしょうか
よろしくおねがいします。

473 :472:2006/07/30(日) 23:01:14 ID:???
すいません、スレッドを間違えました

474 :nobodyさん:2006/07/31(月) 00:53:18 ID:???
>>422
その理屈はわかるけど、だからってfopenがダメでsocketはOKってのはおかしくないか?

475 :nobodyさん:2006/07/31(月) 00:57:11 ID:???
>その理屈はわかるけど

わかってねーよww

476 :nobodyさん:2006/07/31(月) 01:24:12 ID:???
>>475
「推奨されていないから使わないようにすべき」って方の理屈は普通にわかるって意味ね。
allow_url_fopenをオフにするならソケットによるアクセスは全て禁止すると思うけど、そうじゃないシチュエーションってどんなときに起こるの?

477 :nobodyさん:2006/07/31(月) 01:45:06 ID:???
ID表示したら教えてやらんでもない

478 :nobodyさん:2006/07/31(月) 01:48:53 ID:AiuTU73H
>>477
教えてください

479 :nobodyさん:2006/07/31(月) 03:02:42 ID:???
>>463
そもそもPerlならopenでできる、ってのはどうやってるのさ。
このスレでPerlの知識があることを前提に質問するのは間違ってるぞ。

話を聞く限りでは、r+で開いて中身読み込んでtruncateで中身リセットして
あとは必要な行だけfwriteしていけば終わりの気がするけどね。
Perlでもやってることは一緒だと思うんだけどなぁ。


480 :nobodyさん:2006/07/31(月) 10:11:51 ID:???
>>479
中途行を削除するのでも、
その削除行から残り全部は一旦削除して書かなきゃならないってのわかってないとおもうよやつは。
ファイルの、その行だけ削除すればOKだと思ってる。

481 :nobodyさん:2006/07/31(月) 10:36:29 ID:vOs6pv4F
あまり null を気にした事がなくて何時も $a = '' としていたのですが、
$a = null と書くのが常識なのでしょうか?' 

482 :nobodyさん:2006/07/31(月) 10:39:28 ID:???
>>481
いや、それは全然常識じゃないと思う。

483 :nobodyさん:2006/07/31(月) 10:50:27 ID:???
>>482
マニュアルを見てきたのですが
・値がない
・unsetした場合
とかなっていましたが・・・

unset($a)したら変数はなくなりますよね?
だから if ($a)だとエラーが出ると思っていたのですが、あれ・・・

484 :nobodyさん:2006/07/31(月) 10:54:00 ID:???
NOTICEなら出るよ

485 :nobodyさん:2006/07/31(月) 10:54:06 ID:???
>>483
いやだから、$a = ''; も $a = NULL; も、それぞれ「意図があって」やってることであって、
どっちかが常識ってわけじゃないんだよ。
何をやりたいかによって使い分けなきゃいけないものってこと。

486 :nobodyさん:2006/07/31(月) 11:08:17 ID:???
>>484-485
ローカルで色々と試してきました。
結果、noticeすら出なかった・・・。

error_reporting(E_ALL);
ini_set('display_errors',1);

としてあるのですが謎です。

文字が空である事と値がない事は違うという事ですね。

487 :(^ω^):2006/07/31(月) 11:35:32 ID:???
NULLを代入する方が速いはず。特にPHP 5.1.4以降なら。

488 :nobodyさん:2006/07/31(月) 11:41:45 ID:???
やっぱり、ヌルヌルの方が挿れやすいですからね^^

489 :nobodyさん:2006/07/31(月) 11:42:04 ID:CE9HBJM2
質問です。

$hoge = " 1 "; //" " . "1" . " " の3つに分割されるつもり
$array = explode(" ",$hoge);

とした場合、最初のスペースが分割文字として判定されずに、

array([0]=>" 1",[1]=>"")

となってしまい困っています。
これが"#"などなら意図したとおり動作するのは確認しているのですが、すでにデータを" "で作成しています。
どうすれば先頭の" "も分割文字として認識されるのでしょうか。
助言をよろしくお願いします。

490 :nobodyさん:2006/07/31(月) 11:44:52 ID:???
区切り文字も分割文字として認識するのか?
それは上手なデザインと言えないような…

491 :nobodyさん:2006/07/31(月) 11:47:29 ID:???
>>489
力技だけど $hoge の先頭に "#" なりを付加して explode にかけて
出来上がった $array[0] の 1 文字目を削除する、とか。


492 :nobodyさん:2006/07/31(月) 11:53:11 ID:CE9HBJM2
>>491
ありがとうございます。
その手を試してみます。

493 :nobodyさん:2006/07/31(月) 12:10:29 ID:???
>>486
さらに言うなら、文字が空、と、値が無い、と、変数自体が無い、はそれぞれ意味が違う。

494 :nobodyさん:2006/07/31(月) 12:20:44 ID:???
>>493
0 と false も追加しといて
最初の頃それで苦労したorz

495 :nobodyさん:2006/07/31(月) 14:02:13 ID:???
「推奨されていないから使わないようにすべき」
「セキュリティ上、好ましくない」
とか、とても便利な逃げ常套句ですね。
それとも、なんですか…
具体的な例を提示できないから、
まさかこんな事言ってるんじゃありませんよね?

496 :nobodyさん:2006/07/31(月) 14:05:45 ID:???
>>495
何に対して言ってるのかを明確に。

497 :nobodyさん:2006/07/31(月) 14:11:06 ID:???
xreaを使っているのですが、extract(〜)と書かなくても勝手に
extract したような動作になってるのは回避できますか・・・

?p=abc

がそのまま$p=abcになってしまっている・・・。

498 :(^ω^):2006/07/31(月) 14:24:08 ID:??? ?2BP(223)
ヒント:register_globals

499 :nobodyさん:2006/07/31(月) 14:25:39 ID:???
ttp://propanmode.net/
User Agentにシングルクオートを入れてアクセスすると…

500 :nobodyさん:2006/07/31(月) 14:37:43 ID:???
>>499
SELECT * FROM user_mst WHERE user_id = '' or user_id <> '' AND pass = '' or pass <> '' AND user_state <> 'del'

こういうSQL文になるように フォームの maxlenght を削ってローカルに保存し送信したら
ログインできたお

501 :nobodyさん:2006/07/31(月) 14:42:04 ID:???
>>499
Fatal error: ERR_DBCls_ExecQuery :
SELECT * FROM count_tmp WHERE user_agent = 'test'test' AND remote_addr = '' AND remote_host = ''
in /virtual/propan/public_html/common/dbcls.php on line 238

DBでアクセス解析してるんだろう
誰かDELETEのSQLでも投げてやれよ、ちゃんと権限設定してあって大丈夫かもしれんが

502 :nobodyさん:2006/07/31(月) 14:59:02 ID:???
SQLインジェクションですな。

503 :nobodyさん:2006/07/31(月) 15:16:32 ID:HekLsGeB
#include<stdio.h>

int main(void)
{
double pai = 3.141592;
double r;
double taiseki;
int h;

r = 10;
h = 12;
taiseki = 1 / 3 * pai * r * r * h;
printf("三角錐の体積 = %d\n",taiseki);

return 0;
}

ってどこがおかしい?

504 :nobodyさん:2006/07/31(月) 15:18:16 ID:???
>>503
お前のレスしてる板

505 :nonicebody:2006/07/31(月) 15:22:45 ID:???
>>503
>>504
久しぶりにわろたw

506 :nobodyさん:2006/07/31(月) 15:26:48 ID:HekLsGeB
mgk

507 :nobodyさん:2006/07/31(月) 15:52:44 ID:???
よくみたらCだな

#include<stdio.h>
が、なつかしー

508 :nobodyさん:2006/07/31(月) 15:53:15 ID:HekLsGeB
頼む!
テスト中なんだ!

509 :nobodyさん:2006/07/31(月) 16:00:24 ID:???
カンニングはいかんよ

510 :nobodyさん:2006/07/31(月) 16:02:22 ID:???
こうなるのか?
三角錐の体積 = 0

511 :nobodyさん:2006/07/31(月) 16:04:11 ID:HekLsGeB
そうそう。
持ち込み可だからパソコン使っても良いはず!

512 :nobodyさん:2006/07/31(月) 16:05:52 ID:???
1/3=0

513 :nobodyさん:2006/07/31(月) 16:07:07 ID:???
%f か

514 :nobodyさん:2006/07/31(月) 16:07:45 ID:???
<?php
$pai = 3.141592;
$r = 10;
$h = 12;
$taiseki = 1 / 3 * $pai * $r * $h;
printf('三角錐の体積 = %d', $taiseki);
?>

515 :nobodyさん:2006/07/31(月) 16:07:46 ID:???
頭痛が痛い
クーラー病にかかった
PHPで治すにはどうしたらよいですか?

516 :nobodyさん:2006/07/31(月) 16:12:18 ID:???
頭痛が痛い

517 :nobodyさん:2006/07/31(月) 16:12:32 ID:???
>>515
そと言って走って来い

518 :nobodyさん:2006/07/31(月) 16:13:35 ID:???
>>515
無限ループさせて、ハードディスクの熱でぬくぬく!

519 :nobodyさん:2006/07/31(月) 16:15:00 ID:???
>>517,518
解決しました
ありがとうございます

520 :nobodyさん:2006/07/31(月) 16:20:30 ID:HekLsGeB
ひとつはfみたい。dクス。他にないですか?

521 :nobodyさん:2006/07/31(月) 16:24:42 ID:???
>>518
CPUだろ

522 :nobodyさん:2006/07/31(月) 16:28:21 ID:HekLsGeB
オワタ。
楽しかった。ありがとう。

523 :nobodyさん:2006/07/31(月) 16:41:53 ID:???
サイト内の共通する部分(ヘッダーメニューなど)を
PHPのinclude化したのですがwin IEだとインクルードした部分の
上にスペースができてしまいます。
しかし生成されたページのソースを表示してもなんらスペースができる
要因もないしインクルード処理をせずそのままページ上にhtmlを記述すると
スペースはできないのですが対処はあるのでしょうか?

524 :nobodyさん:2006/07/31(月) 16:46:21 ID:???
IE改造

525 :nobodyさん:2006/07/31(月) 16:48:08 ID:???
>>523
こないだの人?
前、なんて言われたか覚えてる?

526 :nobodyさん:2006/07/31(月) 16:50:23 ID:???
>>156- と同じだね。

527 :nobodyさん:2006/07/31(月) 16:51:18 ID:???
>>525
このあいだの人ではないとおもいます

528 :nobodyさん:2006/07/31(月) 16:52:35 ID:???
>>523は、ソース上で改行があるのか、それとも表示上での改行(というか余白)なのかがわからない。
後者なら仕方無いだろ。

ユーザスタイルシートでマージン殺せ。

529 :nobodyさん:2006/07/31(月) 16:55:04 ID:???
>>527
同一人物であろうがなかろうが、再現環境・スクリプトを提示しない限り
時間の無駄だからスルーの方向で

530 :nobodyさん:2006/07/31(月) 16:55:45 ID:???
>>523
インクルードされるファイルの一番最後、
?>
の後に余計な改行が入ってる

531 :nobodyさん:2006/07/31(月) 16:58:47 ID:???
間違いなく >>523 は画面上でのスペースのことを言っている。
要素のデフォルトマージンだろ。

Web板いけ。

532 :523:2006/07/31(月) 17:06:52 ID:???
>>156のとまったく同じ状況でした。
ちなみに答えは>>204の通りutf-8n保存で解決しました。
お騒がせスマソ

533 :nobodyさん:2006/07/31(月) 17:10:17 ID:???
>>532 氏ね

534 :nobodyさん:2006/07/31(月) 17:14:02 ID:???
<>

535 :nobodyさん:2006/07/31(月) 17:53:46 ID:86BvdUEa
レスは検索してなかったみたいだけど、ちゃんと解決法も書いてるし、別にマナーも悪くないし、いいんじゃないか。

536 :nobodyさん:2006/07/31(月) 18:16:12 ID:???
PHPって、空でないディレクトリの削除は自分で処理を書くしかないんですか?
再帰的にunlink-rmdirしていくのは、あまり本質ではないディレクトリ削除で
そこそこ行数が増えてしまうので、他の方法があれば是非ご教示ください

537 :nobodyさん:2006/07/31(月) 18:20:11 ID:???
>>536
rm -Rf ./hoge/*\ rmdir ./hoge/

538 :nobodyさん:2006/07/31(月) 18:26:58 ID:???
ちと、お聞きしたいのですが
例えばここWebプログラミング板の
subject.txt(http://pc8.2ch.net/php/subject.txt)
file_existsで存在の確認をしようとしても
falseしか吐かないのですが、file関数で直接調べることは
不可能、というか許されてないのでしょうか?


539 :nobodyさん:2006/07/31(月) 18:35:52 ID:???
>>537
シェル実行ということですか。
使われる対象が色々なOSである可能性があるので、ちょっと難しそうです。

540 :nobodyさん:2006/07/31(月) 18:44:08 ID:???
>>536
>あまり本質ではないディレクトリ削除で
どういう意味だ?

541 :nobodyさん:2006/07/31(月) 18:45:29 ID:???
>>540
ごめんなさい、深い意味はありませんが、
本来API1つで書けそうなコードに対して、再帰のための関数まで書かなければいけないのは
ちょっと嫌だなと思っただけです。

方法が無いならもちろん書きます

542 :nobodyさん:2006/07/31(月) 18:51:59 ID:???
色んなOSならなおさらラッパー的な役割をしているPHPの関数を使うべきではないのだろうか。

543 :(^ω^):2006/07/31(月) 18:56:33 ID:??? ?2BP(223)
ユーザーノートに10行ちょいの再帰コード乗ってるよ

544 :nobodyさん:2006/07/31(月) 18:57:27 ID:???
ほかのwebサイトから取得したデータを
キャッシュする関数はありませんか?

545 :nobodyさん:2006/07/31(月) 19:04:07 ID:???
>>542
とすると、やはりPHP関数で書くしかないんですね

>>543
ありがとうございます。それを使って書くことにします

546 :nobodyさん:2006/07/31(月) 19:14:27 ID:63K97mub
質問お願いします。

アクセスログをDBに書いてるのですが
まれにへんなREFERERがきて

invalid byte sequence for encoding "UTF8"

というPostgreSQLのエラーがでます。
UTF-8には存在しない文字コードが含まれてるとのことなのですが
保存する前の文字列から
UTF8にありえない文字列を除去、または
他の文字列に変換するような便利な関数か方法はないでしょうか?

547 :nobodyさん:2006/07/31(月) 19:26:48 ID:AsAaXYbZ
くだらない質問します。

mysqlのクエリをphpで書くときに、たとえば
$sql = "update hogetbl set hogehoge ='$hogehoge'";
といったように、クエリ中の変数をシングルクオートで囲むのは危険なのですか?
\"".$hogehoge."\"のように書けば問題ないでしょうか?

548 :(^ω^):2006/07/31(月) 19:33:23 ID:???
>>546
http://blog.ohgaki.net/index.php/yohgaki/2006/06/12/a_a_a_a_a_ra_ca_a_oa_pa_fa_ma_sa_sa_raf
を参考にどうぞ
>>547
$hogehogeが外部から来て検査していない変数ならどちらも危険

549 :nobodyさん:2006/07/31(月) 21:11:59 ID:???
>>547
っていうか、その書き方だと$hogehogeは変数だとみなされず、
単なる文字列だと判断されるぞ。

550 :nobodyさん:2006/07/31(月) 21:16:44 ID:???
>>549
んなこたぁない

551 :546:2006/07/31(月) 21:55:58 ID:???
>>548
ありがとうございます
encoding attackとみなすのはちょっとあれだったので
mb_convert_encoding($s, "UTF-8", "UTF-8")
をかますことにしました。

552 :nobodyさん:2006/07/31(月) 21:56:54 ID:???
>>547
DBインターフェースを利用してバインドしろ
PEAR::DB の場合は
$result = $db->query("update hogetbl set hogehoge=?", array($hogehoge));

変数の値を自動的にquoteしてくれる

553 :nobodyさん:2006/07/31(月) 22:46:23 ID:???
>>547
え。むしろシングルクオートの方が普通じゃないのか?
つか、危険云々はシングルだろうとダブルだろうと全然変わらんよ。
なんでそんなので危険率が変わると思ってるのか、それが気になる。
どっからそんな誤った知識を聞いてきたんだ。

554 :nobodyさん:2006/07/31(月) 23:25:37 ID:WXdtFlcA
windowsXP PHP5.1.4です。

<FORM ACTION="form02.php" METHOD="POST">
<textarea name="honbun" rows="4" cols="40"></textarea><br>
<input type="submit" value="送信する"><input type="reset" value="リセット">
</FORM>

<?php

$honbun = $_POST["honbun"];

// ↓改行を正規表現で\nにして、それでarrayに入れたつもりになってる
$honbun = explode("\n",$honbun);

//そうしたら↓で上手くいくかなと思いましたがダメでした。
$gyo = count($honbun);
for($i=0; $i > $gyo; $i++) {
echo "$honbun[$gyo]"."<br>\n";}

改行の置き換え方がダメな気がするんですが
こういう場合、どうやってtextareaからの改行を
配列に振り分けたら良いんでしょうか...

555 :nobodyさん:2006/07/31(月) 23:32:15 ID:???
$honbun = explode("\n",$honbun);
$honbun = explode("\r",$honbun);
$honbun = explode("\n\r",$honbun);


for($i=0; $i < $gyo; $i++)

556 :554:2006/07/31(月) 23:41:01 ID:???
ありがとうございます!
正規表現以前に、条件は$i < $gyo だし
arrayは$honbun[$i]ですね...orz

557 :nobodyさん:2006/07/31(月) 23:44:24 ID:???
>>554
> $gyo = count($honbun);
> for($i=0; $i > $gyo; $i++) {

そのループ条件は $i < $gyo の間違いだと思う。
それじゃいきなり終わっちゃうから1行も表示されないだろうw

558 :nobodyさん:2006/07/31(月) 23:45:48 ID:???
>>555
"\n\r"は"\r\n"じゃない?
あと、"\n"や"\r"でexplodeする前にまず"\r\n"でexplodeだと思う。

559 :nobodyさん:2006/07/31(月) 23:52:57 ID:???
まずは改行コードの統一をしてから
\r\n→\n、\r→\n、\nでexplode

560 :nobodyさん:2006/08/01(火) 00:07:43 ID:???
掲示板を触っているんですが、特定文字列を含む書き込みを弾くには
どのような関数を使えば良いでしょうか?

561 :554:2006/08/01(火) 00:09:34 ID:???
str_replace("\r\n","\n",$honbun);
str_replace("\r","\n",$honbun);

で統一してからexplodeするようにして、変数があべこべになってたのを
直したら無事動きました。
ありがとうございますm(_ _)m

562 :nobodyさん:2006/08/01(火) 00:13:37 ID:???
str_replace(array("\r\n", "\r"), "\n", $honbun);で一発じゃないっけ?

563 :nobodyさん:2006/08/01(火) 00:39:18 ID:???
>560
http://jp2.php.net/str_pos

564 :nobodyさん:2006/08/01(火) 01:02:56 ID:rUBuvQ+2
スクリプトのデザインについて質問です。

データベース(MySQL)を使うのですが、ふつう、テーブルはあらかじめ
作成しておくべきなのでしょうか?

565 :nobodyさん:2006/08/01(火) 01:25:18 ID:???
どっちでも良いんじゃない。
自分は最初に設計してるけど、大抵後から変更でてくる

566 :nobodyさん:2006/08/01(火) 01:44:57 ID:???
>>564
スクリプトからのテーブル作成ってことなら普通しない。

567 :nobodyさん:2006/08/01(火) 02:26:07 ID:???
変数が半角英数字かどうか調べるにはどうすれば良いのでしょうか?

568 :nobodyさん:2006/08/01(火) 02:39:57 ID:s+Er9w14
$str = "hogehoge";
list($array[]) = split('',$str);
print_r($array);

文字を一文字ずつ区切ろうとしたのですが、
Warning: split() [function.split]: REG_EMPTY in
と出てうまくいきません。
一文字ずつ区切るのはできないのでしょうか?

569 :nobodyさん:2006/08/01(火) 02:45:07 ID:s+Er9w14
str_splitで解決しました

570 :nobodyさん:2006/08/01(火) 03:43:57 ID:???
>>567
そういう関数が用意されてるから調べてみるといいよ。

571 :nobodyさん:2006/08/01(火) 07:51:08 ID:???
>>568
配列にしなくても$str{0}で"h"、$str{1}で"o"にアクセスできるけどね

572 :nobodyさん:2006/08/01(火) 10:23:16 ID:oOf+GkNU
547です。
みなさんレスありがとうございます。

危険度という意味では大差ないということでOKでしょうか?
クエリ文のシングルクオートは危険というのを、どこかで聞きかじった気がしたので確認させて頂きたかったのです。ありがとうございました。

573 :nobodyさん:2006/08/01(火) 10:30:30 ID:???
>>547
おいおい。結論がおかしい。
とにかく危険なのには変わりないんだから >>552 にあるような書き方に改めな。

574 :nobodyさん:2006/08/01(火) 10:39:34 ID:???
>>572
シングルクォートであるとかないとかじゃなくて、
その変数をきちんとエスケープ関数に通したかどうかを気にしろ。

575 :nobodyさん:2006/08/01(火) 10:41:57 ID:???
俺はシングルとダブルは使い分けている
エスケープ文字がうざいから

576 :nobodyさん:2006/08/01(火) 10:43:45 ID:???
>>575
今はそういうことを言っているんじゃない。論点をずらすな。
関係ない戯言は他所で書け。

577 :nobodyさん:2006/08/01(火) 10:46:04 ID:???
>>572
危険度は大差ないというか「どっちも危険」。
多分、聞きかじった内容を思いっきり勘違いしてる。
実際はクオートは関係なく、それ以外にもっと重要な要素が抜け落ちてる。
>>575
それはPHPのクオートの話であってMySQLのクオートとは別の話。

578 :nobodyさん:2006/08/01(火) 10:48:12 ID:rUBuvQ+2
マニュアルにある

function quote_smart($value)
{
if (get_magic_quotes_gpc()) {
$value = stripslashes ($value);
}

// 数値あるいは数値形式の文字列以外をクオートする
if (! is_numeric($value)) {
$value = "'" . mysql_real_escape_string ($value) . "'";
}
return $value;
}

これでいいじゃん?

579 :nobodyさん:2006/08/01(火) 10:49:19 ID:rUBuvQ+2
>>565-566
意見ありがとうございました。
貝から操作してCREATE TABLEします・・・

580 :nobodyさん:2006/08/01(火) 10:57:59 ID:???
>>578
magic_quote設定なんていちいち見ないなー。
汎用のライブラリ作るんならそこまでやってもいいと思うけど、普通の開発じゃ無駄じゃない?
素直に
"select * from table where col = '" . mysql_escape_string($value) . "'";
でいいじゃん。

581 :nobodyさん:2006/08/01(火) 10:59:17 ID:???
>>580
いや、だから、bind とか prepared statement でいいじゃん。

582 :nobodyさん:2006/08/01(火) 11:02:44 ID:???
>>581
ちょっとしたちっこいスクリプトにまでいちいちPEARいれてらんねー

583 :nobodyさん:2006/08/01(火) 11:07:43 ID:???
>>582
俺もそう思う。

584 :nobodyさん:2006/08/01(火) 11:09:14 ID:???
perl に比べれば入れるもの少ないのだから、そんなにめんどうだとは思わないけどな


585 :nobodyさん:2006/08/01(火) 11:15:42 ID:???
プリペアドステートメントに渡したデータは自動的に引用符で括られるの知らんかった・・・

みんなPDOは使ってないの?

586 :nobodyさん:2006/08/01(火) 11:46:33 ID:???
>>585
俺はPDOだよ

587 :nobodyさん:2006/08/01(火) 12:38:32 ID:???
俺はPEDだ

588 :nobodyさん:2006/08/01(火) 12:56:22 ID:i9MoMR6e
MySQLなんですが、あるフィールドに指定された値(例えば「id」というフィールドに「mona」という値)
が存在するかを調べる関数はありますか?

589 :nobodyさん:2006/08/01(火) 12:59:37 ID:???
俺は3DOリアル

590 :nobodyさん:2006/08/01(火) 13:12:15 ID:???
ADOってマイナー?

591 :nobodyさん:2006/08/01(火) 13:13:32 ID:???
>>590
マイナーじゃない
むしろ、メジャーの方に入る

592 :nobodyさん:2006/08/01(火) 13:21:28 ID:???
>>588
SQLの勉強したら?
スレ違い。

593 :nobodyさん:2006/08/01(火) 13:38:40 ID:???
>>588
ある。

594 :nobodyさん:2006/08/01(火) 13:51:37 ID:???
>>591
よかった
これからも使い続けよう

595 :nobodyさん:2006/08/01(火) 14:06:28 ID:???
>>576
あんたひどいね。

596 :nobodyさん:2006/08/01(火) 15:52:25 ID:???
セッション変数に数や容量の限界ってあるんでしょうか?

よくある買い物籠のイメージは、商品の識別番号と個数を籠(セッション)に保持しておくと思うんですが、
実データを入力させてそのままセッションに入れて持ち歩くような動作を考えてます

597 :nobode:2006/08/01(火) 16:19:50 ID:???
>>596
ハッシュファイルベースのセッション管理なら
そのセッションファイルを保存しているディスク量がセッションの限界じゃないかな?
あとセッション変数にドンドン代入していくとioの時に一時的にRAM喰うからRAMは多めにつんどいたらいいと思うよ。
スワップすると重くなるよ。レンタルとかだったら基本的に限界は割り当てられたPHPのメモリ使用量じゃないかな。
ハンドラ使ってDBとかに保存するのも基本的にWEB層の制限を受けると思うよ。
ケースバイケースだけど。
間違ってたらごめんまだPHP初めて3日目だから...

598 :nobodyさん:2006/08/01(火) 17:38:12 ID:???
>>596
php.iniでの設定値次第だと思うけど、
PHPの配列等で確保できるメモリには上限がある(デフォルトで8MBだっけ?)
から、それを超えるような分量になってくるとメモリ確保エラーを起こすと思う。

599 :nobodyさん:2006/08/01(火) 19:11:32 ID:???
>>588
それができなかったらデータベース使う意味ないじゃん・・・・
いったい何のためにデータベース使ってるんだ

600 :nobodyさん:2006/08/01(火) 20:18:01 ID:CFVLtjTH
$str='123';
$str='1234';
$str='12345';
という変数があったとして、
これらの長さを一意にしたいのです。
(指定した文字列になるまで指定した文字で埋めたい)

strlenで長さ読んで、足りない分の文字を足せばいいのはわかっているのですが、もし関数になっていたら知りたいな、と思ってカキコしました。

そんな楽する関数はありますか? or 自分で関数作っちゃった方が良いですか?

601 :nobodyさん:2006/08/01(火) 20:18:46 ID:???
すみません。
× (指定した文字列になるまで指定した文字で埋めたい)
○ (指定した文字数になるまで指定した文字で埋めたい)

602 :nobodyさん:2006/08/01(火) 20:27:13 ID:???
>>600
sprintf

603 :nobodyさん:2006/08/01(火) 20:32:17 ID:???
>>600
str_padってのもある。空白以外で埋めたいならこちら。

604 :nobodyさん:2006/08/01(火) 20:35:20 ID:???
>>602
sprintfで対処できました。
http://jp.php.net/sprintf
ありがとうございました。

605 :nobodyさん:2006/08/01(火) 20:39:21 ID:???
>>603
こっちのほうが指定が簡単ですね。
処理速度計算して早いほう使ってみようと思います。

ありがとうございました。

606 :nobodyさん:2006/08/01(火) 22:20:27 ID:???
>>605
専用に実装された関数と、もっと汎用性のある関数じゃ比較しようも無いと思うがなぁ。

607 :nobodyさん:2006/08/01(火) 22:29:09 ID:???
Cだとprintfって結構重かったようなきがする

608 :nobodyさん:2006/08/02(水) 00:01:08 ID:???
文字列処理について質問があり・・・というか、ボスケテ!!

例えとして「sample.txt」というファイルには下記のようなテキストが入っています。
2ch;giko;nanasi;\n
test;test;test;\n

これを

$list=$file('../data/sample.txt');
foreach($list as $line){
$array_list_tmp[]=$line;
$n++;

}

で、1行ずつ$array_tmp[]にいれまして

$findme=';';
for($x=$begin;$x<=$end-($end-$n);$x++){
$mystring=$array_list_tmp[$x];
for($y=0;$y<=2;$y++){
$setcount=strpos($mystring,$findme);
$array_list[$x][$y]=substr($mystring,0,$setcount-1);
$mystring=substr($mystring,$setcount);
}
}


で';'が最初に見つかる桁までの値を取得して、';'は必要ないので値-1で必要な文字列だけを取得したいんですが。
変数の中身が1回目のループ分しか取得できず、あとは''になってます。
馬鹿にもわかりやすく易しい文字列処理の方法がありましたご教授して欲しいであります。

609 :nobodyさん:2006/08/02(水) 00:06:55 ID:???
>>608

$fdata = str_replace("\n", '', file_get_contents('../data/sample.txt'));
$mystrings = explode(';', $fdata);

何がしたいのかは知らんが。

610 :nobodyさん:2006/08/02(水) 00:40:54 ID:???
>>608
最初のforeachって意味あるの?

611 :nobodyさん:2006/08/02(水) 00:46:27 ID:???
ノートパソコンでもローカルサーバー作れましたっけ?

612 :nobodyさん:2006/08/02(水) 00:47:29 ID:???
>>608
お前のやりたい事はは>>609の二行で網羅できる。
もうちょっと落ち着いてみろ

613 :nobodyさん:2006/08/02(水) 01:00:43 ID:???
>>611
そりゃできるけど。

614 :nobodyさん:2006/08/02(水) 01:11:39 ID:???
>>609,612
どうもありがとうございます。
explodeがあったんですね、しかし今は頭煮立ってましてダメぽです・・・。
まだ初めて二日目なのでコツコツと試行錯誤してみます。

ソースの意味が良くわからないのに助言求めてすいません・・・。
とりあえず頭冷やしてから助言頂いたやり方でがんばってみます。

615 :nobodyさん:2006/08/02(水) 01:17:44 ID:???
>>605-607
Cの場合、他の一般的処理がめっぽう速いから、printf系みたいに
パラメータの文字列解析と可変引数を含む処理は相対的に遅くなるんだよね。
PHPの場合、変数の処理自体がその種の解析とメモリアロケーションを含むので
全体にCほど速くないからprintf系もさほど問題にならない。
実際、sprintfとstr_padだと1.5倍ほどsprintfの方が遅い程度。(Cだと10倍くらい違うので大問題)
このくらいなら500万回ループとかでもない限り「使いやすい方を使う」で全然問題にならないと思う。
(1000回くらい使っても0.001秒ほどしか差が出ない)

それでもとにかく速い方がいい、というのであれば、str_padの方が速いよ。当然だと思うけど。

616 :nobodyさん:2006/08/02(水) 01:19:51 ID:???
>>614
初めてまだ2日程度でいきなり他人に頼ろうと思ったこと自体が間違ってる。
もうちょっと自力で悩んでみ。

中学生がPHPを習得するスレ
http://pc8.2ch.net/test/read.cgi/php/1139746974/
とか
くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/
に行くのもいいかもね。

617 :nobodyさん:2006/08/02(水) 01:30:38 ID:???
>>614
むしろ、便利な関数に頼らず1度は文字列処理に頭を悩まし
アルゴリズムを色々考えた方が今のうちは勉強になるぞ。がんばれ。

618 :nobodyさん:2006/08/02(水) 01:32:25 ID:???
しかし凄いな。始めて2日という事は仕事で、というわけではないと思うが、
俺が学生の頃なんかプログラミングなんか全然やらなかったな・・・

619 :nobodyさん:2006/08/02(水) 01:35:26 ID:???
商業高校・工業高校辺りなら20年も前からプログラミングの授業くらい普通にやってるぞ。
「俺が学生の頃」って一体何十年前の話さ。

620 :nobodyさん:2006/08/02(水) 01:47:35 ID:???
すまなんだ。俺普通高だったんだ・・・
あの先生は元気かな・・・綺麗な人だった・・・
言っておくがまだまだ20代だぜ!

621 :nobodyさん:2006/08/02(水) 05:28:46 ID:FnbeRIVd
書籍を参考にPHP5.14をインストールしました。
動作確認として
<? phpinfo(); ?>
と書かれていて実行しても動作しませんでした。
あれこれ3日間悩んだあげく、別の書籍で、
<?php phpinfo(); ?>
とあり、問題なく動作させることができました。
「<?php」が「<?」のみであった記述は
バージョン違いで動作しなかったのか、書籍の間違いであったのか
未だにわかりません…どちらなのでしょうか?

622 :nobodyさん:2006/08/02(水) 05:58:04 ID:???
>>621
php.iniまたは.htaccessでshort_open_tagをONにしないと<? ?>形式は使えない。
標準ではこれはONになってるはず。(php.ini-distを使う場合)
アーカイブに同梱されているphp.ini-recommendedではXML併用対策としてOFFが標準になってる。
その書籍ではどのようにインストールするよう指示してる?

623 :nobodyさん:2006/08/02(水) 07:14:51 ID:1IWPQLfy
PHPからMYSQLにINSERT文を発行すると文字化けします。
いくつか調べて、「mysql_query("SET NAMES ujis");」ってのを用いれば直るとありましたが、
改善しません。
PHPは4.4.2、MySQLは4.1.19です。


624 :nobodyさん:2006/08/02(水) 07:25:17 ID:???
>>623
PHPでinsert文を組み立てるとき、データの文字コードは何にしてるの?
MySQLへの指定はそれに合わせないとダメだろう。闇雲にujisにしてもダメ。
まず、php.iniとmy.cnfでそれぞれ文字コードが何に設定されてるかを確認して
それを揃えるのが先決だと思う。
これが揃ってさえいればわざわざSET NAMESなんて発行する必要はない。
レンタルとかで、MySQLの設定を変更できない場合以外はまず不要なはず。

625 :623:2006/08/02(水) 08:29:31 ID:???
>>624
MySQLのデフォルト文字がujisで、
サーバ自体はレンタルという構成です。
なのでphp.iniがみれません。
INSERTする前の文字データはechoでみると文字化けしておらず、
INSERTしたデータをSELECTした結果を見ると文字化けしているのです。
UTF-8→EUC、SJIS→EUCとmb_convert_encodingでコード変換を試しましたが、
やっぱり文字化けが直りません。


626 :nobodyさん:2006/08/02(水) 09:06:00 ID:FnbeRIVd
>>623
php.iniでshort_open_tagは初期値のままOffになっていました。
書籍では部分に関する記述はなく、
Offのまま作業を行う流れであったため気づきませんでした…。
大変参考になりました。

627 :(^ω^):2006/08/02(水) 09:27:16 ID:???
>>625
php.iniの設定はphpinfo()を見ればわかる
それがダメなら一つずつini_get()すれば見れる
それよりも、まずどこで文字化けするか把握しないといけないから、PHPを通さずにSSHが使える鯖ならそこからMySQLにアクセスした方がいい。
それが無理ならローカルに同じ設定のPHPとMySQLを入れて実験。

鯖側がujisでPHPの文字コードもEUC-JPなら普通は何もしなくても通るはずだけど。
ujisよりeucjp-msを勧める。

628 :nobodyさん:2006/08/02(水) 10:06:55 ID:???
eucjp-ms って指定できるの MySQL 5.x.x以降じゃなかたっけ

629 :nobodyさん:2006/08/02(水) 11:53:55 ID:???
>>625
実はDBにはちゃんとinsertできてるのに、表示のときにEUC-JPのまま表示しちゃって
PHPの設定と噛みあってなくて文字化けしてるとかいうオチじゃないだろうな。
selectしたデータをさらにEUC-JPからUTF-8やSJISに変換してから表示してみてはどうよ?

つか、まずはphpinfo()の確認が基本だけどな。

630 :nobodyさん:2006/08/02(水) 11:55:28 ID:???
>>626
いや、short_open_tagのデフォルト値はOnなんだってば…
これがOffになってるのはチューニング済みのphp.ini-recommendedを使った場合のみだよ。
それがOffになってたんならお前のインストール方法が悪かっただけじゃないの?

631 :nobodyさん:2006/08/02(水) 13:17:36 ID:???
質問させて下さい。
windowsXP SP2にて
phpPHP 5.1.3
apache2.0

を導入し
// ループ1
while (1) {
// ループ2
while (1) {
$hoge = 1
if ($hoge) {
// ループ1からやり直し
}
}
}
このようなルーチンを書きたいのですが、この場合どのような関数を使用すれば良いのでしょうか?
PHPマニュアルを読んでbreak 1 や、continue 1 をしたのですが、思い通りに動いてくれません。
アドバイス頂ければ助かります。よろしくお願いします。

632 :nobodyさん:2006/08/02(水) 13:19:50 ID:???
>>631
まずは >>6 を読む。
そして、思い通りに動かないというソースを貼る。

633 :nobodyさん:2006/08/02(水) 13:22:44 ID:???
>>631
特に問題はない。
思い通りに動いてないというのは貴様の勘違いだ

634 :nobodyさん:2006/08/02(水) 14:21:06 ID:???
>>631
思い通りに動いてないというのは思い通りに動くように書いてないというだけだ
マニュアル読めば万事解決

635 :nobodyさん:2006/08/02(水) 14:40:37 ID:???
>>631
普通にbreakやcontinueでいいと思う。関数は要らない。
ひょっとしてbreak 1じゃなくbreak 2が希望の動きなんじゃない?

636 :635:2006/08/02(水) 14:41:14 ID:???
違った。continue 2が希望の動きじゃない?の間違い。

637 :nobodyさん:2006/08/02(水) 14:55:18 ID:???
コメントスパム対策で日本語(or マルチバイト)が含まれるかを判定したくて以下のように
しましたが、「あああ」というコメントでも弾かれます。
日本語が一切含まれない場合に弾くという処理をしたいのですが、どうすればよいでしょうか。

if (!preg_match("/^[あ-ン]+$/", $comment)) {
die('japanese only');
}

638 :nobodyさん:2006/08/02(水) 15:02:18 ID:???
>>637
激しくガイシュツだ。このスレを読め

639 :nobodyさん:2006/08/02(水) 15:03:13 ID:???
>>638
mb_strlen == strlen

640 :nobodyさん:2006/08/02(水) 15:09:01 ID:???
>>638
以下の文字でこのスレッドを検索しましたが出てきません
昔のスレッドでしょうか?

コメント、スパム、spam、preg、マルチバイト…

641 :nobodyさん:2006/08/02(水) 15:13:43 ID:???
>>637
>>6

642 :nobodyさん:2006/08/02(水) 15:21:28 ID:???
>>638
過去スレじゃなかったっけ?

643 :nobodyさん:2006/08/02(水) 15:22:20 ID:???
>>637
preg_matchはマルチバイト対応じゃないから[あ-ン]なんて指定はムリだよ。

644 :nobodyさん:2006/08/02(水) 15:49:44 ID:???
>>641
ID表示にしました。

>>643
あ、なるほど…
googleでも1時間程検索したのですが、全くヒットしないんです。
検索用語は、

PHP 日本語 コメント コメントスパム spam マルチバイト

検索用語だけでもいいので何かアドバイス頂けないでしょうか。




645 :637:2006/08/02(水) 15:50:53 ID:RhHoIqr9
ID表示の仕様がわからなかった…再度表示です。
#2chブラウザ利用してるとデフォルトでなるからいつも忘れてしまう…

646 :nobodyさん:2006/08/02(水) 15:59:05 ID:???
>>644
お前は、>>639が目に入らないのか?

647 :nobodyさん:2006/08/02(水) 16:09:46 ID:???
>>646
目に入ったのですが、どういうことかよくわからないです。

長さを求める関数なのは知っていますが、それでどのように日本語のみ、又は
アルファベットのみを判定するのかが想像もつかないです…

あー、今わかりました…

strlen と mb_strlenの長さが違えば、マルチバイトということですか。

ありがとうございました。

648 :nobodyさん:2006/08/02(水) 16:12:50 ID:???
>>647
あれ、そうかと思ってやってみましたが、ダメでした…
どちらもdieします。

if (strlen($comment) == mb_strlen($comment)) {
die('japanese only');
}

649 :nobodyさん:2006/08/02(水) 16:36:00 ID:RhHoIqr9
>>648
すみません。こちらのミスでできたようです。

$commentが何もない時に通っていました。 orz...





650 :nobodyさん:2006/08/02(水) 16:38:12 ID:???
文字列が短くても誤動作する。
できればencodingを追加しておく方がよい。

651 :nobodyさん:2006/08/02(水) 16:44:05 ID:???
>>650
と言いますと…

$comment = mb_convert_encoding($comment, '内部エンコーディング?'');

を直前に入れるという理解で良いでしょうか?

652 :nobodyさん:2006/08/02(水) 16:46:00 ID:???
やれば分かることを・・・

653 :637:2006/08/02(水) 16:48:38 ID:RhHoIqr9
>>651
これか…
mb_strlen ( string str [, string encoding] )

デフォルトが内部エンコーディングだから…うーん、よくわからないですけど
とりあえずそのままでも動いているので良いかな…



654 :nobodyさん:2006/08/02(水) 18:41:31 ID:???
いや、オフィシャルからDLしてshort_open_tagは変更していないから
なにかおかしいと思ってもう一度確認した。
やはりshort_open_tagはデフォルトでOffだった。
今の最新バージョンではデフォルトでshort_open_tagがOffになっている?

655 :nobodyさん:2006/08/02(水) 18:49:43 ID:???
オブジェクトの中の
値を変更するには
メソッドを必ず用意しなければいけないのですか?

変数の代入みたいにできませんか?

656 :nobodyさん:2006/08/02(水) 18:52:30 ID:???
>>655
できる。

657 :nobodyさん:2006/08/02(水) 21:26:11 ID:GYqJmd1r
すいません、スレ違いかも知れないのですがよろしかったら教えて下さい。
いまDBを使った投稿者に対し複数レスがつけられる掲示板を作っているんですが、投稿者用とレス用のテーブルを作ったんですが、どの様に表示すれば良いのかいまいち解りません。。
よろしくお願いします。。

658 :nobodyさん:2006/08/02(水) 21:33:32 ID:???
同じテーブルでいいんじゃない。

659 :nobodyさん:2006/08/02(水) 21:35:18 ID:???
あぁ、フィールドが親とレス全然違うなら別の方がいいけど。
表示ってそのまま親取ってきて、レス取って来ればいいのかと。
この場合JOINさせてもあんまり意味ないし。

660 :nobodyさん:2006/08/02(水) 21:59:29 ID:???
クラスに
どんなメソッドがあるか
まとめて調べる方法はありませんか?

661 :nobodyさん:2006/08/02(水) 22:01:24 ID:???
>>657
スレとレスのテーブルは同じで出来るんじゃない?
全ての投稿にid付けて、例えばスレのIDが「2」なら、そのスレのレスのIDは「2-1」「2-2」「2-3」...とか。
そのレスのレスのIDは「2-2-1」「2-2-2」...
あとはSELECTのWHEREオプションでうだうだやって。。


662 :nobodyさん:2006/08/02(水) 22:21:20 ID:???
>>661
そんなややこしい ID にすると SQL 一発で結果を得るのが難しくなるよ。
親記事の ID をそれぞれに持たせるだけで良いと思うよ。
親自体の親 ID は NULL で。

663 :nobodyさん:2006/08/02(水) 23:33:49 ID:???
>>659>>661
できるできないで言ったら同じテーブルでできると思うけど、
形式が違うor異なった拡張を考えているなら違うテーブル設計はアリだと思うな。

掲示板の表示はそもそもどういう風に表示したいのかが分からんので何とも。
投稿者表示が固定件数で、それに対してレスを全部表示、って形なら
$result1 = mysql_query("select * from 投稿者用テーブル order by 日付 limit 件数", $conn);
while($投稿者データ = mysql_fetch_assoc($result1)) {
 投稿者データ表示($投稿者データ);
 $result2 = mysql_query("select * from レス用テーブル where レス元 = '$投稿者データ[ID]' order by 日付", $conn);
 while($レスデータ = mysql_fetch_assoc($result2)) {
  レスデータ表示($レスデータ)
 }
}
ってのを基本形にアレコレすればふつーにできると思う。

664 :663:2006/08/02(水) 23:34:48 ID:???
あ、>>658>>659を読み間違った。
>>659は俺と同じこと言ってるね…

665 :nobodyさん:2006/08/02(水) 23:42:01 ID:???
>>654
Complete Source Code PHP 5.1.4 (tar.gz)

Windows Binaries PHP 5.1.4 zip package
の両方ともを今ダウンロードしてきて確認したが、
どっちもphp.ini-dist(デフォルトのphp.ini)は short_open_tag = On になってたよ。
何か勘違いしてると思う。


666 :nobodyさん:2006/08/03(木) 00:07:55 ID:???
>>660
get_class_methods


667 :657:2006/08/03(木) 00:45:35 ID:???
皆さんレスありがとうございます。
テーブルは一つで出来るんですね。
分けないといけないと思い込んでました。。
それでソースを書いていただいた>>663さんには大変申し訳ないのですが、テーブル一つでやりたいと思うんですが、やはり表示の仕方がいまいち解りません。。
>>661さんや>>662さんが教えていただいたやり方で考えているんですが、PEAR::Pagerと絡ませた場合どうすればいいのか。。
何度も何度も質問すみません。。


668 :nobodyさん:2006/08/03(木) 00:55:55 ID:???
別途親記事だけの記事数を取得する。

669 :nobodyさん:2006/08/03(木) 01:27:26 ID:???
>>667
基本中の基本も理解してないうちからPEAR::Pagerを使うのはやめた方がいいと思う。
いつまでもアルゴリズムのなんたるかを理解できないまま進んでしまうぞ。
そういうのは、最低限当たり前のことができるようになってから挑戦しよう。

670 :nobodyさん:2006/08/03(木) 01:53:06 ID:???
テーブルを分けておくと拡張性高くなるが
自分の能力を簡単に超えやすい
(手に負えなくなりやすい)
(メンテ大変)

671 :nobodyさん:2006/08/03(木) 01:59:50 ID:???
>>667
複数階層のレスができるのか親子関係が1世代しかないスレッド式なのかで変わる。
たぶん後者の方が簡単。

ついでに。テーブル一つでやりたいってのはJOINが分からないとかのスキル不足から来るものだと思うけど、
(普通しないものを)無理矢理1テーブルにするってのは更に高いスキルを無駄に要求されると思うよ。

672 :nobodyさん:2006/08/03(木) 02:06:24 ID:???
>>671
> ついでに。テーブル一つでやりたいってのはJOINが分からないとかのスキル不足から来るものだと思うけど、
そうか? 「記事」って単位で考えると、親も子も同じものだし、分ける方がおかしいと思うけど?
スレッド式だったらスレッドの階層毎に別テーブルにする? 親だけ分離?

673 :671:2006/08/03(木) 02:31:31 ID:???
>>672
663の2テーブルのサンプルを見た後で1テーブルでしたいってのはそういうことかなと勝手に推測してね。
1テーブルに纏めると面倒ってのはスレッド式を想定したよ。例えばスレタイ。 PHP関係なくてすまそ。

674 :nobodyさん:2006/08/03(木) 02:34:57 ID:???
あ〜、俺ならテーブル分けるかな〜。

記事IDとかをプライマリにして、親記事テーブル→子記事テーブル
ただ、高々ツリーのスレッドを生成するだけだから一つのテーブルにしてもテーブル分けても速度は全然
気にならないだろうな。
もしテーブルを一つにするなら親レコードなのか子レコードなのかを判断するフラグみたいなの持たせなきゃ
ダメだよな?
なんかそれは気持ち悪い

675 :nobodyさん:2006/08/03(木) 02:35:24 ID:CT8bx9Pd
ツリー構造つくるんだったら、ファイルシステムみたいに


676 :nobodyさん:2006/08/03(木) 02:49:12 ID:???
>>674
親記事1
├子記事1
│├孫記事1
│└孫記事2
└子記事2
親記事2


みたいな記事のツリー構造はどうするつもり?
親と子と孫で 3 テーブルか?
なんか皆想定している掲示板のスタイルが違うから話が噛み合っていない感じ。

677 :nobodyさん:2006/08/03(木) 03:06:20 ID:???
>>676の言う孫まで繰るような場合を想定すると、
「どの親記事に対する子なのか」を表すカラムが必要になるな

678 :nobodyさん:2006/08/03(木) 04:14:00 ID:???
記事ID 親記事ID
1 null
2 null
3 1
4 null
5 2
6 2
7 null
8 5
9 5

679 :nobodyさん:2006/08/03(木) 04:16:39 ID:???
掲示板と一口に言っても千差万別なんだから設計に色々あるのは当たり前だよ。
中にはblogみたいに親記事とレス記事じゃ全然情報量の違うものだってあるんだし。
そんなんここで語り合ってもしょーがないだろ、おまいら。

680 :nobodyさん:2006/08/03(木) 04:33:31 ID:???
そうだな。PHPじゃなくてアルゴリズムの話題になってるな。
そろそろ仕切り直そうか。

681 :nobodyさん:2006/08/03(木) 06:44:24 ID:???
つか最初からスレ違いだったけどな

682 :nobodyさん:2006/08/03(木) 07:49:46 ID:???
>>665
php.ini-recommendedの方を使ってるんだと思う

683 :nobodyさん:2006/08/03(木) 08:01:51 ID:???
>>682
recommended側が本来のデフォルトと違ってOff設定だってのは
すでに>>622>>630で説明済みなんだけどな。理解できてないんかね。

684 :nobodyさん:2006/08/03(木) 09:31:48 ID:???
>>680-681
「スレ違い厨」ウザい。

685 :nobodyさん:2006/08/03(木) 09:51:32 ID:???
「命名厨」ウザい。

686 :nobodyさん:2006/08/03(木) 10:01:38 ID:???
>>684
「無法容認厨」ウザい

687 :nobodyさん:2006/08/03(木) 10:35:14 ID:???
>>686
「オレ様が法律だ厨」ウザい

688 :nobodyさん:2006/08/03(木) 10:39:05 ID:???
「ウザい厨」ウザい

689 :nobodyさん:2006/08/03(木) 11:15:44 ID:Uv0OTJUq
コマンドライン版のスクリプトでSESSION使うことは出来ますでしょうか?

690 :nobodyさん:2006/08/03(木) 11:21:03 ID:???
>>689
試してみればいいじゃないか

691 :nobodyさん:2006/08/03(木) 12:22:22 ID:N4ArK+AW
質問です。宜しくお願いします。
以下のようなPHPがあるのですが、送信した後に「test.txt」の内容を「text111=○○」という形式にしたいのですが、
<input type="hidden" name="text111" value="text111=">
というのを<form〜>のすぐ下にいれるといいのだと思いますが、
phpのところでtext111とcontentsをつなげて送るにはどう書いたらいいのでしょうか??

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#006666">
内容を書き込み、送信 <br>

<form method="post" action="post.php">
<input type"text" name="contents" value="" size="50" maxlength="256">
<br><br>
<input type="submit" name="submit" value="送信">
</form><br>
<?php
ini_set("mbstring.internal_encoding","UTF-8");
$filename = "test.txt";
if(isset($_POST['submit'])){
print("内容: ".$_POST['contents']);
$file = fopen($filename, "w");
flock($file, 2);
fwrite($file, $_POST['contents']);
flock($file, 3);
fclose($file);
}
?>
</body>
</html>

692 :nobodyさん:2006/08/03(木) 12:32:19 ID:P5/NaZ/f
http://m-pe.tv/u/page.php?uid=somari&id=1

693 :nobodyさん:2006/08/03(木) 12:53:29 ID:???
perlで複数行あるファイルから1行をランダムで抜き出す書き方として、以下のような方法があります。
http://www.din.or.jp/~ohzaki/perl.htm#File_Random より転載
ファイル全体をメモリに読み込まないので少ないメモリで実行出来る利点があります。

srand;
open(FILE, "< $file");
rand($.) < 1 and $line = $_ while <FILE>;
close(FILE);
print $line;

file()で読み込んでshuffle()すれば一番楽なのは分かってますが、
これをPHPで書いた場合、どのようになるでしょうか?

rand($.) < 1 and $line = $_ while <FILE>;
問題なのは↑の1行だけなのですが、perlの経験がない為悪戦苦闘してます。

694 :nobodyさん:2006/08/03(木) 12:54:11 ID:???
8C160が糞元気に腐ってる
馬鹿だなw

今日の欧州、ポンド金利
明日の雇用統計
SQ前日のFOMC

変態相場で16500を超えるというのに

695 :nobodyさん:2006/08/03(木) 12:58:40 ID:ze0QfgtL
すみません。PHPの文字化けについて、教えて下さい。PHPファイルは全てUTF-8
で保存し、どのPHPファイルも、最初に
header('Content-Type: text/html; charset=UTF8');
と宣言しています。

これで、殆どのところは文字化けせず、ブラウザ(IE6.0)の「表示」−「エ
ンコード」を見ると、「日本語 (UTF-8)」となっています。
 ところが、「exit("エラーです");」と書くと、「エラーです」の部分が文
字化けしてしまうのです。ブラウザ(IE6.0)の「表示」−「エンコード」を
見ると、「日本語 (シフト JIS)」となっています。もちろん、クライアン
トの私が、「表示」−「エンコード」を「日本語 (UTF-8)」に直せば、文字
化けはなくなります。
 けれども、このサイトは、一般の人達にも見せるものですので、一般の人達
にわざわざ「表示」−「エンコード」を「日本語 (UTF-8)」に直させること
は出来ないのです。
 どなたか、「exit("エラーです");」が最初から文字化けしないで済む方法
をご存知でしょうか?教えて下さい。宜しくお願い致します。

696 :nobodyさん:2006/08/03(木) 13:19:32 ID:???
charset=UTF-8

697 :nobodyさん:2006/08/03(木) 13:19:58 ID:???
exit("errorです");

にする

698 :nobodyさん:2006/08/03(木) 14:09:08 ID:???
英語っていいよね

699 :nobodyさん:2006/08/03(木) 14:14:23 ID:ze0QfgtL
>>696

>>695です。ありがとうございます。「UTF8」を「UTF-8」に直したら、
文字化けが直りました・・・。

皆様、下らないことで質問してしまい、申し訳ございませんでした・
・・。 (^_^;)

700 :nobodyさん:2006/08/03(木) 14:25:42 ID:???
>>693
そのページにアルゴリズムの解説と、もっと分かりやすい書き方のサンプルもあるじゃないか。
分かりやすいバージョンをそのままPHPに直せば済む話じゃないの?

701 :nobodyさん:2006/08/03(木) 14:26:09 ID:???
下らねぇ質問をするスレなんだから気にするな

702 :nobodyさん:2006/08/03(木) 14:31:58 ID:???
>>691
> fwrite($file, $_POST['contents']);
ここを
fwrite($file, "text111=" . $_POST['contents']);
にするだけ。


頼むから宿題は自分でやろうな?

703 :質問:2006/08/03(木) 14:53:22 ID:QMvWQHpP
質問があります
phpでrssのフィードを自動生成するプログラムを作ろうと思い、
取りあえず手書きのフィード(http://up2.viploader.net/pic/src/viploader250918.jpg)を
phpで表示させてみようと(http://up2.viploader.net/pic/src/viploader250915.jpg
のようにしてみたのですが
http://up2.viploader.net/pic/src/viploader250916.jpg)のように表示されてしまい、
成功しません。なんだかかなり根本的なミスをしている気がするんですが
ご指導よろしくおねがいします
ちなみに(http://up2.viploader.net/pic/src/viploader250917.jpg
のように表示させたかったんです。


704 :nobodyさん:2006/08/03(木) 15:09:32 ID:???
PHP学べる通信または通いのスクール教えてください。
10万以内で講師がレベル高いところが良いです。

705 :nobodyさん:2006/08/03(木) 15:11:42 ID:???
>>704
あなたには100万かかるスクールも無意味なのでプログラムはあきらめてください


706 :nobodyさん:2006/08/03(木) 15:15:32 ID:???
>>705
貴方よりレベル高いと思いますょ
ただ、個人でやっていても頭打ちの感があるので。。。
お願い致します。

707 :nobodyさん:2006/08/03(木) 15:21:25 ID:???
>>706
じゃ何が知りたいか書いてくれ

708 :nobodyさん:2006/08/03(木) 15:27:44 ID:???
>>706
少なくとも質問の仕方はレベル低いね

709 :nobodyさん:2006/08/03(木) 15:35:59 ID:???
何を知りたいか、ではなく
何を学べるのか、だと思いますが。。

個人レベルではなく、
プロのレベル・スピードで、勉強したいということですね

710 :nobodyさん:2006/08/03(木) 15:36:22 ID:???
>>703
<>を$quit;みたいなのに直せばいいんじゃね?
よく覚えてないが

711 :nobodyさん:2006/08/03(木) 15:40:32 ID:???
>>708
質問にレベルが高い・低いなんてあるんでしょうか?
聞きたいことを聞くのが質問であって、
レベルの高さを競うものではないと思います。

>>705さんがいきなりいちゃもんつけてきたので
>>706は少し言い過ぎました。
申し訳ないです。

もしスクール等、
受講されてる方・過去に受講した方・その筋に精通している方
いらっしゃいましたらお願い致します。

712 :nobodyさん:2006/08/03(木) 15:41:20 ID:???
>>711
PHPするなら独学で十分なはず
良かったら一緒に勉強しないか?

713 :nobodyさん:2006/08/03(木) 15:41:34 ID:???
>>703
header("Content-Type: application/xml; charset=utf-8");
を先頭に追加。

714 :nobodyさん:2006/08/03(木) 15:44:07 ID:???
PHPごときで頭打ちとかワロスw
OSの根幹に入るようなスクリプトじゃないんだからw

715 :nobodyさん:2006/08/03(木) 15:44:46 ID:???
>>711
じゃ、スクールを提案しろって言われて、そもそもどこ住んでんのさって話よ。
福岡で良いなら教えてあげるけど? どーせ、東京でとか言い出すんでしょ?
「10万以内」って何さ? 時給? 日給? 一回のレッスン料? 円か?

716 :nobodyさん:2006/08/03(木) 15:51:54 ID:???
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

717 :nobodyさん:2006/08/03(木) 15:53:51 ID:???
>>712さん
もし神奈川(渋谷)近郊ならお願いしたいです。
サーバに関する知識は全く持ち合わせていませんし、
一人では張り合いがないっていうか。。(;ω;)

>>714
卑下するくらいなら別のスレいったほうがいいですよ
批判なんて誰でもできるんだから
>>715さん
ありがとうございます。
ただ、福岡はちょっと遠いです(><;
ありがとうです。

718 :nobodyさん:2006/08/03(木) 15:57:35 ID:???
>>711
質問自体にレベルの差は無い。
が、質問のし方にはレベルの高低が存在する。
>>704の質問の仕方はレベルが低いと言われても当然
で、そういうことに頭が回らない人間とは仕事を一緒にしたくないのが一般的だと思う。
なので、PHPを勉強するより先に社会勉強をお奨めします。

719 :nobodyさん:2006/08/03(木) 16:01:54 ID:???
>>717
卑下されたと思ったのか。そういう意味ではなかったんだが。
たしかに、PHPを卑下したことにはなるかもしれんが。

720 :nobodyさん:2006/08/03(木) 16:09:54 ID:???
>>717
あのさ、逆切れ結構だけど何で自分が叩かれてるか位は理解しようよ。
つまり板違いなのね。

721 :nobodyさん:2006/08/03(木) 16:16:41 ID:???
Complete Source Code PHP 5.1.4 (tar.gz)

Windows Binaries PHP 5.1.4 zip package
って、どういう違いがあるんですか??


722 :nobodyさん:2006/08/03(木) 16:20:53 ID:???
>>718さん
確かに少し幼稚な書き方でした。
反省します。

723 :nobodyさん:2006/08/03(木) 16:29:14 ID:???
ファイルをアップロードしたいのですが、スクリプトを参考にしながら
<?
$dir = './pic/';
if($_POST['Submit'] == "送信"){
$img= $_FILES['file'];
$img_type= $_FILES['file']['type'];
$img_tmp= $_FILES['file']['tmp_name'];
$img_error= $_FILES['file']['error'];
$img_size= $_FILES['file']['size'];
if(is_uploaded_file($img_tmp)){
echo "アップロード開始します。<br />\n";
$writename = "test.jpg";
if(move_uploaded_file($img1tmp,$dir.$writename)){
echo "アップロード完了<br />\n";
}else{

echo "アップできませんでした<br />\n";
}

}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<label>
<input type="file" name="file">
</label>
<label>
<input type="submit" name="Submit" value="送信">
</label>
</form>
としたのですが、アップロードできません。どこが間違っているのでしょうか?ちなみにディレクトリはあります。

724 :723:2006/08/03(木) 16:44:59 ID:???
すみません、アップロードに初挑戦だったため、
基礎的な部分で間違っていたのに気づきませんでした(自己解決)

725 :nobodyさん:2006/08/03(木) 16:48:56 ID:???
誰にでもあることだ。気にするな。

726 :nobodyさん:2006/08/03(木) 17:27:59 ID:???
あー、質問自体にもレベルの差はあるだろうよ

727 :nobodyさん:2006/08/03(木) 17:46:29 ID:???
まぁ頭のいい奴なら、煽られてもスルーするはずだけどな。全部レスしてるし。つまり頭はたいして良くないということがわかる。







で、これにもレスをしようと思ってるはずだwしかし、これを見て止める。

728 :nobodyさん:2006/08/03(木) 17:52:33 ID:???
>>704

googleで「PHP スクール」で検索すれば、大量に見つかりますよ。
渋谷のレベルの高いスクールも、すぐに見つかります。

色々叩かれていますけど、いちいち相手にしていると、面白がられ
るだけです。叩かれても、「相手にしない」ということが大切です
よ。

729 :nobodyさん:2006/08/03(木) 18:00:17 ID:???
PHPがKillされたときって、register_shut~()とか__destruct()って呼ばれないの?
pcntlでシグナル拾ってても、親がKillされるとだめ?
つまるところ、Killされた場合に行う終了処理をPHPで記述するにはどうすればいいの?

730 :軟式PHP:2006/08/03(木) 18:22:00 ID:???
>>704
スクールに通うよか、安月給でもいいから関連会社で働いたほうがいいんでない?

731 :nobodyさん:2006/08/03(木) 18:27:18 ID:???
>>704
PHPみないな高級言語じゃ君は満足できないだろうからアセンブリ辺りやってみるといいと思うよ。

732 :nobodyさん:2006/08/03(木) 18:27:47 ID:???
>>728
叩かれる理由が明白なだけに擁護する要素が皆無

叩かれるべくして叩かれてるんだし、しゃーねーべ

733 :nobodyさん:2006/08/03(木) 18:42:05 ID:???
>>732 お前のように学習しない馬鹿はいつまでも同じことをして叩かれ続けるのさ

734 :729:2006/08/03(木) 18:43:23 ID:???
自己解決していませんが解決したことにしました本当にあり(ry

735 :nobodyさん:2006/08/03(木) 18:45:39 ID:???
ちょwいみわかんえw

736 :nobodyさん:2006/08/03(木) 18:54:33 ID:???
      <⌒/ヽ-、___
    /<_/____/
     ̄ ̄ ̄ ̄ ̄ ̄ ̄

    w <⌒/ヽ-、_ww_
 ww /<_/____/ ww
    WWW  ̄ ̄ ̄ ̄ WW

  wwww<⌒/ヽw、_wwwww w
 w www<_/_wwwww/wwwww
  WWWWWWWW ̄ ̄WWWWWW

_______________ノ
      ○o。
   ガバッ :∧_∧: 
       :(;゙゚'ω゚'):  
      〃:/ つ/(___
    / ̄└-(____/

737 :nobodyさん:2006/08/03(木) 19:06:40 ID:???
はいはい次の質問どうぞ。

738 :nobodyさん:2006/08/03(木) 19:12:48 ID:???
PHPってなんですか?

739 :nobodyさん:2006/08/03(木) 19:14:00 ID:???
http://www.php.co.jp/

740 :nobodyさん:2006/08/03(木) 19:14:34 ID:???
>>739
わからないので3行で説明していただけませんか?

741 :nobodyさん:2006/08/03(木) 19:15:54 ID:???
<?php
echo 'サーバサイドスクリプト';
?>

742 :nobodyさん:2006/08/03(木) 19:17:28 ID:???
このスレ、草生えすぎ!!



WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

743 :nobodyさん:2006/08/03(木) 19:19:03 ID:???
>>740
Peace and Happiness through Prosperity

744 :703質問:2006/08/03(木) 19:38:27 ID:QMvWQHpP
>>703で質問した者ですが、
>>710>>713さんの言うとおり(http://up2.viploader.net/pic/src/viploader251232.jpg
のようにしてみたところ
http://up2.viploader.net/pic/src/viploader251234.jpg
このように表示されて、まだうまくいきません。
重ねてよろしくお願いします

745 :nobodyさん:2006/08/03(木) 19:43:38 ID:???
とりあえず1行目の改行を削除しろ
header already sentはFAQだからググれば出てくるだろ
&lt gt; は<>に戻すんだ

746 :nobodyさん:2006/08/03(木) 19:52:13 ID:???
何か根本的な間違いをしていると思うな・・・
一行づつprintする意味はあるの?

747 :nobodyさん:2006/08/03(木) 19:56:44 ID:???
つか、DOM系関数使えばいいんでない?

まぁPHP初心者にはハードルが若干高いが

748 :(^ω^):2006/08/03(木) 19:59:34 ID:???
<?php
header("Content-Type: application/xml; charset=utf-8");
?>
<xml version="1.0" encoding="UTF-8">
<rss version="2.0">
<channel>
(略

749 :nobodyさん:2006/08/03(木) 20:19:43 ID:???
http://www.example.com/hogehoge/index.php/12345/

この状態で$_SERVER['PHP_SELF']を行うと

/hogehoge/index.php/12345/

と出力されるのですが

/index.php/12345/

と出力させる方法はないのでしょうか?

750 :nobodyさん:2006/08/03(木) 20:35:37 ID:???
file()って../../hogehoge.txtとか無理なの?

751 :nobodyさん:2006/08/03(木) 20:37:42 ID:???
$file = $c_dir."p/".$url."/".$data[user];
echo "<A href=\"".$file."\">Link</A>";

print_r(file($file));

って書いたのに、
リンク先はまともに飛ぶのにfile()使ったらエラーでるもうだめぽ

752 :nobodyさん:2006/08/03(木) 20:58:09 ID:???
>>749
たとえば、echo '/' . strrchr($_SERVER['PHP_SELF'], basename(__file__)); とか?

>>751
独り言はチラシの裏でやるんだ

753 :703質問:2006/08/03(木) 20:58:38 ID:QMvWQHpP
>>745-747さん本当にありがとうございました。
お蔭様でrssをphpで表示させることができました。
あとは普通にプログラムを組んで
フィードを自動生成するphpを作るだけです。
もう基礎は作りおわっているので、完成まで時間の問題です。
本当にありがとうございました。


754 :nobodyさん:2006/08/04(金) 00:31:10 ID:???
>>609
609氏、どうもありがとうざいます、608です。
609氏のソースをPHPマニュアルで調べてやっと理解しました。
お陰様で無事にHTMLのコンテンツ自動生成が出来ました。
意味不明な質問に的確に答えて頂きましたこと、重ねて感謝致します。
どうもありがとうございました。
ちなみに私は学生じゃありません、馬鹿な大人でごめんなさい。

755 :nobodyさん:2006/08/04(金) 03:00:06 ID:???
>>709
一般的なPHPの「プロ」のレベルは恐ろしく低いから、多分独学でも全然問題ない。

ただ、これが「優秀なプロ」ということだと話は全然違う。
少なくとも学校でそんな勉強ができるとこは存在しない。
プロの現場でもごく一部に限られるので、そこにうまく入社するのは運と実力両方が必要だと思う。
まずスキルと実績を身につけて、がんがん転職を繰り返して最良の会社を探すことだと思う。

そもそも、優秀なプロの多くはPHPをあえて選択したりしない。
自分で選択したのではなく、業務の事情等からPHPを選択させられただけの話。

756 :nobodyさん:2006/08/04(金) 03:12:41 ID:???
>>709
将来的にWebPG開発業務に携わりたいと思ってるんだろうから、
どうせ金をかけるならJavaでも学んだほうがよほどましだと思う。
10万でどこまで学べるかといったら限られるだろうけどな。
少なくとも通信じゃ独学とさほど変わらない。
一般的にPGなんかは実績を重視されるわけで、
PGとしての業務経験がない場合は、採用してくれるかは微妙なところ。
それでも小さい会社なんかはチャンスはあるからまずはそういうとこから入るべし。

757 :nobodyさん:2006/08/04(金) 03:14:19 ID:???
>>721
> Complete Source Code PHP 5.1.4 (tar.gz)
> と
> Windows Binaries PHP 5.1.4 zip package
> って、どういう違いがあるんですか??

上はPHPのC言語ソース。自分でコンパイルして使う。
下はWindows専用のコンパイル済みPHP。そのままインストールして使えるが
特定のコンパイルオプションが必要な機能などは使えない。

758 :nobodyさん:2006/08/04(金) 03:19:21 ID:???
>>750
普通にできるが。

759 :nobodyさん:2006/08/04(金) 03:28:19 ID:???
>>750
パーミッションがダメなんじゃない?

760 :nobodyさん:2006/08/04(金) 04:42:26 ID:???
>>755
>そもそも、優秀なプロの多くはPHPをあえて選択したりしない。
普通に優秀な人なら何を選ぶのか教えてもらっていい?
ASPとか?

761 :nobodyさん:2006/08/04(金) 05:06:47 ID:???
Javaじゃないの?C#も増えてるみたいだけどさ。

762 :nobodyさん:2006/08/04(金) 06:12:15 ID:???
webprogなら普通にJavaだな。
webの領域を超えるにしてもJavaは対応できる。
webにこだわらないならC++でもやっとけばいいよ。

763 :nobodyさん:2006/08/04(金) 07:30:42 ID:???
アンケートフォームくらいならPHPを選択する。
ColdFusion+フロントエンドにFlashってのもたまにやる。


764 :nobodyさん:2006/08/04(金) 07:36:35 ID:???
と、ヘボい仕事しかしてないプロが申しております。

765 :nobodyさん:2006/08/04(金) 07:49:16 ID:???

Webアーキテクチャは電子証明書やICカードReaderなどの外部IFを必要とするもの
以外は、スクリプト言語(PHP+JacaScript)でできる
まぁ直に電子証明書や外部IFもPHPで楽にできるさ




766 :nobodyさん:2006/08/04(金) 08:06:25 ID:???
>>765
できるできないじゃないと思うんだ。

767 :nobodyさん:2006/08/04(金) 08:16:40 ID:???
とJavaの理解できないJava厨が申しております。

768 :nobodyさん:2006/08/04(金) 08:45:19 ID:???
>>766
言いたいことはわかるよ
それを理解した上で言う

クライアント「これさぁー Rubyで作ってよ?」
俺「Rubyですか 何か理由があるんでしょうか?」
クライアント「だってさー 日本人が作ったものなんでしょう やはり国産を応援したくなるでしょう」
俺「なるほど〜 了解しました 社に持ち帰って検討してみます」

そして帰りに本屋に立ち寄り「はじめてのRuby」を立ち読みする
人生、思ったとおりにはいかんものだなw

769 :nobodyさん:2006/08/04(金) 08:50:42 ID:???
状況に応じて安全でコストのよりかからない方法を選択できる方がいい。
が、「状況」は色々だからあえてPHPを選択する事もあれば、
仕方なくJavaを選択する事もある。
フレームワークが指定されてることもある。

ヘボいのは選択肢の少ないプログラマだ。

770 :nobodyさん:2006/08/04(金) 09:10:38 ID:???
選択肢っていっても言語という意味あいなら少なくて当然じゃないだろうか。
PerlもJavaもPHPもRubyもとにかくなんでもできます!
なんていうやつは逆に使えなさそうだ。
選択肢は少なくとも、極めるこそ価値がある。

771 :nobodyさん:2006/08/04(金) 09:20:30 ID:???
そろそろやめないか?
Java 出来るやつ全てがプロじゃないのも自明だし
PHP やってるやつが全てアマじゃないのも自明

772 :(^ω^):2006/08/04(金) 09:57:26 ID:???
Java、PHP、Perl、C#以外で作れと言われたら技術者が少なくて云々とか理由をつけて、強引に納期を倍にするか言語を変えさせる先輩。
一日中PHPと向き合って勉強する気があるなら独学でも十分。

773 :nobodyさん:2006/08/04(金) 10:06:02 ID:???
>>772
> Java、PHP、Perl、C#以外で
って言われたら、実際問題技術者は少ないでしょ。
現実的には C、Ruby、Python くらいしかないから Ruby が良いかなとも思うけど
Ruby もまだまだ使える場所が限られてるからねぇ。
あぁ、C# もありってことは、ASP(.NET)を含むのかな?
じゃあ、ある意味やれる技術者は多そうだけどね。

774 :nobodyさん:2006/08/04(金) 10:08:49 ID:???
ハッキリ言って、PHP以外の言語で作ってくれといわれても、
特に合理的な理由が見当たらないので断る。

775 :nobodyさん:2006/08/04(金) 10:17:06 ID:???
>>774
一人で作れるような範囲のものならともかく、
複数がらみの規模のものでは通用しないよ。

まぁスレ違いなんで次の質問どぞ

776 :nobodyさん:2006/08/04(金) 10:26:32 ID:???
ちくわは楽器に入りますか?

777 :nobodyさん:2006/08/04(金) 11:09:25 ID:???
>>776
俺は吹けるから、俺にとっては楽器。
ストローも吹けるから、俺にとっては楽器。

でも、一般の人にとっては楽器じゃない。

778 :nobodyさん:2006/08/04(金) 11:10:01 ID:???
入ります。

779 :nobodyさん:2006/08/04(金) 11:11:56 ID:???
ああっ、もうダメッ!!はうあああーーーーっっっ!!!
ぁあ…ちくわ出るっ、ちくわ出ますうっ!!
ブリイッ!ブボッ!ブリブリブリィィィィッッッッ!!!!
いやぁぁっ!あたし、こんなにいっぱいちくわ出してるゥゥッ!
ぶびびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!!
いやああああっっっ!!見ないで、お願いぃぃぃっっっ!!!
いやぁぁっ!あたし、こんなにいっぱいちくわ出してるゥゥッ!
ぶびびびびびびびぃぃぃぃぃぃぃっっっっ!!!!ボトボトボトォォッッ!!!
ぁあ…ちくわ出るっ、ちくわ出ますうっ!!
ビッ、ブリュッ、ブリュブリュブリュゥゥゥーーーーーッッッ!!!
いやああああっっっ!!見ないで、お願いぃぃぃっっっ!!!
ブジュッ!ジャアアアアーーーーーーッッッ…ブシャッ!
ブババババババアアアアアアッッッッ!!!!
んはああーーーーっっっ!!!アッ、アアッ、ちくわァァァァァァ!!!
ムリムリイッッ!!ブチュブチュッッ、ミチミチミチィィッッ!!!
おおっ!ちくわァ!!あっ、ああっ、ちくわぁぁ!!!ちくわ見てぇっ


780 :nobodyさん:2006/08/04(金) 11:12:59 ID:???
         ∧        l'vヘ
         ハ ┌( ;/ ト, ,、 rヘ  r'^ナrジ-z
    __}ヽ,__ (ヽ/ス_r^フしz,り い)n/イr〜^′
   'っヾ、r'__  |レ'ノ_C'入彳勺ソメろ_j/し-,_
    `フ ヾ勹_| <_r' !|刀_」r''>||/⌒(_rヘ-‐'
     <_ゝし||フぅ(ひzメ__ゝ'l !'そ
        ~zヾ|て 、l レ^ //'| |'~
            | | ヽl| // }|
            | :! || | | ,/ ,'       すいません、ちょっと通りますよ
          | :{. || | |/ /
            l !|| | | /
          ヽ ヽ.|/ //
          _,r)_ j (_,(           ciz
         ,ノこ_- __,ーヽ         ん|Zゥ レz  zjそ_
          }    ...  丿        ろ、,_!|乙7ムLそ/し-z
         ノ""''   一(          `う.l !シ/ア了//_⊂,
        /、__      ヽ         ^'| |~//,/_ソ ハr^
        /    ......     ーl         | |// //ノ
     /~"' 、__/   ,,,...}        |/ ///
      {' _  `y′ 一  /         r'〜(_ノ
     人   =/‐-     ハ       丿"  ''(
      ヽ '' /  __,,  /       / ‐-  ''')
        '∨     X.        }'''   ....ノ 
        j    ー/        /==  ノ'ヽ 
       /=‐  r'´-ヽ        }  ー/''''  {
       ,' _,, 人 ''"`、      ノ.. '' ノ`ヽ ''"ヽ 
        {ー /  \ -'}     / /    \'''}`
      ハ  〈      )八     ( f       )ハ
       ヽ )   ((        )ノ      /
       ノ/     ')    _/


781 :nobodyさん:2006/08/04(金) 11:13:24 ID:???
入るかどうかを問うてるのに出しちゃダメだろ。

782 :nobodyさん:2006/08/04(金) 11:42:42 ID:???
バナナは武器に入りますか?

783 :nobodyさん:2006/08/04(金) 12:31:47 ID:???
凍らせたのを出し挿れしててください。
熱い夏には最強の武器になります。

784 :nobodyさん:2006/08/04(金) 12:35:07 ID:???
>>782
入ります。(おバカさんの足下に置けば)

785 :nobodyさん:2006/08/04(金) 12:41:37 ID:???
スイカは野菜に入りますか?

786 :拓海:2006/08/04(金) 13:43:34 ID:AP1zrAvu
PHP初心者です。誰かこれを教えてくれませんか?
http://www.abcoroti.com/~rent/rspace/bbs3/wwwlng.cgi?print+200608/06080018.txt

787 :nobodyさん:2006/08/04(金) 13:58:25 ID:???
>>785
入るわけねージャンwwww
スイカは果物だろwww

788 :nobodyさん:2006/08/04(金) 14:00:20 ID:???
>>787
バナナはマンコに入りますが、
スイカは入りません

789 :nobodyさん:2006/08/04(金) 14:02:03 ID:???
エッチな話は良くないと思います

790 :nobodyさん:2006/08/04(金) 14:20:29 ID:???
>>785
スイカは野菜だ。小さいものならマンコにも入る。

>>786
なんでperlのソースをはりつけてるんだ?
テキストを置いたらテキストが表示されるだろ。

791 :nobodyさん:2006/08/04(金) 14:46:41 ID:v3M2GCi5
apache+php+mysqlでWebシステムの開発をすることになりました。
色々とくぐってみると初心者はphp+mysqlの文字化けではまりやすい
みたいなことがいっぱいありました。
日本語のcharsetは何を使うのが無難でしょうか?

792 :nobodyさん:2006/08/04(金) 14:48:22 ID:???
MySQLはデフォルトがUTF-8にしている
今の無難よりも今後のことも考えて、UTF-8をお薦めする 

793 :nobodyさん:2006/08/04(金) 14:49:12 ID:???
>>791
初心者はそんなシステムを開発してはいけない

794 :nobodyさん:2006/08/04(金) 14:59:32 ID:???
>>791
初心者は英語のみで開発するのが無難。

795 :nobodyさん:2006/08/04(金) 15:34:30 ID:???
>>791
どっちにしろ文字化けでハマるんなら、UTF-8でいいんじゃない?

796 :nobodyさん:2006/08/04(金) 16:00:28 ID:FsXZN+q7
PHPのインストールの仕方が、私でも分かるようなメチャ×∞簡単に書いてくれてるサイトってあります?

797 :nobodyさん:2006/08/04(金) 16:02:59 ID:???
>>796
php.net

798 :nobodyさん:2006/08/04(金) 16:06:46 ID:???
>>794
iya, ro-maji desyo.

799 :軟式PHP:2006/08/04(金) 16:39:41 ID:???
>>796
XAMPPでも使っとけ。

800 :nobodyさん:2006/08/04(金) 16:51:04 ID:???
Webショッピングで個人情報を入力する際

"郵便番号”入力 → 「住所検索」ボタン押す → "住所欄"に記載される

"郵便番号”入力 → 勝手にリロードする   → "住所欄"に記載される

上の方法はJavaScriptでもAjaxでもPHPでも方法がわかるのですが
下の方法は「どうやれば勝手にリロードさせるのか」が不明です
ご存知の方、"からくり"を教えていただけないでしょうか?

Ex.
 フォーム 数字7つが埋まる(ハイフンの有無関係無し)
         ↓
 MySQLに接続し、検索
         ↓
 検索結果を表示

801 :nobodyさん:2006/08/04(金) 16:54:19 ID:???
>>791
どの日本語のcharsetを使っても、php+mysqlだと必ず文字化けするような
環境があります。
どの日本語のcharsetを使っても文字化けするのですから、今後のことを
考えてUTF-8かEUC-JPにした方が良いです。特別な理由がなければ、
Shift_JISは避けた方が良いです。

802 :nobodyさん:2006/08/04(金) 16:59:57 ID:???
>>800
JavaScriptを一定時間ごとに再実行させ、textboxに数字が7つある
かどうかチェックする。

数字が7つあれば、formをsubmitさせ、PHPファイルを実行する。

このPHPファイルからMySQLに接続し、住所を検索する。

検索された住所を表示。

あなたのスキルで、充分出来ると思いますけど。

803 :nobodyさん:2006/08/04(金) 17:01:14 ID:???
>>800
Ajax分かってるの

804 :nobodyさん:2006/08/04(金) 17:03:25 ID:???
>>800
Ajax分かるなら、キー入力をJavaScriptで監視して、
打鍵毎にフォームをチェック→7桁あったらサーバーに接続
で一発じゃないかと思うけど。

805 :nobodyさん:2006/08/04(金) 17:04:06 ID:???
>>800
phpはよく知らんがjavaだとこんな感じ

フォーム 数字7つが埋まったら javascriptで form.submit
         ↓
 サーバ側でMySQLに接続し、検索
         ↓
 検索結果を埋めて同じURLにforward

806 :nobodyさん:2006/08/04(金) 17:05:39 ID:???
>>802-804
即効レス感謝です
なるほどなるほど、よくわかりました

807 :nobodyさん:2006/08/04(金) 17:05:52 ID:???
かぶりまくりだな。
つーか>>800
>上の方法はJavaScriptでもAjaxでもPHPでも方法がわかるのですが
って時点でアレっぽい。

808 :nobodyさん:2006/08/04(金) 17:06:37 ID:???
>>800
http://www.google.co.jp/search?hl=ja&q=ajax+%E9%83%B5%E4%BE%BF%E7%95%AA%E5%8F%B7%E6%A4%9C%E7%B4%A2&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
探せばソース公開してるところがあるかも

809 :nobodyさん:2006/08/04(金) 17:07:30 ID:???
>>805
それのどの辺がJavaなんだ

810 :nobodyさん:2006/08/04(金) 17:08:27 ID:???
>>807
ですよね
自分も書いた後にヤバイなと思った
正確には、「JavaScript(Ajax)でもPHPでも」かな

監視は一応思いついたのですが、負荷かかってよろしくないんじゃないかと思ったもので・・・
最近、気になるお年になったのよ

811 :nobodyさん:2006/08/04(金) 17:09:06 ID:???
>>792 >>795 >>801
ありがレス。

MySQLはデフォルトUTF-8を選択したほうが+環境構築も楽なようですね。

申し遅れましたがサーバOSはlinux、クライアントOSはWindows、ブラウザはIE6以上をターゲットとしています。
またシステム利用者に対してメールの配信も行います。

その辺を考慮してもShift_JISは避けたほうがいいのでしょうか?

812 :nobodyさん:2006/08/04(金) 17:09:50 ID:???
>>810
タイマー監視だと確かに重い場合もあるかもだが
入力イベントでの監視なら全然問題ないだろう。
つーか、Ajaxじゃふつー。

813 :nobodyさん:2006/08/04(金) 17:10:19 ID:???
>>811
Yes

LAMPはUTF-8がよかです

814 :nobodyさん:2006/08/04(金) 17:11:11 ID:???
>>811
絶対避けろ

815 :nobodyさん:2006/08/04(金) 17:12:07 ID:???
>>812
なるほどなるほど
早速、Scriptこしらえてみますー

816 :nobodyさん:2006/08/04(金) 17:27:51 ID:???
>>811
というか、あらゆる場合でShift_JISはお勧めできない。

817 :nobodyさん:2006/08/04(金) 17:34:42 ID:???
>>811
MySQL はバージョンによって結構、動作が変わるから
文字コードに苦労したくないのなら、できるだけ
4.1x 以降は使わないほうがいい。


818 :nobodyさん:2006/08/04(金) 17:36:25 ID:???
phpMyAdminも化けるからな・・・

819 :nobodyさん:2006/08/04(金) 17:45:06 ID:???
JavaScriptの話題だが、タイマー監視って setTimeout() とか setInterval() の事か?
マジありえんぞ、そんな実装
INPUTタグのonchange()イベントで数えて7になったらリロードでいいじゃん

てか、どうせJavaScript使うならAjaxにしてリロードなくしたほうがいいな

820 :nobodyさん:2006/08/04(金) 17:52:19 ID:???
>>819
onchange使っているのに悩ませるなw
Ajaxでリロードなくすって、バックヤードでリロードしまくっているじゃねぇか

821 :nobodyさん:2006/08/04(金) 17:56:17 ID:???
>>820
はっ?こいつ何言ってんだ?

822 :nobodyさん:2006/08/04(金) 18:00:23 ID:???
>>811
UTF-8 を選択するなら「〜」の文字のテストをお忘れなく。

823 :nobodyさん:2006/08/04(金) 18:11:23 ID:???


824 :nobodyさん:2006/08/04(金) 18:50:20 ID:???
LAMPなら、全てをEUC-JPで統一するのが一番ラク。

825 :nobodyさん:2006/08/04(金) 20:05:20 ID:???
タイマー監視って
1秒ごとにチェック?

イベント監視のほうがましそう

cronで24時間動かすならわかるが

826 :nobodyさん:2006/08/04(金) 20:52:15 ID:???
>>825
JavaScriptでクライアント側の処理だ

cronって何の話だw 読解力ねえのか

827 :nobodyさん:2006/08/04(金) 21:01:16 ID:???
>>825
>cronで24時間動かす

おいおい、cronで24時間毎秒起動するって、どんなシステムだよそれ。

っていうか>>826も指摘してるが、話の流れとcronは関係ないし。

828 :nobodyさん:2006/08/04(金) 21:09:21 ID:???
cronって言ってみたかっただけだよね(V_>V) ノ( ´・ω・) >>825

829 :nobodyさん:2006/08/04(金) 21:31:50 ID:U81MXz/d
質問です。

クラスについて学ぼうと思っているのですが、前段階としてクラスを使う
メリットについて認識できていません。

「例えばこういう場合に、関数だけじゃ面倒じゃん」という例があったら
教えてください。


830 :nobodyさん:2006/08/04(金) 21:50:59 ID:vf7pOYMI
ttp://masago.kir.jp/php20040106.php

ここにあるみたいに
ttfをPNGにして出力する処理をしてるんですが
背景色を透過にすることはできるんでしょうか?

$black = imagecolorallocate($image, 0, 0, 0);

できるとしたら↑の部分をどう記述したらいいんでしょうか?

831 :nobodyさん:2006/08/04(金) 21:52:51 ID:???
システムを相互作用するオブジェクトの集合として設計したとき、
関数構造化だけでは記述力不足に陥る

832 :829:2006/08/04(金) 21:58:50 ID:U81MXz/d
>>831
>システムを相互作用するオブジェクトの集合

すいません、経験が無いためこれがイメージできませんでした。
具体的にイメージしやすい例示をしていただけると助かります。

833 :nobodyさん:2006/08/04(金) 22:03:03 ID:???
>>829
手短なところでは関数(メソッド)呼び出しの時に
「(」と「)」の間が短くなって打ちやすく・見やすくなるw

834 :nobodyさん:2006/08/04(金) 22:10:40 ID:???
abstractクラスでプロトタイプ作れる・・・とか列挙してったらきり無いわ

835 :nobodyさん:2006/08/04(金) 22:17:51 ID:???
用は保守性。

836 :nobodyさん:2006/08/04(金) 22:18:17 ID:???
>>830
pngわからんけど、透過するにはgifしかないんじゃなかったっけ・・

837 :nobodyさん:2006/08/04(金) 22:27:06 ID:???
透過は~alpha()関数

838 :nobodyさん:2006/08/04(金) 22:48:13 ID:???
>>836
透過pngでぐぐるといいよ。

839 :nobodyさん:2006/08/04(金) 23:03:30 ID:???
>>836
gifとpngは透過できる
ttp://www.animegif.net/animegif/format.html

phpで透過使えるかどうかはわからんけど

840 :(^ω^):2006/08/04(金) 23:45:54 ID:???
>>829
PHPでは説明しにくいな…

たとえばPHPの実行時間を計る部分を考える(PukiWikiの画面最下のConvert Timeみたいなやつ)。
次の方法で取得するとする。
1.処理が始まる前に今の時間を取得し変数$time1に代入。
2.処理が終わったら今の時間を取得し変数$time2に代入。
3.差を出力する関数を用意する(print_jikkou_jikan($jikan_no_sa))。
これは関数で簡単に実現できる(ソース省略)。
ここで、これを掲示板A、画像掲示板B、日記C、ブログD、リンク集E、アクセス解析Fなど、いろんな所で使いたいとする。
関数は簡単に書ける。しかし1. 2.で変数に代入しなければいけない。当然元のソースを修正して変数を用意することになる。
すると変数名や関数名のバッテイングを注意しないといけない。またプログラムでは、いろんな設定や状態の保持など、大量に変数や関数を使う。その変数関数地獄の中に埋もれることになる。

841 :(^ω^)長文スマソ:2006/08/04(金) 23:47:45 ID:???
しかし、クラスにまとめてしまえばメンバ変数・メンバ関数が使えるから、関数のバッテイングは起きない。
変数のバッテイングも関数のみに比べれば減る(上の例では変数は2つだが、ブログの設定など変数が何十個何百個ならそれだけバッテイングの危険が増える)。
またクラスでまとめられるから、正しくない関数に変数を入れてしまう可能性が減る。
上の例では、$jikan_no_saに誤ってパスワードの入っている変数を入れてしまったらパスワードが出力されてしまう(そんな偶然まずないけどw)。

842 :(^ω^)長文スマソ:2006/08/04(金) 23:49:15 ID:???
また、ドラクエのプログラムを考える。
さあ作ろうと思った時、いきなりでは何から作ればいいかよく分からないと思う。
しかしクラスを使うと、キャラクターの状態クラス(HPとかMPとか覚えた技とか)、マップ管理クラス(今どこにいるとか敵出現率は〇%だとか宝箱は座標30,45にあるとか)、
BGMクラス、実際に描画するクラスとか、役割別に分けられるから理解しやすいし作りやすい。
また継承を使って、キャラクタークラスを(十字キーで操作できる)主人公クラス、(くり出す技を自動で考える)敵キャラクラスなど、いろいろ機能の追加ができる。関数だけではさすがに面倒じゃないか?

長文スマン。説明下手でスマン。まあそのうちクラスなしでは不便に思うようになるよ。

843 :nobodyさん:2006/08/05(土) 00:07:05 ID:???
スレ違いだっつってんだろーが馬鹿か

844 :nobodyさん:2006/08/05(土) 00:18:22 ID:???
phpについてググる時、マニュアルのミラー避けに使う
おまいらなりの万能NGワード生成法を教えてくれ

845 :nobodyさん:2006/08/05(土) 00:20:10 ID:???
>>844
ローカルにマニュアルを用意しておく

846 :nobodyさん:2006/08/05(土) 00:28:41 ID:???
下手っつか、説明になってないっつか、なんだろうなコレ

>>829
必要に迫られるか、便利さに気が付くかするまでは使わなくていいよ。

847 :nobodyさん:2006/08/05(土) 01:08:14 ID:???
人間の考えなんて偏ってるから
名前をつけようとすると同じような名前をつけちゃうのよね

848 :nobodyさん:2006/08/05(土) 02:16:22 ID:DDZI29mp
これどういう意味でしょうか
Parse error: syntax error, unexpected $end in xxx/xxx/xx

849 :nobodyさん:2006/08/05(土) 02:20:03 ID:DDZI29mp
{ } の個数のようですね・・・
何行目がおかしいのだろうか・・・

850 :829:2006/08/05(土) 03:19:22 ID:9YvlTMOh
皆さんアドバイスありがとうございます。

複雑なプログラムを組む場合や複数名で作業する場合は、クラスを使うと
変数名がゴチャゴチャしないという効用があることはよくわかりました。

しかし逆に、PHPではその程度の効用しかないのでしょうか?

851 :nobodyさん:2006/08/05(土) 03:30:42 ID:???
質問であります。
PHPのfor文にはbreakはありますが、skipがありません。
JAVA等にはskipがありとても便利なんですが、みなさんskipの代替にどのような処理をしておられますか?
実例があると、とても勉強になりますので宜しくお願いします。

852 :nobodyさん:2006/08/05(土) 03:38:25 ID:???
まあphpでしかも個人で作る分にはOOPなんて必要ないだろうな

853 :nobodyさん:2006/08/05(土) 03:38:52 ID:???
co(ry

854 :nobodyさん:2006/08/05(土) 03:42:52 ID:???
>>853
ご指摘どうも、continueでした、ごめんなさい。

PHPのcontinueは次のループ処理の最初からやり直しす挙動なんですが、JAVAのようにその回だけをスキップしたいんです。

あとラベル付きbreak文のような制御処理の実例も見てみたいです。

855 :nobodyさん:2006/08/05(土) 03:58:10 ID:???
ナポリタンクラスだな。

856 :nobodyさん:2006/08/05(土) 04:08:39 ID:???
>PHPのcontinueは次のループ処理の最初からやり直しす
>JAVAのようにその回だけをスキップしたいんです。
その回をスキップしたら、次のループの最初に行くんではないのか?

857 :nobodyさん:2006/08/05(土) 04:31:27 ID:???
>>856
えーとですね
for($i=0;$i<=10;$i++){
for($j=0;$j<=10;$j++){
if($j==5) continue;
}
}

上記の記述で入れ子になっているfor文のカウンタ$jが5だった場合continueしていますが、これがPHPだと入れ子になってるfor文を抜けてしまうんです。
JAVAの場合だと5回目のループ処理だけをスキップして6回目のループ処理を始めてくれるんですが。


858 :nobodyさん:2006/08/05(土) 04:32:19 ID:???
意味不明。
if (その回) continue; で何の不満があるのか。

859 :nobodyさん:2006/08/05(土) 04:34:51 ID:???
後出しキタorz

860 :nobodyさん:2006/08/05(土) 04:39:25 ID:???
セミコロンの書き忘れとかないのか?

861 :nobodyさん:2006/08/05(土) 05:20:58 ID:O2vt3cXl
flockして書き込む際に、set_file_buffer($fp,0)しなければいけないという解説を、よく見かけるんですが、本当に必要なんでしょうか?
書き込むという事は当然、排他モードでロックするわけですから、ロック中は他のプロセスは書き込みも読み込みもできないはずですよね?
だったらバッファを気にする必要ないと思うんですが・・
何かOSのトラブルだとか予期せぬ事を想定して、念のための処置なんでしょうか?

862 :861:2006/08/05(土) 05:26:45 ID:O2vt3cXl
私が拝見したサイトから引用させてもらいます。

>バッファにある値と、ディスクにある値が異なる瞬間があるわけで、
>つまり、バッファがあると、せっかく flock を使ってロックしても、
>書き込まれる前のデータをディスクから読み出してしまうことがあるわけです。

これの意味がわかりません。
排他モードでflockした時点で、自分が書き込んでる最中に読み込まれる可能性がそもそもないのでは?

863 :nobodyさん:2006/08/05(土) 05:30:44 ID:???
貧民的プログラミング

864 :nobodyさん:2006/08/05(土) 05:30:46 ID:???
>>850
関数もそうだけど、シンプルなプログラムを作る分には別にそんなの使わなくても何とかなっちゃうよ。
クラス・オブジェクトは関数・構造化のさらに上を行く設計手法であり考え方なので、
それなりに複雑なプログラムでないと、メリットを享受できない場合が多いです。
上位の設計手法であるため、設計が下手だと無駄に冗長で保守性も拡張性も低いクラスを作りがちだし。

プログラムが大きくなってくると、関連する複数の関数+それが管理する変数群、の集合で
1個のモジュールになるようにインクルードファイルを作るケースが増えてくることがあるけど、
普通に作ると管理変数群を全て配列にでもしないと同じ処理を複数同時に動かすことができなかったりします。
クラスの仕組みはこういう問題を容易に、かつ分かりやすく解決します。
でもそれなりに大規模なプログラムでないと、そのメリットはあまり見えてきません。

オブジェクト指向に慣れてくると、設計の考え方が単純になって作りやすくなる、という場合もあるけど、
それはあくまで何度も作って慣れた場合の話なので、結局のところ「必要を感じないなら使う意味は
あまり無い」ものである場合が多いんじゃないかと思います。

865 :nobodyさん:2006/08/05(土) 05:32:25 ID:???
>>857
入れ子のループを抜けてしまうのはbreakだと思う。
continueは入れ子($jループ)の次回($j=6)を実行するよ。

866 :nobodyさん:2006/08/05(土) 05:55:52 ID:???
>>856,858,865
すいません、出来ました・・・。
アレェ?なんでだろ・・・、さっきは動かなかったのに・・・。
どうもお騒がせしますた、吊ってきます・・・。

867 :nobodyさん:2006/08/05(土) 06:02:43 ID:???
関数名がごちゃごちゃしないとか信じるなよw
専スレ行け

868 :nobodyさん:2006/08/05(土) 06:11:44 ID:???
>>861
その問題はロック中の話ではなく、ロック解除後に他のプロセスが読み込みにきたときに
まだ書き込みが終わっていない状態のファイルを読み込んでしまう場合がある、という話。
それについての議論
ttp://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F166
結論部分
ttp://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F166#kee64b6f
多分、その記事はこれのことだと思うけど
ttp://www.stackasterisk.jp/tech/php/php02_01.jsp
その記事に対する反論
ttp://testwiki.xn--xnq.jp/?PHP%2F%A5%D5%A5%A1%A5%A4%A5%EB%A5%ED%A5%C3%A5%AF%2F%A5%CE%A1%BC%A5%C8#f4a10010
結局のところは、>>862のサイトの説明は誤りであり、set_file_buffer()は不要という話に落ち着いてるよ。
反論の中では、記事の意図について
> また、fflushが使われていない理由としては、 PHP3では、fflushが使えなかったため、説明の簡略化を考えて
> fflushを使わずにサンプルを作ったように思われます。(ftruncateが省かれているのもおそらくそのため。)
と推測されています。
そのサイトの説明はPHP3〜4への移行期に書かれたもので非常に古いです。
とりあえずここの議論内容を読んで、自分で色々実験してみてはどうでしょう。

869 :nobodyさん:2006/08/05(土) 06:20:35 ID:???
非リアルタイムOSだし、ディスクと同期するわけでもなんだねこれ

870 :nobodyさん:2006/08/05(土) 06:31:47 ID:???
>>869
日本語でおk

871 :861:2006/08/05(土) 06:45:01 ID:???
>>868
完璧に納得しました。ありがとうございました。

872 :nobodyさん:2006/08/05(土) 08:08:38 ID:???
どうかお答えください
同性愛サロン、同性愛板、大人の同性愛を見て以来、
掲示板一覧に訪問済みの色がついたまま消えません。
他は消えます。
別に興味深々だったわけではなく、ちょっと調べたいことがあっただけでつ。
これってなんでこうなるの?
どうしたら消せるの?

873 :nobodyさん:2006/08/05(土) 08:12:20 ID:???
ごめん板違い...?

874 :nobodyさん:2006/08/05(土) 08:21:52 ID:???
超板違い

875 :nobodyさん:2006/08/05(土) 08:33:22 ID:???
>>872
ネタ?w

876 :nobodyさん:2006/08/05(土) 08:42:14 ID:???
>>872
それは運命だよ


877 :nobodyさん:2006/08/05(土) 09:00:48 ID:???
ネタじゃあないでつ
皆さんはなりませんか...
恥ずかしながら他板逝ってきます

878 :nobodyさん:2006/08/05(土) 09:41:54 ID:Tub8+xQy
履歴キャッシュをクリアする。

879 :nobodyさん:2006/08/05(土) 09:43:17 ID:???
>>864
>普通に作ると管理変数群を全て配列にでもしないと同じ処理を複数同時に動かすことができなかったりします。

↑なぜ??? なぜ配列にしないと動かないの?
ちょっと意味が分からないんだが・・・

880 :nobodyさん:2006/08/05(土) 09:51:50 ID:???
同じ変数を上書きしちゃうからだろ。

881 :nobodyさん:2006/08/05(土) 10:19:25 ID:???
関数内で作った変数のリファレンスを返す手もあるけどな。
PHPのクラス自体がそんな感じの動きなわけだが。

882 :nobodyさん:2006/08/05(土) 11:11:52 ID:Da4T0gqI
PHP5とApache2.2を
FedoraCore5に
ソースインストールしようと思っています。

その際にPHPを静的モジュールとして
インストールしたいのですが、
そもそもApache2.2に対して
PHPを静的インストールする事って可能でしょうか?

PHP.netには
Apache 1.3.x (Unix システム用)に対する
静的インストール例はあったのですが、
Apache 2.0 (Unixシステム用)に対する
例がなかったのでちょっと気になってます。


883 :nobodyさん:2006/08/05(土) 11:22:41 ID:???
Apache2.2はやめとけ

884 :882:2006/08/05(土) 11:46:19 ID:???
>>883
えー!? な、なぜ???
なんかヤバイんでしょうか??


885 :nobodyさん:2006/08/05(土) 11:48:01 ID:???
htmlでformタグを利用せずに
phpからpostメソッドでデータを送信する方法を教えてくださいませ。
getメソッドなら簡単にできるのですが。

886 :nobodyさん:2006/08/05(土) 11:58:58 ID:???
>>885
socket

887 :885:2006/08/05(土) 12:01:33 ID:???
もう少しkwsk
申し訳ないですが、例なんかをきぼんぬ

888 :nobodyさん:2006/08/05(土) 12:04:18 ID:???
>>887
ttp://jp.php.net/manual/ja/function.fsockopen.php
まずはここを読んだのか?
まあこのページでは、普通にPOSTでtext/htmlな例がないが、
著者がsockを使うプログラマは
HTML通信などは当たり前に知っているはずだという固定観念から、
かえって基本的な例が載ってないように思える。

889 :nobodyさん:2006/08/05(土) 12:07:37 ID:???
bimal dot das at maxartists dot com
08-Jun-2006 03:22

が好例だった。

890 :nobodyさん:2006/08/05(土) 12:09:55 ID:???
日本が入るなら urlencode を忘れずに(文字コードと)

891 :885:2006/08/05(土) 12:48:57 ID:???
レスサンクスです、
これこそソケットに関しての知識なんでしょうが、
$varsのところがpostする内容であってるでしょうか??


892 :nobodyさん:2006/08/05(土) 13:00:52 ID:???
>>891
そうだよ。

albertohf at hotmail dot com
04-Aug-2006 01:01
の例なら $postdata がそう。

Duukkis
27-Feb-2006 10:13
の例はマルチパートでファイルアップロードをやる例だな。

でもこれはソケットの知識ではなく、HTTPのプロトコルの知識だな。

893 :nobodyさん:2006/08/05(土) 13:00:52 ID:???
リファレンス読んでも分からんようなカスには無理
Hello worldでも作っとけ

894 :nobodyさん:2006/08/05(土) 13:08:01 ID:???
アセンブリ言語で

895 :885:2006/08/05(土) 13:09:18 ID:???
>>892
ありがとうございました m(_ _)m

896 :nobodyさん:2006/08/05(土) 13:10:30 ID:???
ふむ。HTTPに関しては俺も昔はRFCを見たものだった。

897 :拓海:2006/08/05(土) 13:24:22 ID:Tub8+xQy
http://www.abcoroti.com/~rent/rspace/bbs3/wwwlng.cgi?print+200608/06080018.txt
お願いします。なぜか500エラーが出て困ってます。原因は何なのでしょうか?

898 :拓海:2006/08/05(土) 13:25:46 ID:Tub8+xQy
403エラーでした。

899 :nobodyさん:2006/08/05(土) 13:26:22 ID:???
すれ違いなのでスルー

900 :nobodyさん:2006/08/05(土) 13:35:02 ID:???
>>897
2chに頼るから
スレ違いだから
マルチだから
ゲームCGIという厨くさいものを設置するから

901 :nobodyさん:2006/08/05(土) 13:37:06 ID:???
>>897
お前がヴァカだからに決まっている。

902 :nobodyさん:2006/08/05(土) 13:48:38 ID:???
指定されたページの特定の部分だけ引用して表示するにはどうすればいいでしょうか?

例えばYahoonewsのニュースの部分だけを引用して表示する とか。

903 :nobodyさん:2006/08/05(土) 13:50:00 ID:???
>>902
そのページの引用したい部分をドラッグで範囲指定した後、Ctrl + C でコピーをしてくる。

904 :nobodyさん:2006/08/05(土) 13:51:34 ID:???
>>903
いやいや、phpで自動的にやる方法 を聞いてるのですが、

905 :nobodyさん:2006/08/05(土) 13:53:43 ID:???
>>885
HTTP_Requestなら一瞬

906 :nobodyさん:2006/08/05(土) 13:57:38 ID:???
>>904
fileでページを読んできて、その特定の部分を特定できるパターンを自分で考えろ。
それにより、パターンマッチや、strpos 等でその部分を読み取る。

907 :nobodyさん:2006/08/05(土) 18:34:39 ID:???
>>902
引用したいサイト側にRSSなどを作成してもらったりする

file読み込みなら迷惑かけんように毎時cron等で鯖内に静的ファイル保存とかしる

908 :nobodyさん:2006/08/05(土) 20:06:46 ID:???
>>902
phpよりもxsl

909 :拓海:2006/08/05(土) 21:06:17 ID:Tub8+xQy
すいませんが>>897お願いします。もしかしてここには誰もわかる人はいないのでしょうか?

910 :nobodyさん:2006/08/05(土) 21:10:40 ID:???
>>909
そうそう。誰もわかんないの。
だからもう二度と書き込むなゴミ

911 :拓海:2006/08/05(土) 21:18:23 ID:Tub8+xQy
>>910
わからない人はレスしなくていいですよ、あなたはスルーも出来ない子供なんですか。あとあっちにリンク貼らないでください。迷惑千番です。

912 :nobodyさん:2006/08/05(土) 21:22:16 ID:???
>>909
うん、ちょっと無理だと思う。

913 :僕も子供だよ☆:2006/08/05(土) 21:23:25 ID:???
>>911
スルーも出来ない子供なんですか?

あと何で誰も答えないか解らない子供ですか?

914 :nobodyさん:2006/08/05(土) 21:34:17 ID:???
>>911
君には迷惑かもしれないけど、向こうの人たちには大変な朗報だと思いますよ。


PHPが何かも知らないガキは書き込むなってこと。

915 :nobodyさん:2006/08/05(土) 22:11:00 ID:DDZI29mp
頭悪いガキだなおい

916 :No-Title:2006/08/05(土) 22:35:52 ID:KJXGQj4k
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
>>拓海wwwww
ABCオロチの無料サーバーでほぼ荒らし的な行為を繰り返している馬鹿厨房wwww


917 :nobodyさん:2006/08/05(土) 23:04:49 ID:???
>>916
ほぼってか完全に荒らしだろ。死ねば良いのに

918 :nobodyさん:2006/08/05(土) 23:59:45 ID:???
この時代になってまだ荒らしとかいるのか。
そんな時代は2.3年前に終わったと思っていたよ。

919 :nobodyさん:2006/08/06(日) 02:35:21 ID:sjZAg5e5
姓名相性占い作りたいんだけどどういう処理にすればいいんだろ
ローマ字入力にしてAが含まれれば+1ポイントとかそんな感じ?

920 :nobodyさん:2006/08/06(日) 02:36:26 ID:???
>>919
おいwwもうちょっと考えて作ってやれよwww

921 :nobodyさん:2006/08/06(日) 02:49:42 ID:???
アスキーコードの合計とか。phpってそういう関数ないのか?

922 :nobodyさん:2006/08/06(日) 02:55:14 ID:???
ord()

923 :nobodyさん:2006/08/06(日) 03:21:21 ID:???
>>919
傾向を作るか作らないかによる。
手っ取り早くは名前のMD5取って適当にやればいい。
たとえば2人それぞれから1文字目をとって近ければ相性がいいとか。
姓名の間にある空白がどっちでも同じ結果になるように修正は必要だろうね。
実際の姓名判断は知らんけど、斎藤と斉藤を同じ扱いにするみたいな処理は入るかもね。

924 :nobodyさん:2006/08/06(日) 03:36:48 ID:???
そういやコレーションのライブラリとかってどっかに放り出されてないの?

925 :nobodyさん:2006/08/06(日) 04:15:27 ID:EsUUYOdr
型の自動変換について曖昧なところがあるので質問させて下さい。

phpversion()>="4.1.0"
例えばこういうのは、内部的に数値型へキャストしてるのではなく、アスキー値で比較してるんですかね?


式中に + などの数値用の演算子を使用した場合は、文字列は数値型へキャストされる という理解でいいんでしょうか?

926 :925:2006/08/06(日) 04:16:48 ID:EsUUYOdr
訂正

○キャストされる
×キャストされてから評価される

927 :nobodyさん:2006/08/06(日) 04:31:31 ID:???
マニュアルの「型の相互変換」が参考になると思われ

928 :nobodyさん:2006/08/06(日) 04:37:37 ID:???
phpversion()はおもっくそ引数に文字列を取ると書いてある
内部のzvalについてはZendのドキュメントかソースコードを読

929 :925:2006/08/06(日) 04:58:44 ID:EsUUYOdr
すいません、例えが悪かったです。。
phpversion()についてではなく、式の中で型がどう自動変換され評価されるか についてです。phpversion()は例として出しました。
型についてのマニュアルもひととおり見ました。

if("1.1.1">"1.1.0"){
print("true");
}

出力結果:true

↑このような式がなぜ成立するのか、内部的にはどう型変換などが行われているのか について解りません。
1.1.1 なんて数値はfloatとしても不正ですから、floatに変換され、評価されてるわけではないというのは解るんですが・・
だったら、アスキー値として評価されてるのでしょうかね??そのへんが解りません。

あと、<や>などの演算子は必ずしも数値を要求するわけではないのでしょうか?

930 :925:2006/08/06(日) 05:14:00 ID:EsUUYOdr
あ、なんか自己解決したっぽいです。。ありがとうございました。
要するに、↓の式も成立するわけですね。

if("A"<"B"){
print("true");
}
出力結果:true

という事は、
if("1.1.1">"1.1.0"){
print("true");
}

if("\x31\x2E\x31\x2E\x31">"\x31\x2E\x31\x2E\x30"){
print("true");
}
は等価で、 > は数値を要求するわけではない(数値変換して評価するわけではない)という事ですね?
間違ってたらつっこみお願いします


931 :nobodyさん:2006/08/06(日) 05:45:30 ID:???
Yes。strcmpみたいな処理だと思いねえ
詳しくはzend_operators.c

932 :925:2006/08/06(日) 06:01:37 ID:???
ありがとうございます。
zend_operators.c というとphpそのもののソースコードのようなものですよね?
ちょっと敷居が高そうですが・・(汗 余裕があれば参考にしてみます。

933 :nobodyさん:2006/08/06(日) 06:15:34 ID:???
教えてください。
関数 mb_http_outputは任意の変数がどんな文字コードでも出力時には指定文字コードに変換してくれるのでしょうか?


934 :nobodyさん:2006/08/06(日) 06:26:34 ID:???
PHPのzvalってPerlで言うSVのこと?

935 :nobodyさん:2006/08/06(日) 08:19:57 ID:CMHstoCK
レン鯖で、自分のアカウントが鯖にどれだけ負荷がかかってるか調べるようなことを、そのアカウントに設置したPHPからできますか?そもそもPHPでできるんでしょうか?

936 :nobodyさん:2006/08/06(日) 10:16:10 ID:???
キャッシュされちゃうんだが・・・
ブラウザ側でキャッシュしない設定を行えば正常なんですけど。

普通、ページ内容が変化するのでキャッシュしないはずなんだけど。。。
なんででしょう?


937 :nobodyさん:2006/08/06(日) 10:20:16 ID:???
>>933
内部文字コード→出力文字コードの変換しかしないと思う。

938 :nobodyさん:2006/08/06(日) 10:23:34 ID:???
>>936
URLにパラメータが付加されてればキャッシュしないことが多いけど、
パラメータが無ければ内容がなんであれキャッシュ読んじゃうのが一般のブラウザの設定。
それを防ぐにはブラウザに送信するヘッダ出力に「変更があるよ」かもしくは
「このページはキャッシュ禁止」というサインを出さないといけない。

939 :nobodyさん:2006/08/06(日) 10:26:34 ID:???
>>938
一応、これだけ書いてますが・・・ダメです。

<HTML>
<HEAD>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Sat, 01 Jan 2000 00:00:00 GMT">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">
<TITLE>INS 試験</TITLE>
</HEAD>
<BODY>

<?
以下PHP


940 :nobodyさん:2006/08/06(日) 10:40:34 ID:???
>>939
METAで書いても効果は薄い。ちゃんとheader()で出力してみよう。

941 :nobodyさん:2006/08/06(日) 10:52:28 ID:???
>>935
ちょっと厳しいと思う。

942 :nobodyさん:2006/08/06(日) 10:56:06 ID:???
>>940
大ありがとうございます!早速やってみたら・・・GJでした。

<?
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 過去の日付
?>

(参考)
http://phpspot.net/php/man/php/function.header.html


943 :nobodyさん:2006/08/06(日) 11:44:21 ID:???
GJって・・・。回答してくれた相手にそれはおかしくないか?

944 :nobodyさん:2006/08/06(日) 12:00:41 ID:???
中学生にそこまで求めるのは酷だと

945 :nobodyさん:2006/08/06(日) 12:02:00 ID:???
だからこそここで正しい使い方を教えてやるんじゃないのか?

946 :942:2006/08/06(日) 12:06:05 ID:???
>>943
どうもすみませんでした。
思わず喜んでしまいました・・・


947 :nobodyさん:2006/08/06(日) 12:48:57 ID:???
いいんだよ

948 :nobodyさん:2006/08/06(日) 12:56:28 ID:???
グリーンだYO!!

949 :nobodyさん:2006/08/06(日) 14:17:59 ID:???
ファイルを使ってデータの読み書きをする時、
file_put_contents("./data.php", "<?php\n\$data = " . var_export($data, true) . ";\n?>");
みたいな感じで PHP スクリプトとして書き出して、読み込む時には
include("./data.php"); で読み込んでいるのですが、この方法、何かやばかったりするでしょうか。
基本的にデータファイルへの直アクセスは .htaccess などではじいています。

950 :nobodyさん:2006/08/06(日) 14:27:22 ID:hfhMCxc1
あっ、ID が出ていない。

951 :nobodyさん:2006/08/06(日) 14:41:44 ID:???
>>949
面白いとは思う。

でも余り一般的な手法では無いと思う。

952 :nobodyさん:2006/08/06(日) 14:42:34 ID:???
別にいいんじゃないの?

953 :nobodyさん:2006/08/06(日) 14:42:38 ID:???
>>949
var_exportの引数$dataに何が与えられるかによる。
例えば外部からくる変数だと、ちゃんとチェックしないと心配かな。

954 :nobodyさん:2006/08/06(日) 14:45:18 ID:???
>>953
それは別に出力がPHPコードであろうとなかろうと一緒の気がするんだが。
自分でPHPコード化してるならともかく、var_exportを通してる時点で
エスケープ処理もできてるんだし、他の変数を破壊されるような心配はないだろ。

955 :nobodyさん:2006/08/06(日) 15:17:40 ID:???
>>949
internal_encodingがSJISでデータに日本語を含んだりするわけじゃなきゃ問題ないのでは?
SJISでそういう手法を使うとvar_exportはSJISの特殊な構文パースに対応しないから、
$data = '表';
とかいうデータだった場合、
期待する出力
<?php
$a = '表';
?>
実際の出力
<?php
$a = '表\';
?>
となって、include時にパースエラーを起こす。
ま、常識的にUTF-8かEUC-JPでスクリプト書いてれば特に心配はないよ。

956 :949(950):2006/08/06(日) 15:34:08 ID:hfhMCxc1
>>951, 952
自分の知らない脆弱性か何かがあるかもしれないと思い質問しましたが、平気そうですか。ありがとうございます。
>>953
$data = array(0 => array('name' => 'xxx', 'date' => 'xx.xx.xx'), 1 => 以下略);
のような多次元配列が格納されています。外から来たものは一応個別にサニタイズしています。
>>954
UTF-8 で書いています。心配はあまりしなくても良いみたいですね。ありがとうございます。

皆様ありがとうございました。

957 :949(950):2006/08/06(日) 15:35:47 ID:hfhMCxc1
>>954 ではなく >>955 でした。訂正します。

958 :nobodyさん:2006/08/06(日) 16:00:27 ID:???
PHPで半角カタカナが連続するか末尾に来るPOSTを発行すると文字化けするのですがどう対処すればよろしいでしょうか?

959 :>>958:2006/08/06(日) 16:11:32 ID:???
例:
アケwケ→厩w

960 :nobodyさん:2006/08/06(日) 16:26:01 ID:???
>>958
文字コードは何を使ってるの。

961 :>>958:2006/08/06(日) 16:33:32 ID:???
>>960
ShiftJISです。
php.iniの内部文字コードもShiftJISです

962 :nobodyさん:2006/08/06(日) 16:55:12 ID:???
>>949
"$data"が固定されるとか、1ファイル1データ制限とかはまあ仕方無いとして、特に問題無いんじゃないかな。
問題が出て来たとしてもすぐにserialize/unserializeに切り替えられるし。

>>958
sjis送信されたテキストがEUCとして扱われている。設定ミスだね。
例を出せたのは良いけど、その程度の知識で内部エンコーディングにsjis使うとデメリットしか出ないよ。

963 :>>958:2006/08/06(日) 17:04:29 ID:??? ?DIA(41010)
>>962
と思ったらできました。ありがとうございます。
mbstring.http_input = auto

mbstring.http_input = SJIS

964 :>>958:2006/08/06(日) 17:06:36 ID:???
と思ったらじゃなくて厳密には「>>962を見て」だね
ともかくありがとうございました ノシ

965 :nobodyさん:2006/08/06(日) 17:48:40 ID:???
>>962
949の例が単純すぎるだけで、別に1ファイル1データ制限とかは無いと思う。
例えば
$save = "<?php\n";
foreach($envlist as $name => $value) $save .= "\$$name = " . var_export($value, true) . ";\n";
$save .= "?>";
file_put_contents($savefile, $save);
とする程度で普通に汎用化できるし。

変数名固定問題も、関数内でローカル変数としてincludeして、returnでリファレンスを返すか
指定した別の変数に代入するって仕組みにすれば全然問題ない。

後はunserialize()とincludeでのPHP構文パースとどっちが高速かの勝負だろう。
コードキャッシュと組み合わせればこっちの方が性能は高いかもしれんよ。

966 :962:2006/08/06(日) 18:49:59 ID:???
>>965
確かに制限は避けられたね。

967 :nobodyさん:2006/08/06(日) 19:21:37 ID:VRNU21+t
鮎川寛さんの「 PHP 開発日誌 」ってサイトどこいっちゃったの?
そこで配布していた『HTML テンプレート』を使いたいんだけど
見当たらなくて困ってます。

どこに移ったか知っている方、
もしくはPHP5 版『HTML テンプレート』を
再配布しているところを知っている方
教えてください。

968 :nobodyさん:2006/08/06(日) 19:41:29 ID:???
Smartyでいいじゃん、って思ったりもするんだが。
そういう話なら
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
こっちの住人の方が詳しいと思う。

969 :nobodyさん:2006/08/06(日) 19:57:58 ID:???
>>967
閉鎖した模様

970 :nobodyさん:2006/08/06(日) 23:12:52 ID:???
ttp://php.s3.to/man/features.http-auth.html
こちらに書いてあるような方法でBASIC認証をした後、ブラウザを閉じるまで $_SERVER['PHP_AUTH_USER'] の情報が維持されますが(ブラウザのクッキーに?)、ログアウトさせて明示的に情報を消去させる(クッキーの?)ためにはどうすればよいでしょうか?

971 :nobodyさん:2006/08/06(日) 23:20:32 ID:???
nai

972 :nobodyさん:2006/08/07(月) 03:11:14 ID:???
php4 -> php5に移行しているのですが
$thisで何故かエラーになってしまいます。
全く分からないのでもし分かる方いらっしゃいましたらお願いします
class checked {

function checkFData() {
global $fobj;
global $DATA;

$fobj = new FDataUtil();
$fobj->setVar('title');
$fobj->setVar('cate');
$fobj->setVar('aflg');
$fdata = $fobj->getFData();
$this->DATA = $fdata; //ここ
}
}

973 :nobodyさん:2006/08/07(月) 03:23:21 ID:???
エスパー希望のガイドラインでやれ

974 :nobodyさん:2006/08/07(月) 03:55:10 ID:???
助けてください!お願いします(><)

975 :nobodyさん:2006/08/07(月) 04:29:40 ID:???
>>972
どういうエラーが出てるかをまずださないと。

っていうかなんか汚いクラスだな。

976 :nobodyさん:2006/08/07(月) 04:52:34 ID:???
これだけじゃ何とも。。
どうでも良いけどglobalて。。

977 :nobodyさん:2006/08/07(月) 06:08:58 ID:???
例えば

1.log
2.log
3.log
4.log
5.log

↑のような構成のディレクトリから3.logを探してアクセスするのと、↓のようなファイルから3に対応する行を探すのとどっちが高速ですか?

1
2
3
4
5


978 :nobodyさん:2006/08/07(月) 06:40:17 ID:???
>>977
一般に前者。

979 :nobodyさん:2006/08/07(月) 06:45:37 ID:???
>>977
どう考えても前者。
よっぽど異常なハード構成じゃなきゃ後者の方が速くなる事はまず無い。
ただ、前者の方式は数が増えすぎると1個のディレクトリに収まらなくなる難点がある。
1000や2000くらいまでなら全然問題なし。

980 :nobodyさん:2006/08/07(月) 06:48:31 ID:???
>>970
保存先はクッキーではなくブラウザのプロセスが持つメモリ上だろう。
だからブラウザが起動中はずっと保持される。逆に言えばブラウザを終了させれば消去される。
PHPなどサーバー側の仕組みでブラウザを終了させることは不可能。
JavaScriptでも、1個のウインドウだけならともかく全ウインドウを閉じさせるのは至難の業。

981 :nobodyさん:2006/08/07(月) 06:49:49 ID:???
>>972
var $DATA;がclass checkedに存在しないからじゃない?
多分、PHP4の頃はNoticeエラーを表示しない設定にしてたんだろ。

982 :nobodyさん:2006/08/07(月) 06:58:26 ID:???
>>978>>979
まじですか・・。なんとなく後者だと思ってましたw
参考になりました。ありがとうございました。

983 :nobodyさん:2006/08/07(月) 07:16:48 ID:???
>>972
だいたいエラー出た行のひとつ前に原因があるんだよ

class checked {
var $fobj;
var $DATA;
var $fdata;
......

984 :nobodyさん:2006/08/07(月) 07:27:41 ID:???
>>982
まさか3.logを探す、ってのを
glob("*.log")の配列から探すとか
opendir→readdirして順番に探すとか
そんなことしてるわけじゃないよな?
file_exists("3.log")やって読み込むだけなら、後者でファイル読み込むのと
ほぼ同じ手間だけで検索も完了するし読み込む量も最小限で済む。
それで前者より後者の方が速くなる理屈はまず無いと思うんだが。


985 :982:2006/08/07(月) 08:02:23 ID:???
>>984
>glob("*.log")の配列から探すとか
>opendir→readdirして順番に探すとか
>そんなことしてるわけじゃないよな?

いえ、違います。
ファイルシステムの事とかよくわからないので、ふと疑問に思ったんです。
file_exists("3.log")とかやった時、結局はファイル名のテーブルのようなものから一つ一つ照合して探しているのかなぁと思いまして。
だったら>>977の前者も後者もやっている事は同じで、メモリのが高速だから後者のが早いのかなぁとなんとなく思ったんです。
でも違うんですね。

986 :nobodyさん:2006/08/07(月) 08:13:55 ID:???
>>985
その場合、後者のはそもそもファイルをopenする段階で
file_exists("3.log")と同じだけの時間がかかってる。
後者は前者+αの処理なのに速いわけがなかろう。

987 :nobodyさん:2006/08/07(月) 08:15:07 ID:???
>結局はファイル名のテーブルのようなものから一つ一つ照合して探しているのかなぁと思いまして。
だいたいそんな感じ。
けど後者もファイルを開くときに前者と同じようにファイルを探すから、
ファイルを開いた時点で後者の負け。

988 :nobodyさん:2006/08/07(月) 08:17:25 ID:???
かむりんぽ

989 :nobodyさん:2006/08/07(月) 08:24:13 ID:???
>>985
後者のやり方で前者を抜こうと思ったら、いちいちファイルから読み込まずに
最初からメモリ上の配列に用意しとけということだ。

しかし実際は、最初に読み込んでおく時点で無駄に時間がかかるし、
メモリも無駄に食うしで、よほど使用頻度の高い処理でなければ価値がない。

後者の内容別にファイルを持つやり方は、管理が面倒になる上に、
ディレクトリ内に置けるファイル数の制限などもあるので、扱いにくい。

つまりそういう検索が必要なデータはDBに置いてindexを振っておけってことだよw

990 :名無し募集中。。。:2006/08/07(月) 12:02:51 ID:xN6e+uCj
>>101
アップロード終了と同時に削除される
なのでis_upload_fileのあとでmove_upload_fileを使ってtmp_nameのファイルを移動する必要がある

http://php.s3.to/man/features.file-upload.html
>移動または名前の変更が行われていない場合、リクエストの終了時にその ファイルはテンポラリディレクトリから削除されます。

991 :nobodyさん:2006/08/07(月) 12:11:54 ID:???
今、ものすごい亀レスを見たw

というか次スレ誰か頼む…
自分は無理だった。

992 :名無し募集中。。。:2006/08/07(月) 12:15:51 ID:xN6e+uCj
まあいいじゃないか

993 :nobodyさん:2006/08/07(月) 12:17:14 ID:???
自分で回答探して
カキコしたんじゃねーの?

994 :名無し募集中。。。:2006/08/07(月) 12:18:36 ID:xN6e+uCj
んなこたーない
俺が夏休みで暇なんで上からログを読んでただけだ

995 :nobodyさん:2006/08/07(月) 13:14:50 ID:???
>>991
立てたー

【PHP】下らねぇ質問はここに書き込みやがれ 26
http://pc8.2ch.net/test/read.cgi/php/1154923910/

996 :nobodyさん:2006/08/07(月) 14:03:17 ID:???
>>995
おつですー。
// 俺、素直に●買っとこうかな…

997 :nobodyさん:2006/08/07(月) 14:04:49 ID:???
>>995
しかも簡易FAQも作ってくれたのか。ありがとー!
ところで -- まとめサイト -- はどうなったの?

998 :nobodyさん:2006/08/07(月) 14:15:13 ID:???
あの簡易FAQは元本スレにあったやつの改変だよ。
一部、より初心者向けの内容に手直ししただけ。

999 :nobodyさん:2006/08/07(月) 14:28:31 ID:???
マシンのバディを手に入れたぞ!!!

1000 :nobodyさん:2006/08/07(月) 14:35:13 ID:???
もっともっと勉強して、PHPでWebプログラムをじゃんじゃん作るのが夢なんだ!
がんばるぞー!!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

271 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)