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

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

【PHP】質問スレッドpart21【php】

1 :nobodyさん:04/08/27 18:00 ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ等>>2-4


2 :nobodyさん:04/08/27 18:01 ID:???
過去スレ
【PHP】質問スレッドpart20【php】
http://pc5.2ch.net/test/read.cgi/php/1091774679/

3 :nobodyさん:04/08/27 18:04 ID:???
関連スレ
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/


4 :nobodyさん:04/08/27 18:28 ID:???
( ̄о ̄:)

5 :nobodyさん:04/08/27 19:51 ID:9bd9wFW/
phpize ってコマンド打つと、ファイル無いよ?エラーが一杯出るんだけど、
PHPインストール時になんか特別なことしなきゃならなかったんでしょうか?


6 :nobodyさん:04/08/27 19:58 ID:PYuyKaM7
質問です

$com = str_replace("[",",",$com);
echo $com;

これをすると化けてしまいます。
ereg_replaceでもmb_ereg_replaceでも化けます。
"["のようなメタ文字を置換しても化けないようにできないでしょうか?

7 :nobodyさん:04/08/27 20:10 ID:???
$comに何が入ってるかは教えてくれないんだね

8 :nobodyさん:04/08/27 20:12 ID:tl2C9eKh
皆様、携帯で画像を表示させるときにどうやって振り分けてますか?
正規表現でUserAgentを見てあらかじめ登録しておいたサイズに
照らし合わせてリサイズするという方法しかないんでしょうか?
どうか教えてください!偉い人!

9 :nobodyさん:04/08/27 20:12 ID:???
>>7
「教えてください。お願いします。」だろ?

10 :6:04/08/27 20:18 ID:PYuyKaM7
>>7
$comには

[名前] 明日野 条
[住所] 日本関東

みたいな情報が並んでいます。

11 :nobodyさん:04/08/27 20:48 ID:MFxEexml
>>10
$comの文字エンコーディングは?

12 :nobodyさん:04/08/27 20:49 ID:???
>>8
それしかありません。
一部携帯は、画面サイズとかヘッダ情報からとれますが、
3キャリア対応だと無理ですね。

まあ、新しい機種が発売されるたびに更新する必要があって面倒ですが。

13 :nobodyさん:04/08/27 23:04 ID:s0PWqgRO
PHPって携帯に対応してます?

14 :nobodyさん:04/08/27 23:06 ID:???
>13
対応してるも何も、サーバーで動いてるやん

15 :nobodyさん:04/08/27 23:11 ID:???
>>13
もう少し勉強して出直して来い

16 :nobodyさん:04/08/27 23:29 ID:???
require_once("lib/hoge_lib.php");
require_once("lib/hoge_db.php");

この形でファイルを読み込んでいるのですが、サーバによってはシングルクオートで
括らないと、ファイル読み込み出来ない事があります。それぞれのファイルに定義して
あるユーザ関数を、一つのファイルにまとめて実行してもエラー出力はないのですが、
この場合、どういったところから洗い直していけばよいのでしょうか?

PHP4.3.8 / configureオプション, php.iniは、基本的に同じ設定で、エラーレベルは
E_ALL, display_errors = Onになっています。

17 :nobodyさん:04/08/27 23:38 ID:VDNxy0Ve
PHPのサンプルってPerlと比べて圧倒的に少ないですけど、
その辺皆さんはどうやって補完していますか?

18 :nobodyさん:04/08/27 23:43 ID:???
いや、多いだろ

19 :nobodyさん:04/08/27 23:46 ID:???
っつーかperlが無駄に多いだけだろ。

20 :nobodyさん:04/08/27 23:47 ID:???
夏も終わりに近づいて最後のラッシュか (´ー`)

21 :nobodyさん:04/08/27 23:47 ID:???
Perlを脳内変換してPHPにする

22 :nobodyさん:04/08/28 00:04 ID:???
出会い系の掲示板作ろうと思うんだが
メールアドレス確認の時に携帯宛に
http://〜略/index.html?03169785436
とかあるっしょ?
それはどういう意味なんでつか?
ただ乱数発生させてるだけなんですかね?

23 :nobodyさん:04/08/28 00:06 ID:???
>>22
業者は去れ

24 :22:04/08/28 00:07 ID:???
漏れ学生なのに業者だったのか_| ̄|○

25 :nobodyさん:04/08/28 00:15 ID:???
http://〜略/index.html?03169785436
↑みたいなアドレス使って何したいの?
これは業者が携帯番号掴む為によくやる手法だが
それしたいってのならまるっきり業者じゃん

26 :22:04/08/28 00:29 ID:???
>>25
なるほど、これれは電話番号掴むのにやるのか・・・
本人確認したい時皆はどうします?

27 :nobodyさん:04/08/28 00:48 ID:???
臭い業者は去れ

28 :nobodyさん:04/08/28 00:54 ID:???
SJISで掲示板を書いたのですが、サーバー以降の際、MB関数の設定が変わって
AddSlashesをif()式で囲んでいなかった為、無駄にslashが追加されてしまい、その部分だけ
「表」「パ」などの文字が文字化けしてしまいまい、
逆にその文字列にstripslashesを実行しても変化がありませんでした。

どのようにすれば元に戻せるのか、教えていただけませんでしょうか。

29 :カポコン:04/08/28 01:23 ID:???
mb_eregi_replace ()
でも使いなさい。

30 :nobodyさん:04/08/28 01:31 ID:???
pear Flexy ってキャッシュありましたっけ?
Smartyはあるのになぁ

31 :nobodyさん:04/08/28 01:58 ID:???
今までのPHPの質問まとめてみたぽ
http://2ch.lock.client.jp/data/034697845289.html

32 :nobodyさん:04/08/28 02:45 ID:???
>>26
サービス契約者以外が知ることのない、
IDとPassの組み合わせを使って認証&同定する。
# 固有番号もあてになんねぇしな。



33 :nobodyさん:04/08/28 08:51 ID:XkJS6oW1
メール送信の時どの関数使います?
mail、mb_send_mail、imap_mailがありますが
あと、CCとBCCってなんだっけ

34 :nobodyさん:04/08/28 08:59 ID:???
>>33
それぞれのマニュアルを読むとそんな質問は出てこない気がするんですが....
まだ読んでないのならこの機会に熟読されることをお勧めします。
CC・BCCについては「メール CC BCC」で検索すれば答えが見つかると思います。

35 :33:04/08/28 09:24 ID:???
ありがとございます
関数分かっても文の書き方がわからないぽ_| ̄|○

36 :33:04/08/28 09:35 ID:XkJS6oW1
論理値 = imap_mail(送信先,タイトル,本文,[追加ヘッダ,CC,BCC,リターンパス]);
これでメールが送信できるのかどうか

37 :nobodyさん:04/08/28 10:34 ID:???
(・∀・)サァ!!

38 :nobodyさん:04/08/28 11:45 ID:???
特に必要性が無い限り面倒だからmb_send_mail()にまかせっきりだ

39 :nobodyさん:04/08/28 12:04 ID:imkrnG7F
PHPの文字コードをシフトJISでブラウザに読み込ませたいんだけど
メタで指定しても優先順位が拡張子が最初なのでどうしてもEUCで読み込んでしまいます。
もちろんHTMLならシフトJISで読み込みます。
これをPHPでも最初からシフトJISで読み込む方法はないでしょうか?
なぜシフトJISなのかというと携帯で表示させたいのです。
だからデータベースからPHPまではEUCでそこからシフトJISに変換後
ブラウザに表示させるといった感じです。
どうかアドバイスよろしくお願いします。

40 :nobodyさん:04/08/28 12:06 ID:???
(;´Д`)

41 :nobodyさん:04/08/28 12:20 ID:???
>>39
あんた今まで何学んだんだ?
一から勉強し直しだなw

42 :nobodyさん:04/08/28 12:21 ID:???
(・∀・)サァ!!

43 :nobodyさん:04/08/28 12:30 ID:imkrnG7F
>>41
単純な問題なのでしょうが、テンパっていて何も思い浮かびません。
納期間近なのでよろしければ方法を教えてください。

44 :nobodyさん:04/08/28 12:37 ID:???
まるてぃばいと関数をつかうのオススメ?

45 :nobodyさん:04/08/28 12:38 ID:???
テンパるのは構わんが問題を簡潔に分かり易く伝えてくれ
てか本職ならそれぐらい分かれ

46 :44:04/08/28 12:38 ID:???
m、よくわからん"?"がついてしまったorz

47 :nobodyさん:04/08/28 12:43 ID:???
>>39>>43
つーか、質問の内容がよく分からんのだが
そのまま納期を迎えてみたら?

そのまえにな、まともな回答キボンヌならソースくらい提示しろ糞が!

48 :nobodyさん:04/08/28 12:46 ID:???
>>41
マニュアルのmb_ 関連見れば、3分で解決するようなことだと思うんだけど。


49 :nobodyさん:04/08/28 12:59 ID:imkrnG7F
わかりにくくて申し訳ないです。。単純にPHPファイルをブラウザで開いたときにシフトJISで開きたいのです。
PHPの場合メタでシフトJISにしててもEUCで開きますよね?だから開いたとき文字化けしてるのです。
方法ありますか?

50 :nobodyさん:04/08/28 13:01 ID:???
>>43
同業者として悲しくなるので、今すぐ転職してください。

51 :nobodyさん:04/08/28 13:02 ID:???
<?PHP
header('Content-type: text/html;charset='シフトJIS');
?>
をHTMLの先頭にする。

52 :nobodyさん:04/08/28 13:04 ID:???
真性厨房かと思ったら仕事かよ。
世も末だ。

53 :nobodyさん:04/08/28 13:06 ID:???
えー?こんなレベルでも仕事ってできるんだあ

54 :nobodyさん:04/08/28 13:19 ID:???
>>53
えー?できるよ。おれショッピングカート作れないほど低レベルだけど、月50近くあるよ。

55 :39:04/08/28 13:24 ID:imkrnG7F
>>51
できたーー!!こんな単純なことだったのか!
あなたたちはほんとにすごいね〜
みんなの知恵が重なったときに力って発揮されるもんだね
本当にありがとう!

>>53
どの部分かが長けてれば仕事にはなるよ

56 :nobodyさん:04/08/28 13:27 ID:???
重なってない
分かってなかったのはあんただけだから

57 :nobodyさん:04/08/28 13:30 ID:bA6FLPcw
この前ショッピングカート作った。

58 :nobodyさん:04/08/28 13:31 ID:imkrnG7F
>>56
そっか|Д`)
まあ良いじゃんわからないときは助け合いで!
すごい良いスレだよね〜

59 :nobodyさん:04/08/28 13:34 ID:???
>>54-55
お前らな、500円やるから他職逝けと
プログラマってのはな、もっと神聖としてるべきなんだよ
得意げな顔して何が、「どの部分かが長けてれば仕事にはなるよ」だ
お前、プログラマを絶対舐めとるちゃうんかと

まあお前らド素人は、せいぜい今のうちに余生を楽しみなさいってこった

60 :>>59:04/08/28 13:47 ID:imkrnG7F
俺は専門のプログラマじゃないよ
営業、マーケティング、製作とマルチにやってる
そしてプログラマを舐めてるつもりもない

ここはわからない部分を質問して教えてもらうスレじゃないのか?
>>51さんが教えてくれて俺は救われた
2ちゃんという掲示板の存在意義はここにもあるのでは?

61 :nobodyさん:04/08/28 13:52 ID:Mb7EMv7r
漏れはアマグラマでつが、この板に来てもよろしいでつか?

62 :nobodyさん:04/08/28 13:57 ID:v9ahrS8w
CGIを探してくれるスレが見つからんので・・・

http://wa-ka.net/mash/sozai/yakumo/index.html

↑のような、シンプルな一言掲示板をインラインフレームを使わずに
htmlページに貼り付けたいのですが。
そんなCGI無いですか?

63 :nobodyさん:04/08/28 14:03 ID:bA6FLPcw
> 2ちゃんという掲示板の存在意義はここにもあるのでは?

煽られるのも叩かれるのも2ch

64 :nobodyさん:04/08/28 14:06 ID:???
>>60
答えられるような聞き方をしろってこった

65 :nobodyさん:04/08/28 14:09 ID:???
>>62
>CGIを探してくれるスレが見つからんので・・・
検索かけたら直ぐ見つかったが?

【CGI】こんなCGI探してますver.14
http://pc5.2ch.net/test/read.cgi/hp/1087986364/

66 :nobodyさん:04/08/28 14:20 ID:v9ahrS8w
>>65
アリガトウゴザイマシタ。サッソクケンサクスレイッテキマス。

67 :nobodyさん:04/08/28 15:25 ID:B6xIg3wk
clearstatcache について質問です。

file_exists でファイルの存在確認をして、存在しなかったら exec によりそのファイル生成を行うコマンドを実行し、
再び file_exists でファイルの存在確認をしています。

if(!file_exists('test.txt')) {
 exec('make_test');
 if(file_exists('test.txt')) {
  echo 'ファイルがある';
 }
 else {
  echo 'ファイルが無い';
 }
}
else {
 echo 'ファイルがある';
}

上記のようにしたところ、exec が成功して目的のファイルの生成が完了しているにもかかわらず、
ファイルが無いと出てきます。
調べたところ file_exists は、その結果をキャッシュするため、続けて実行するときには clearstatcache が
必要なる記述を見つけました。

続く


68 :67:04/08/28 15:27 ID:B6xIg3wk
そこでスクリプトを以下のように書き換えて実行しました。

clearstatcache(); // ←追加
if(!file_exists('test.txt')) {
 exec('make_test');
 clearstatcache(); // ←追加
 if(file_exists('test.txt')) {
  echo 'ファイルがある';
 }
 else {
  echo 'ファイルが無い';
 }
}
else {
 echo 'ファイルがある';
}

でも結果は変わりません。
webで調べてみたところ、
http://ns1.php.gr.jp/php-jp/archives/msg05496.html
のような症状を発見し、これと同様のことが起きているものと思われます。
しかしこのMLは、結論が出ることなく話題が終わっています。

PHPのバージョンは 4.3.7 です。

解決策をご存知の方、ぜひ教えてください。



69 :67=68:04/08/28 15:35 ID:???
あ、このスクリプトを続けて実行すると、二度目は ファイルがある と返してきます。

70 :nobodyさん:04/08/28 15:52 ID:???
exec('make_test');
この辺りの詳細が欲しい

71 :67:04/08/28 16:05 ID:???
>>70
DBにアクセスして、その内容を編集したファイルを出力するものです。
出力ファイル名は、上記スクリプト内でチェックしているものと一致しています。
さらに、各 file_exists の前に、デバッグ用に system('ls') を追加してみたところ、その出力には目的ファイル名の
存在が見て取れます。
にもかかわらず、file_exists は false を返すのです。

また >>69 にもあるように、2度目の実行では file_exists は true を返しているようです。


72 : ◆.jC7ANgFY. :04/08/28 16:29 ID:???
手がないと思ったらこんな関数とか作ってみればいかが。

function file_exists2($filename) {
return (boolean)glob($filename);
}

安全を考えるなら検索するファイル名を制限しなければならない。
globは"*"とかに対応した関数だから。

function file_exists2($filename) {
return !preg_match('/[\*\{\}\?]/', $filename)
and (boolean)glob($filename);
}



73 :67:04/08/28 16:30 ID:???
あー、すみません。
ええと、実は上記スクリプトは、もっと大きなスクリプトの一部分なんですが、ここに公開した部分だけで
動かすとうまくいくみたいです・・・
ごめんなさい。

ただ、元のスクリプトでも、該当部分でやってることは上記スクリプトと全く同じなんですけどね。
>>71 で書いたexec('ls') を挿入した話は、元のスクリプトの方でやってます。
exec('ls') で存在確認できるファイルが、file_exsits では false になってしまうという問題は
依然として解決できません。

とにかく、これからもくもくと実験します。
スレ汚しすみませんでした。

ところで、コマンドラインから実行する場合と apache から実行される場合とで、挙動が違ったりするってことは
ありますか?


>>72
実はこの部分はわりと頻繁に実行されるところなので、できるだけシンプルな処理にしたいです。
でも、どうにもならなくなったらそのアイディア頂戴します。
ありがとうございます。


74 : ◆.jC7ANgFY. :04/08/28 16:39 ID:???
apacheから実行されると、というよりかセーフモードで実行されると
パーミッションとしては許可されていても開けない場合があるから注意。


75 :nobodyさん:04/08/28 16:41 ID:???
>>60
おまいの言ってる事は概ね正しい。

で、おまいは何のスペシャリストなのよ。
自分でコード書いてるようだが、納品とか言って人様に収める仕事をやってるようだが、
ちゃんと責任の持てる品質に仕上がったか?
言ってることと行動が重なってないぞ。

76 :73:04/08/28 16:41 ID:???
たびたびすみませんが、紛らわしい書き方を修正します。

>>73
>exec('ls') で存在確認できるファイルが、file_exsits では false になってしまうという問題は
>依然として解決できません。

これは、>>68 スクリプトの最初の if の前に挿入したものでは、exec('ls') の結果には目的ファイルは
含まれておらず、file_exists が false を返すという正しい動作をしています。

その if の中に入って、exec('make_test') が実行された後に挿入した exec('ls') では、その結果に
目的ファイルが含まれていることを確認できますが、その後の if の file_exsits では false を
返します(ファイルは存在するのに false が返る)。

最初は、1つめの if で実行した file_exists の結果がキャッシュされ、2つめの if では現実を即していない
そのキャッシュが結果として返っているらしいという考えから clearstatchahe() を追加したのですが、
それでも上記問題が解決しないのです。


77 :73:04/08/28 16:44 ID:???
>>74
apache からの実行時に、ファイルを開いたり作成したりを問題なく行えることは、スクリプトのほかの部分で
実績があるので問題ないと思います。
ありがとうございます。


78 :nobodyさん:04/08/28 17:28 ID:???
規模が大きくなりそうなので
オブジェクト指向で書こうと思います。
まだ出たばっかりのPHP5を使うのがいいか、
PHP4で書くのがいいのか、どっちでしょう。
またPHP4で構築→PHP5用に後から書き直し、
なんてことにならないでしょうか?

79 :nobodyさん:04/08/28 18:11 ID:bA6FLPcw
PHP4→PHP5は、書き直し必須です。
オブジェクト指向で書くならなおさら。

80 :nobodyさん:04/08/28 18:26 ID:???
すいません、PHP関連ライブラリのインストールについてなんですが、
phpizeというコマンドを使うらしいのですが、
コマンドを打つと、

cp: `mkdep.awk' を stat(2) できません: そのようなファイルやディレクトリはありません
cp: `scan_makefile_in.awk' を stat(2) できません: そのようなファイルやディレクトリはありません
cp: `shtool' を stat(2) できません: そのようなファイルやディレクトリはありません
cp: `acinclude.m4' を stat(2) できません: そのようなファイルやディレクトリはありません
cp: `Makefile.global' を stat(2) できません: そのようなファイルやディレクトリはありません
/usr/local/bin/phpize: line 52: /usr/local/lib/php/build/phpize.m4: そのようなファイルやディレクトリはありません
aclocal: `configure.ac' or `configure.in' is required

なんてエラーが出ます。
これらのファイルはPHPインストール時に入るものじゃないんでしょうか?

phpizeについて全くわからないので、
質問も的をはずしているかもしれませんが、
教えていただけないでしょうか?

81 :80:04/08/28 18:38 ID:???
PHPは4.3.8でソースからインストールしています。

82 :軟式PHP:04/08/28 18:38 ID:???
PHP Screwでもインスコしようとしてるんかな。


83 :nobodyさん:04/08/28 20:26 ID:jL6OGaFR
正規表現で$enameに格納されてる者の語尾が「たん」「ちゃん」「くん」「さん」の場合と
それ以外の場合とを振り分けたいのですが、以下の通りソースを書いたところ
うまく作動しません。どのように直したらよいですか?

if (preg_match( "/.たん/|/.ちゃん/|/.くん/|/さん./", $ename ) ) {   
 print "OKです"; // 一致した場合
}else{
 print "呼び捨てはやめてください";
}


84 :カポコン:04/08/28 20:35 ID:???
>>78:
 PHP5の予約語もおさえてから、取り掛かる事オススメ。
>>80:
 aclocal: `configure.ac' or `configure.in' is required
  install-shを探し、
  Makefile.inをautomakeで作れた?

85 :nobodyさん:04/08/28 20:45 ID:???
>>83
ひどいな。。。
patternの書き方が致命的におかしい。
マニュアルのパターン構文を熟読されたし。

86 :nobodyさん:04/08/28 20:51 ID:PMoKUUmE
>>83
"/(たん|ちゃん|くん|さん)$/"

87 :カポコン:04/08/28 20:59 ID:???
>>78:
 PHP5の予約語もおさえてから、取り掛かる事オススメ。
>>80:
 aclocal: `configure.ac' or `configure.in' is required
  install-shを探し、
  Makefile.inをautomakeで作れた?

88 :nobodyさん:04/08/28 22:52 ID:vl2m4F3+
ttp://php.s3.to/data/dl.php?dl=chskin
ここの掲示板に2chみたいにスレ一覧をつけるには、どこをどうしたらいいのでしょうか?
教えてください。お願いします。

89 :nobodyさん:04/08/28 23:10 ID:???
>88
知るか

90 :nobodyさん:04/08/28 23:17 ID:???
>>88
機能を付け加えるのって結構面倒な作業なのよ。
で、そういうのが好きな人たちが集まってそうなスレがあるから
そっちの方がいいんじゃないかな?
オイラは見てないし、今でも機能してるかどうか分からないけど
「丸投げ」でこの板を検索すれば見つかるんじゃないかな。

91 :nobodyさん:04/08/29 00:03 ID:???
>>88
おまえの頭をとっかえる。
てか、自分でやろうとして行き詰ってから質問しにこいよ

92 :nobodyさん:04/08/29 00:05 ID:AyQVtsJd
$ename = preg_replace( "/.(さん|君|殿)$|.()$/" , "様", $ename );

$enameの語尾に「さん」「君」「殿」がついている場合は「様」に置換。
それ以外は語尾に「様」つけて、必ず「○○様」という様に変換するように
したいのですが、↑のソースですとうまくいきません。
どのように変えたらよいですか?



>>86
ありがとうです。でも、質問の仕方を間違ってました。
のでもう再び質問です。丁寧に回答なさってくれたのにすいません。

93 :nobodyさん:04/08/29 00:16 ID:???
>>92
$ename = preg_replace( "/(さん|君|殿|様)$/" , "", $ename )."様";

94 :nobodyさん:04/08/29 01:20 ID:AyQVtsJd
>>93
なるほど、ありがとうございます。助かります。

$ename = preg_replace( "/(さん|君|殿|様)$/" , "", $ename )."様";
この場合ですと、$enameに格納されているものが「さん」「君」「殿」「様」
だった場合でも「様」に変換されてしまいますよね・・・
例えば$enameに格納されているものが「さん」だった場合、「さん様」
となるようにするにはどうしたらよいですか。

何度もすいませんがよろしくお願いします。。


95 :nobodyさん:04/08/29 01:25 ID:???
>>94
プログラミングセンス無さ杉
$ename = preg_replace( "/(君|殿|様)$/" , "", $ename )."様";

96 :nobodyさん:04/08/29 01:30 ID:???
>>94
ああ、"さん"って名前の人が居た場合か
それならこっちだな
if($ename != 'さん') {
$ename = preg_replace( "/(さん|君|殿|様)$/" , "", $ename );
}
$ename .='様'

97 :nobodyさん:04/08/29 01:42 ID:???
正規表現についてはスレ違いだと思うが。
後方参照使えばええやん。
$ename = preg_replace("/(.*)(さん|君|殿|様)$/", "$1様", $ename);


98 :97:04/08/29 01:46 ID:???
シクジッタ。

99 :97:04/08/29 01:46 ID:???
更にしくじった_| ̄|○
$ename = preg_replace('/(.*)(さん|君|殿|様)$/', '$1様', $ename);

100 :nobodyさん:04/08/29 02:00 ID:???
>>97
(.*)とか$1付けんでも普通に
$ename = preg_replace('/(さん|君|殿|様)$/', '様', $ename);
でええやん?

101 :nobodyさん:04/08/29 02:08 ID:???
>>100
バカは黙ってろって

102 :92:04/08/29 02:36 ID:???
>>99
なんか怪しくねぇか、それ。

$enameが「さん」のみ「殿」のみとかだったら、後ろに「様」をつけて「さん様」「殿様」にして
「Aさん」「B殿」だったら「A様」「B様」にするんだろ。

$ename = preg_replace( "/(.+?)(さん|君|殿|様)?$/" , '$1様', $ename);

103 :nobodyさん:04/08/29 02:56 ID:???
ヨン様

104 :nobodyさん:04/08/29 03:00 ID:???
ヨン殿

105 :97:04/08/29 03:04 ID:???
>>102
_| ̄|○

106 :102:04/08/29 03:13 ID:???
しまった。102の92は93の間違いですた。

107 :nobodyさん:04/08/29 03:14 ID:AyQVtsJd
みなさんありがとうございました。
>>102さんので出来ました。
本当にありがとうございました


108 :nobodyさん:04/08/29 04:22 ID:???
ぬるぽ

109 :nobodyさん:04/08/29 04:25 ID:???
>>108 ぷちゅ

110 :nobodyさん:04/08/29 05:41 ID:???
数種ページがある場合
1ページにつき1つのPHPファイルで表示するのと、
全ページを1つのPHPファイルで処理するのではどちらが負荷が軽いですか?
掲示板で言うとTOP,書き込みページ,ログを別々のPHPファイルで処理するみたいな

111 :nobodyさん:04/08/29 06:24 ID:???
>>110
負荷よりメンテナンス性で考えろ。
分かりやすい、変化に強いコードを書いてそれで重くなったのなら後からチューニングすればいい。

112 :nobodyさん:04/08/29 06:37 ID:???
>>110
フレーム切ってブラウザから多重で呼ぶ作りではなく、
メイン1つとメインから複数のサブを関数的にコールする作り
の話なら負荷の差云々は気にするな。

113 :nobodyさん:04/08/29 07:00 ID:???
>>111 >>112
ありがとうございます
これで安心して作れます

114 :112:04/08/29 08:05 ID:???
112は、
「TOP,書き込みページ,ログを別々のPHPファイルで処理する」
に対応する内容ではなかったな…

素のPHPだけの場合だと、分割の方がメモリ占有の部分で
若干負荷が高い。CPU負過の部分では同等。
しかし、そんなもんは微々たる瑣末なこと。
111の言うとおりメンテナンス性を優先

本当に負荷を気にするほどのレベルなら、
PHPでもプリコンパイルされたバイナリの利用、
全体/部分的にPHP以外の採用も検討。


115 :112:04/08/29 08:06 ID:???
>>114
分割の方がメモリ占有の部分で若干負荷が"低い"。の間違い

116 :nobodyさん:04/08/29 09:28 ID:Kc1bBELS
日曜php歴2週目のおじさんです
phpで "->"って演算子ですか?
$tmp = $row->tmp;

自力で調べてみましたがよくわかりません。






117 :nobodyさん:04/08/29 09:40 ID:???
クラスを勉強してみてください

118 :nobodyさん:04/08/29 10:54 ID:???
->は構造体のポインタ変数からメンバを参照するときに使います。

119 :nobodyさん:04/08/29 10:54 ID:W8RVkldu
ありがとうございます
調べる対象すら判らなかったので助かりました。

120 :80:04/08/29 13:30 ID:???
>>84
すいません。どうすればいいか分かりません。
install-sh が phpのソースのところにあったり、
インストールしたいPecl APCのところにあるのはわかりますが。


121 :nobodyさん:04/08/29 13:39 ID:???
みんな詳しいな〜
毎週うちにきて、隣で教えてくれると助かるんだけどね。
もと風俗譲の27歳でした。

122 :80:04/08/29 14:12 ID:???
自己解決しました。
意を決してphpizeをviで開いてみる。
「あ、これshなんだ・・・と気付く」

なんか、インストールのときに変なことをやったらしく、
/..../php/build
になるべきところが
/..../php/php/build
になってました・・・。

viでそのままパスを書き換えたらうまくいきました。
こんな対応でいいのか、いまいち不安ですが、一応解決です。

123 :nobodyさん:04/08/29 14:21 ID:???
>>121
きもい

124 :nobodyさん:04/08/29 14:24 ID:???
>>123
まだ使えますよ。


125 :nobodyさん:04/08/29 14:25 ID:???
>>122
変な位置に入ったなw
入れ直してスッキリすればいいのに。


126 :nobodyさん:04/08/29 14:28 ID:???
>>121
ごめん、おれロリコン。

127 :nobodyさん:04/08/29 14:29 ID:???
>>124
生涯現役だもんで(AA略

>>122
fileコマンドを使えばドキドキしながらviで開かなくて済むよ

128 :nobodyさん:04/08/29 14:36 ID:???
すごい初歩的な質問ですいません。

$_POSTのデータは、中身に数値以外の情報が入ってることが
確定だった場合、何でもかんでもhtmlspecialcharsでエンコードすべきですか?

129 :nobodyさん:04/08/29 14:44 ID:???
数値や文字とか考えずになんでもかんでも htmlspecialchars してよし。

130 :nobodyさん:04/08/29 14:46 ID:???
>>129
よーし。パパもスクリプト書き換えちゃうぞ〜〜


131 :nobodyさん:04/08/29 15:12 ID:???
>>129
ありがとうございます。今まで全部つけてたんだけど
ふと、無駄なことしてるような気がして聞いてみました。

132 :nobodyさん:04/08/29 15:14 ID:cCH4wkwY
とか言ってるんです。
もうね、馬鹿かど(ry

133 :nobodyさん:04/08/29 15:34 ID:???

 あ ふ ぉ か 

だからおまいらのアプリケーションは後からコードを観てもエスケープ処理が分散してて完全な対策が保証されなかったり、
最初に全入力値に対してエスケープ処理かけた結果が入力データの同一保持が壊れたりするんだよ。
出力対象に合わせて直前でエスケープ処理しる!

HTML に出力するんなら、直前 (出来ればテンプレート内部) でかけるんだよ。
Smarty なら escape 演算子使え。Flexy ならもっとスマートだ。

134 :nobodyさん:04/08/29 15:37 ID:???
>>133
休日に熱弁おつかれ。
分かったので、休んでて。

135 :133:04/08/29 15:46 ID:???
いやもう勘弁してよ。
PHP アプリケーションの質下がり杉。その手の相談も去年より増えた。
最近 PHP でやるって言うと顧客が不安な顔するし。

136 :nobodyさん:04/08/29 15:53 ID:???
>>135
君はあれだね。
出る杭は打つ。主義の人だね。
新しい人を拒む。
そんな事では将来暗いですよ。

137 :nobodyさん:04/08/29 15:55 ID:???
>>135
顧客が不安な顔をするのは君を見て、不安に思ってるので、
全体は下がっていないから安心しろ。


138 :nobodyさん:04/08/29 16:05 ID:???
>>135
しょぼ

139 :133:04/08/29 16:14 ID:???
もうこねーよ!・゜・(ノД`)・゚・。 ウワーン

140 :軟式PHP:04/08/29 16:17 ID:???
>>137
WAROTA

141 :nobodyさん:04/08/29 17:13 ID:???
>139
まぁ人によりけりだろ。

142 :nobodyさん:04/08/29 17:38 ID:nmd5+dtj
まともなことを言っても叩かれるのもまた2ch

143 :nobodyさん:04/08/29 18:34 ID:???
前スレでPHP Acceleratorが入らないと嘆いていた者です。

その後、Pecl APC と TurckMMCacheを入れて、
比較してみたので参考まで。
ベンチは手軽さ優先で ApacheBenchです。
(ab -n 500 -c 10)
ソースはそんなに大きくないですが、連想配列使いまくり。
Smarty使用です。

無し: 10.3 #/sec
Pecl APC: 26.3 #/sec
Turck MMCache: 28.2 #/sec

Zendより良いかは分かりませんが、
Turck の webページの比較はホントっぽい。
ttp://turck-mmcache.sourceforge.net/index_old.html

144 :nobodyさん:04/08/29 19:28 ID:???
FORMからの書き込みでDBに挿入するとき、文字化けしないようにする対策方法ってありますか?

145 :nobodyさん:04/08/29 19:42 ID:???
>>144
mb_convert_encoding

146 :軟式PHP:04/08/29 19:43 ID:???
同じ文字コードで入れる。

147 :nobodyさん:04/08/29 20:20 ID:???
それでも文字化けするときあるんです
原因がわからず、こまってます^^;

148 :軟式PHP:04/08/29 20:36 ID:???
どんな文字化けか分からずこちらが困ってます。


149 :nobodyさん:04/08/29 20:49 ID:???
V l f [タ

↑こんな文字化けです

150 :nobodyさん:04/08/29 20:53 ID:???
釣りに見えてきた

151 :nobodyさん:04/08/29 20:58 ID:???
METAタグで文字コード指定してる?

152 :nobodyさん:04/08/29 20:58 ID:???
>>149
ふざけてんのか

153 :nobodyさん:04/08/29 21:03 ID:???
はあ?
文字化けで困っちゃいけないの?

154 :nobodyさん:04/08/29 21:16 ID:???
データベースを使っていると
mb_convert_encodingだけでは文字化けしてしまう場合があります


155 :nobodyさん:04/08/29 21:17 ID:???
残暑が厳しいみたいだね…

156 :nobodyさん:04/08/29 21:20 ID:xD9nrE3/
日記スクリプトとかで、改行を<br>に変換するのってあるじゃないですか。
でもソースをみるとそこの部分は改行されず永遠と右にずらーっと続いています。
ソース上でも改行を加えたりすることはできないのでしょうか?


157 :nobodyさん:04/08/29 21:22 ID:???
>>156
できます

158 :nobodyさん:04/08/29 21:25 ID:???
>>156
\n を<br>\n に変換すればいい

漏れも暇人だな(プゲラ

159 :nobodyさん:04/08/29 21:38 ID:xD9nrE3/
>>158
それができないんです。
http://php.s3.to/simple/source.php?nikki.php
「$com = str_replace("\r\n", "\r", $com); 」あたりを弄ったんですが
それで編集するとどうもちゃんと更新されません。

160 :nobodyさん:04/08/29 21:48 ID:???
>>159
>更新されません
って言うのがよくわかりません。

161 :nobodyさん:04/08/29 22:02 ID:xD9nrE3/
>>160
入力した内容が表示されないんです

162 : :04/08/29 22:38 ID:ABDLQ/Kn
PHPプログラムする上で質問があります。
あまり経験がなく教えて君なのですが
global変数系をまとめておきたいのですが
<?php
$user = "test";
$password = "2ch";
?>

安易に上記のような感じで記述しようかと思うのですが
開発していく上で問題は起こらないでしょうか?
もし経験者いましたら教えてください。

163 :nobodyさん:04/08/29 22:38 ID:???
あと二日とちょっとの辛抱だ、皆頑張れ

164 :nobodyさん:04/08/29 22:49 ID:fDZT6TXT
>>162
define

165 :nobodyさん:04/08/29 23:43 ID:???
>>159
どう弄ったかは書かないわけ??

>>163
ホントそうだよなw

166 :nobodyさん:04/08/30 00:16 ID:LBsDFKra
JavaScriptで
hoge = parts.options[parts.selectedIndex].value;

とかやって、hogeの中に、文字列が入ってるんですが、
この文字列を、phpでつかう
$hoge変数に格納したいんですがどうすればいいでしょうか?


167 :nobodyさん:04/08/30 00:20 ID:QEqsYWNI
ドウモ〜〜〜ッ!!ハジメマシテ〜〜〜ッ!!!!
私は27歳のOLしてるのぉ〜〜〜っ♪(#⌒〇⌒#)キャハ
うーんとー、私メル友がすっごくすっごく欲しくってー、
探してたら(◎_◎)なんとっ!
>>1さんの素敵なスレッド♪を発見!!!!(^o^)//""" パチパチパチ
てなわけで、ついつい書いちゃったのらー(o^v^o) エヘヘ
メル友に、なってくれるよねっ。(*^-^*)
え?くれないのぉ〜?(;¬_¬)そんなのいやいや〜〜、
なってくれなかったら、( `_)乂(_´ ) 勝負!
☆○(゜ο゜)o ぱ〜んち、☆(゜o(○=(゜ο゜)o バコ〜ン!!
(>_<) いてっ!
(☆o☆)きゃ〜〜(@_@;)やられた〜〜(o_ _)o ドテッ
(+_+) 気絶中。。。
なあんて(#⌒▽⌒#)こんな私っ!σ(^_^)だけど、
お友達になってm(_ _)mくださいませませ♪('-'*)フフ
ということで。(^-^)vじゃあね〜〜〜♪

168 :nobodyさん:04/08/30 02:25 ID:???
>>149
なんか他国言語の文字のようだ(´A`)
DBって何使ってるの?そのDBの文字コードは?
そのへんから原因を探ってみてはどうだろう

169 :nobodyさん:04/08/30 02:29 ID:???
配列を$_POSTで渡したいのですが、調べてserializeを使う方法を
見つけたんですが、どうもうまくいかないです。どこが変なんでしょうか?

<?php
$hhh = array("a","b","c");
$hoge = serialize($hhh);
?>

<form action="<?= $PHP_SELF ?>" method="post">
<input type="checkbox" name="box" value="<?= $hoge ?>" />
<input type="submit" value="botan" />
</form>

<?php
if(isset($_POST["box"])) print_r(unserialize($_POST["box"]));   //*1
if(isset($_POST["box"])) print_r($_POST["box"]);          //*2
?>

*1 何も表示されない。こう表示させたい → Array ( [0] => a [1] => b [2] => c )
*2 出力結果 → a:3:{i:0;s:1:  (よく分からんけど、たぶん「Array」の変化したもの)

170 :nobodyさん:04/08/30 03:00 ID:???
>>169
デバッグのためにunserializeした後とする前の比較をしてるのに
なんでserializeした後とする前の比較をしないのか不思議でならない


171 :nobodyさん:04/08/30 06:45 ID:???
>>169
phpでパースして出力されたHTMLソースを
表示させて眺めると分かるかもよ
<input>タグのあたりとか


つか動作がおかしかった時にHTMLソースを
見るのはデバッグの基本だと思うがどうか?

172 :nobodyさん:04/08/30 07:44 ID:???
その後dtdを眺めたらよろしくhtmlspecialchars();を噛ませましょう。

173 :116:04/08/30 10:39 ID:kwBfpaHQ
昨日はどうもでした
もう一つ質問させて下さい"と'の使い分けについてですが
どういう場面でどっちとかあるんでしょうか?

174 :nobodyさん:04/08/30 10:59 ID:???
>>118がいないようなので代理で回答しますが、
'は文字型で宣言した変数に文字を代入するのに使います。
実際には文字コードの対応する値が入ります。
"で囲われた文字列は、式としては「メモリの先頭アドレス」を値に持ちます。

175 :nobodyさん:04/08/30 11:43 ID:???
$neta = "ネタだろ";
echo "\"$neta\"".'\'$neta\'';

176 :nobodyさん:04/08/30 11:57 ID:???
>>174
そりゃCの話な

177 :nobodyさん:04/08/30 15:22 ID:6Aumzc+N
abcd01234.abc.ne.jpというホストが入った変数に対して、
ereg("abcd*", $host)はtrueが返るのに、
ereg("abcd*\.abc\.ne\.jp", $host)がマッチしないのはなぜですか?

178 :nobodyさん:04/08/30 15:29 ID:???
>>176
>>118

179 : ◆.jC7ANgFY. :04/08/30 15:35 ID:???
ereg("abcd*\.abc\.ne\.jp", $host)は
abc.abc.ne.jp、abcd.abc.ne.jp、abcddd.abc.ne.jp
などにマッチする。やるなら
"abcd.*\.abc\.ne\.jp"


180 :nobodyさん:04/08/30 15:42 ID:???
>>179
ありがとうございます〜。
正規表現に対しての知識がまだまだ浅いみたいですね・・・。
勉強しなおします〜。

181 :軟式PHP:04/08/30 15:52 ID:???
最初は基本的に直前にしか効果がかからないって考えると
いいかもしれぬよ。つか台風すげーよ。

182 :67:04/08/30 16:11 ID:???
たびたびスレ汚しすみません。
一応原因がわかったので、報告します。

実は元のスクリプトでは、exec の前にカレントディレクトリの変更をするコードが入っていました。
exec が終わった後でカレントディレクトリは元に戻すのですが、その場所を file_exists 判定の
前に書くべきところを、後に書いていました。
こんなかんじ

$cd=getcwd();
chdir($execdir);
exec('make_test');
clearstatcache();
if(file_exists('test.txt')) {
 :
 :
}
chdir($cd); // ←こいつの場所はここじゃくて exec の直後であるべき

週末にぐーすか寝てからコードを見たらすぐわかりました。
いやはやお恥ずかしい限りです。


183 : ◆.jC7ANgFY. :04/08/30 16:14 ID:???
それと、完全にやりたいのであれば。
"^abcd.*\.abc\.ne\.jp$"にする必要がありますね。

# 関西ですがまだ風が強いだけでそこまで


184 :177=180:04/08/30 16:35 ID:???
>>183
前後に何もないことをチェックするんですね。
たびたびありがとうございます〜。

こちらも同じく関西ですが、台風とは思えぬ穏やかさ・・・。

185 :カポコン:04/08/30 16:40 ID:???
>>173
シングルとダブルの違いですか〜。。。
結構、面白い質問ですね、
同じ文字列を表現するという部分は一緒ですが・・・
例えば、
<?php
$ANI = array("bear","fox");
$str[0] = "$ANI[0]'s nails are very danger.\n"; //問題なし
$str[1] = 'The $ANI[1]\'s fur is very beautiful.\n'; //問題あり
foreach($str as $val) echo(nl2br($val));
?>
のようにタイポしてみれば、ある程度違いが分かるのではないでしょうか?
他にも違いがありそうなので僕よりエロイ方いたら教えてくださいな。
>>174
よくCってますねぇ・・・(゜д゜::)

186 :nobodyさん:04/08/30 16:46 ID:???
黙ってマニュアル読め

187 :カポコン:04/08/30 16:48 ID:???
まー、マトメればエスケープシーケンスが使える使えないという違いです。
ダブルとシングルのクォートの違いは・・・。

エスケープシーケンスの例(↓)
\n 改行; \\ \マーク; \r 復帰; \t タブ; \$ $マーク; \"ダブルクォート
\' (シングルクォート内でシングルクォートを使用したい場合)

188 :nobodyさん:04/08/30 16:51 ID:???
>>186
マニュアルに載っとるんかい。

189 : ◆.jC7ANgFY. :04/08/30 16:53 ID:???
II. 言語リファレンス > 第 6章 型 > 文字列
をよく熟知すべし。

190 :軟式PHP:04/08/30 16:54 ID:???
>>173
<pre></pre> = シングル
って思って書けばいいよ(´A`)

191 :169:04/08/30 20:00 ID:???
>>170-172
申し訳ない。base64_encode()追加で簡単に渡せますた。

本当はserialize()使用前後の比較も、HTMLのソースも見てたんだけど
どうも脳みそがグダグダだったようで……(serializeの意味も理解してなかった)


本当はこの配列を、さらに配列にして渡したかったんですが
そっちは簡単にできました。スレ汚しすまんです。

192 :nobodyさん:04/08/30 20:04 ID:???
マニュアルよりも>>187のが分かりやすいから>>187の奴でいいよ。

193 :nobodyさん:04/08/30 20:12 ID:???
>>192
カポコン自演痛い

194 :nobodyさん:04/08/30 21:47 ID:???
アパッチベンチしたときに、
多重度が低いととってもパフォーマンス悪いんですが、
そんなもんなんですかね?みなさん。

195 :nobodyさん:04/08/30 21:59 ID:???
sage

196 :nobodyさん:04/08/30 22:05 ID:???
サムネイルについて質問です。
楽天市場やヤフーオークションなどによく一覧を見るためにサムネイル画像が使われていますが
それらサムネイル画像には元の画像がありますよね。
元の画像が40kbなのに対しサムネイル画像は4kbとか約10分の1位の容量になっています。

これを単純にHTMLで画像のサイズを小さくしてサムネイルを作ると
40kbのままでサムネイルが出来てしまいます。

画像は同じ画像でもサイズを小さくすると容量まで小さくする関数などがあるのでしょうか?
よろしくご指導お願いいたします。

197 :nobodyさん:04/08/30 22:05 ID:OUKC12Ij
何かありそうで無いような。気づいてないだけなのか…。
イヤな予感すらしますが、教えてください。

array(3) { [0]=> string(2) "10" [1]=> string(2) "30" }
と言う配列をうまいこと
array(3) { [0]=> string(2) "10" [1]=> string(2) "20" [2]=> string(2) "30" }
にするような関数って無いですよね?


198 :nobodyさん:04/08/30 22:09 ID:???
>>196
ファイルが2つあるとは考えないのかい?

199 :nobodyさん:04/08/30 22:14 ID:???
>>198

早速のレスありがとうございます。
>ファイルが2つあるとは考えないのかい?
ということは画像をアップロードする時にサムネイル用の画像も自動で作られるという感じですかね?

200 :nobodyさん:04/08/30 22:18 ID:???
>>199
ワラタ
タフだな。

ImageMagic とか GD で調べれ。
面倒か使えるだけの理解力が無ければ >>198 のように、Fireworks や ImageReady といったソフト使って別に用意しる。

201 :nobodyさん:04/08/30 22:53 ID:???
>>200
ありがとうございます。

なるほどですね。まさか2枚にしてたとは・・
私はてっきり元画像をどうにかして容量を小さくして見せる方法があるものだと思ってました。
GDは使いやすそうですね

202 :200:04/08/30 23:11 ID:???
だから…
いや、もういいや orz

203 :nobodyさん:04/08/30 23:26 ID:MkaTkZM6
ものすごい根本的な質問なのですが、if文などの書き方は
if($aaaaa) {
  echo "ok";
} else {
  echo "out";
}
か、または
if($aaaaa)
{
  echo "ok";
}
else
{
  echo "out";
}
どっちの書き方してますか?どっちのほうがよいのでしょうか?

204 :nobodyさん:04/08/30 23:32 ID:???
好きにしたらええがな。

205 :nobodyさん:04/08/30 23:33 ID:???
>>203
個人的には

if($aaa) {
  echo "ok";
}
else {
  echo "out";
}

です。
理由らしい理由も無いですが、if の後ろに何も付けないとさみしい気がするのと、無駄に行が増えるのがいやなのとでこうしてます。
} else { みたいな書き方は、あんまりやりません。

書き方について説得力のある意見があるなら、自分もぜひ伺いたいです。


206 :nobodyさん:04/08/30 23:34 ID:???
pearの規則に
} else {
なかったっけ?
俺もこれ嫌いなんだけども

207 :nobodyさん:04/08/30 23:36 ID:???
200の説明のしかたが悪い。
嫌味ったらしく自分は分かっていることだけを晒して
肝心な部分を教えないタイプ。
俺はこういう奴は無視〜

208 :nobodyさん:04/08/30 23:38 ID:???
>>207
よくいるよくいる。_| ̄|○

209 :nobodyさん:04/08/30 23:40 ID:???
>>203
PEARのsourceをよんで真似してみよう!。
ちなみにPEARでは
} else {
を使ってます。

210 :nobodyさん:04/08/30 23:48 ID:???
PEAR標準コーディング規約
http://pear.php.net/manual/ja/standards.php
IDEも参考にしてるだろうから、合わせた方が楽なんだろうなぁ。

211 :nobodyさん:04/08/30 23:48 ID:???
>>207-208
おまいらで教えてやってくれ。任せた。

212 :nobodyさん:04/08/30 23:52 ID:???
>>206>>209>>210
おまいら一人だけ言えばいいよ

213 :nobodyさん:04/08/30 23:56 ID:???
>>205
確か C の話だったと思うけど、間違えて下のような書き方をしてはまったので
if($aaa) { という形にに変えたという話をどこかで読んだことがある。

if($aaa);
{
    echo "ok";
}

else の書き方は } else { と一行で書くよりは、
}
else { とした方が、diff コマンドで差分を作成する時に読みやすい差分ファイルが
できるという話があったような・・・。

214 :nobodyさん:04/08/31 00:16 ID:???
PHPでメールの受信をしたいのだけど、
IMAP関数を使用した方がいいの?
それともソケットでPOP3鯖にアクセスして取得すた方がいいの?
どっちも難しいそうだ…

215 :nobodyさん:04/08/31 00:23 ID:???
WEB+DB press vol.18買え。
PEAR使うと簡単。

216 :軟式PHP:04/08/31 00:30 ID:???
qmailでキックすればいいじゃそ。標準入力で読み込めるよ。

217 :nobodyさん:04/08/31 00:34 ID:???
if ($aaa) {
echo "ok";
} else {
echo "out";
}
これが正解
制御構造では、関数コールと区別するために 制御キーワードと開き括弧の間に空白を 1 つ置くべきです。

218 :nobodyさん:04/08/31 00:39 ID:???
>>216
レス有難う。
やりたい事は写メールBBSの様に(そのモノではないです)
メールを読み込んで更新する様なシステムを作りたいのです。
ちょっとまだ勉強中なので良くわかってないのですが。
貴重なお知恵を有難う御座いました。

219 :nobodyさん:04/08/31 01:18 ID:???
>>217
うーん、カッコの前に空白を置くのはなんか違和感あるなぁ。
ちなみにこのやり方の出典ってなに?

220 :nobodyさん:04/08/31 01:40 ID:???
>>219
同じ物は PFC で見た記憶がある。
俺はそれからスペース置くようにしてる。

でも制御構造はこれ。

if (true)
{
 処理
}

結局、始点と終点が分かりやすい方を取った。

221 :nobodyさん:04/08/31 02:15 ID:???
>220
キミに同じく

222 :nobodyさん:04/08/31 03:13 ID:???
>>197
書き込みすら気付かないところだった
そして何がしたいのか気付けない

223 :nobodyさん:04/08/31 03:28 ID:???
掲示板で、普通にアクセスすると、1件目から10件目で次が11件目から
20件目ってなりますけど、改行なしのログファイルから、普通にアクセスすると
先頭から100バイト、次をクリックすると101バイト目から200バイトまでって
表示させることはできないでしょうか?


224 :nobodyさん:04/08/31 04:11 ID:???
>>223
fseek()
fread()

225 :nobodyさん:04/08/31 07:21 ID:Cvp+faYJ
>>222
あ、気づいてくれました?
配列の1番目と2番目の間に、要素を追加し、元の2番目の要素は後ろにずれて
3番目になって欲しいんです。

226 :nobodyさん:04/08/31 07:37 ID:???
>>225
その配列が $a、挿入したい位置が $n、挿入したい値が $v だとすると、

array_splice($a, $n, 0, $v);

はどうよ?


227 :nobodyさん:04/08/31 10:18 ID:RICHNKvs
>>226
ありがとうございます。勉強させていただきました。
調べたらありました。↓

> array_splice
> offsetおよびlengthで 何も削除しないと指定した場合、
> 配列replacementの 要素はoffsetで指定された位置に挿入されます。

228 :nobodyさん:04/08/31 10:33 ID:???
今、PHPのman読んでたら
backtick演算子
って見慣れない演算子が出てきたんですけど、










backtick演算子って、
JUST ONE MORE KISS で悪の華?

229 :nobodyさん:04/08/31 11:14 ID:j9aJEHZO
>>228
おでこに「愛」と書いてあります。



あ、これ今井じゃなくて砂漠のガアラだ。

230 :nobodyさん:04/08/31 11:24 ID:???
すれ違いだけどNARUTO最近はまって全巻かっちゃった・・・

231 :nobodyさん:04/08/31 11:26 ID:???
>>228
懐かしいな・・・

232 :nobodyさん:04/08/31 12:01 ID:???
すいません。板違い&スレ違いかもしれないのですが、
move_uploaded_fileでアップされたファイルのmimetypeを調べたいのですが。
その場合環境変数のCONTENT_TYPEを使えばいいのでしょうか?
と言ってもCONTENT_TYPEをどう使えばいいのか分からないのですが・・
詳しい方いませんか?
今はGetImageSizeで画像か画像で無いかを判別してます。
それをもう少し詳しく調べたいのですが。


233 :nobodyさん:04/08/31 12:03 ID:rI5QNfOv
Googleの検索結果を配列に読み込もうとしているのですが、
fopenで開こうとすると
 http://www.google.co.jp/
ですと普通に開けますが、
 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=aaa&num=50
などと引数が付くと
 Warning: fopen("http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=aaa&num=50", "r") - Success in 。。。。
とエラーが出てしまいます。
色々調べてみたのですが、わかりません。識者の方、ヒントでも結構ですのでお教えください。

234 :nobodyさん:04/08/31 12:05 ID:rI5QNfOv
233 です。
PHP のバージョンは 4.2.3 です。


235 :nobodyさん:04/08/31 12:25 ID:???
以下のサンプルを実験してみたけど、warning も出ずにオープンできたっぽい。
PHP 4.3.7 です。

$fp=fopen("http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&c2coff=1&q=%82%AE%81%5B%82%AE%82%E9&lr=lang_ja","r");
print fgets($fp);
fclose($fp);


236 :nobodyさん:04/08/31 12:34 ID:???
>>235
試してみましたが同様に
 Warning: fopen("http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&c2coff=1&q=%82%AE%81%5B%82%AE%82%E9&lr=lang_ja", "r") - Success in 。。。
とエラーが出ます。
PHPの設定なのでしょうか?
allow_url_fopen は '1'です。
GETだと別の命令が必要なのでしょうか??


237 :nobodyさん:04/08/31 13:03 ID:???
>>236
Warning出てるけど、結局 fopen は失敗してるの?
戻り値は false?

238 :nobodyさん:04/08/31 13:11 ID:???
>>236
>>235のでうちもWarning出ないな@PHP4.3.8

239 : ◆.jC7ANgFY. :04/08/31 13:11 ID:???
>>236
Googleはuser_agentを設定しないと許可してもらえませんよ。

240 : ◆.jC7ANgFY. :04/08/31 13:33 ID:???
と思ったら、私も普通に接続できた。
ソケットの許可が下りてないとかかな、

241 :nobodyさん:04/08/31 13:49 ID:1XrzGRem
メールの送信プログラムで、
本文を mb_convert_encoding でJISにしたら受信時に文字化け、
SJISにしたら文字化けせずにスンナリいったんですが、
こんなことあるんでしょうか?
どこかのホムペで読みましたが、JISよりSJISの方がベターなのでしょうか?

242 :nobodyさん:04/08/31 14:04 ID:???
>>241
このヘッダが足りないとか?

Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit


243 :nobodyさん:04/08/31 14:07 ID:???
>>224
ありがとうございます。

>>233
<?php
$url = @file("http://www.google.co.jp/search?num=10&hl=ja&ie=Shift_JIS&q=$key_word&lr=lang_ja");
print_r ($url);
exit;
?>
ではダメ?

244 :241:04/08/31 14:17 ID:1XrzGRem
>>242
それは初耳でした。
で、それを加えて再度JISで試してみましたが、ダメでした。
でも調べたら、やはりSJISよりJISの方がベターっぽいですよね〜
うーん困った・・・

245 :241:04/08/31 14:20 ID:1XrzGRem
ちなみに php.iniは

mbstring.detect_order auto auto
mbstring.encoding_translation On On
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS SJIS
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.language Japanese Japanese
mbstring.substitute_character no value no value

で、スクリプトはEUCでコーディングしていますが、
何か問題ありますでしょうか?

246 :nobodyさん:04/08/31 14:29 ID:???
>>244
mb_send_mail でメール送ってるなら、この関数は日本語を JIS に変換して送ってくれるから、
自分でわざわざエンコードしちゃうと文字化けの原因になるかもね。
あと、mb_language の設定はどうなってるんだろう。

247 :241:04/08/31 14:35 ID:1XrzGRem
mb_language(Japanese);
です。
mb_send_mail は使用していないです。
9割大丈夫なのに1割文字化けしてしまうんです。
実際、SJISでメール送ることって結構問題発生するものでしょうか?
大きい問題が無いのならこちらを利用しようかなと。

248 :nobodyさん:04/08/31 14:39 ID:???
>>237
 戻り値は false です。
 ですが単純に"http://www.google.co.jp/"でのアクセスならtrueです。
>>239
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; Alexa Toolbar)');
を付加してみましたが、同じエラーでした。
>>243
試してみましたが、ブラウザは真っ白で、ソースでは
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML><HEAD>
 <META http-equiv=Content-Type content="text/html; charset=utf-8"></HEAD>
 <BODY></BODY></HTML>
だけです。

やはりソケットの許可とかなんですかね?その辺はあまり詳しくないのでもうちょっと調べてみます。

249 :nobodyさん:04/08/31 14:43 ID:???
>>247
世界のサーバに迷惑かけかねないから、決まりには従っておいた方がいいと思うよ。

ところで、エンコードしたサンプルメールをヘッダごとここに貼り付けてみたら、いいアドバイスしてくれる人がいるかもよ。


250 :nobodyさん:04/08/31 14:46 ID:???
>>248
基本的な質問だけれど、php.iniの設定にある
allow_url_openの値はどうなっているの?

251 :nobodyさん:04/08/31 14:52 ID:???
>>250
allow_url_fopen は '1'です。


252 :nobodyさん:04/08/31 14:54 ID:???
>>248
>単純に"http://www.google.co.jp/"でのアクセスならtrueです。

これなら、サーバが外部に接続できないとかいった問題は無いよね。
なんだろうね。
PHPのバージョンのせい?

253 :nobodyさん:04/08/31 15:06 ID:???
>>252
他のサイトでも試してみたのですが、
どうもGoogleだけエラーが返るようです。

もうちょっと探ってみます。

254 :nobodyさん:04/08/31 16:14 ID:???
$fp=file("http://www.google.co.jp/search?hl=ja&ie=Shift_JIS&c2coff=1&q=%82%AE%81%5B%82%AE%82%E9&lr=lang_ja");
foreach($fp as $fpv){
echo $fpv."<br>";
}
とか

255 :nobodyさん:04/08/31 16:22 ID:???
>>254
>>243 がダメなんだから、それもダメだろうよ・・・


256 :nobodyさん:04/08/31 17:36 ID:???
> 戻り値は false です。
> ですが単純に"http://www.google.co.jp/"でのアクセスならtrueです。

なんだ。ネタかよ

257 :nobodyさん:04/08/31 18:02 ID:???
>>253
http://ns1.php.gr.jp/pipermail/php-users/2003-November/019273.html

258 :nobodyさん:04/08/31 18:02 ID:???
>>256
fopen が成功したときに返すのは true ではないっていう、この際どうでもいい点以外に、なにか有意義な指摘は無いの?

259 :nobodyさん:04/08/31 18:09 ID:???
ない。うちの環境では起きてないのでようわからん。
ググれば出てくる話にダラダラレスしてる奴らも冗談半分なんだろ。
明確にネタだと言ったらすこしは醒めんか。面倒臭い。

260 :nobodyさん:04/08/31 18:15 ID:???
>>259
一瞬何の話か分からなかったw

261 :nobodyさん:04/08/31 18:25 ID:???
>>259
そのググったリンク知りたい。


262 :nobodyさん:04/08/31 18:29 ID:???
>>259
せめてPHPのバージョンくらい書けば?
お前の役に立たない回答も多少は有益になるぞ。

263 :nobodyさん:04/08/31 20:38 ID:???
ググって上のほうに来たのだとこれあたりか?
http://www.google.co.jp/search?q=cache:-u7P_8RU9r4J:bugs.php.net/bug.php%3Fid%3D8440+php+success+warning+fopen&hl=ja
しかし、似たようなトピックが結構あるし、この条件でもまだ2万近くヒットしてるから、
ちょっと特定はできんな。ML漁ったらさらに情報増えそうだ。

ちなみに今回はリダイレクト問題じゃなく、4.2.3でクエリ飛ばすとGoogleが403を
返すのをハンドリングできないというだけだと思われ。
# このスレでもちょっと前にもfile_get_con()で206がハンドリングできねえぞどうなってんだっ
# て話があったけど。
知ってる人には当たり前だが、phpのwapperはステータスコードのトリートは
ほとんどやらない仕様なのだ。

はるか昔、内部ステータスのSuccessがエラーで返っちゃうダメ仕様についても
readfileとかstreamの問題で何度か指摘されたことがあったが、これは果てしなく
分かりにくいのでいつのまにか修正されらしい。

解決策はみんな0.1秒で思いつくと思うので省略。

# ときに、レスポンスヘッダー見るくらい常識というのは、今や過去のことですか・・?

264 :あほグラマー:04/08/31 21:18 ID:???
>>263
ごめんね。
あほだからあなたの言ってること半分も解かりません。

でも偉そうなのは解かったYO!(・∀・)

265 :nobodyさん:04/08/31 21:21 ID:???
漏れはini_setの部分でネタだと思って手引いたw
PHP4.2にはUAディレクティブありませんから!!
ちなみにUAは、全く送らないかきちんと偽装する、が正解。
#しかしそうするとぐーぐるのサービス規定に抵触するモヨウ

266 :nobodyさん:04/08/31 21:23 ID:???
>>263
普通に常識。このスレの質問の9割は釣り。
残り1割はPerlで書かれた人工回答ルーチン。
おれも、、

267 :nobodyさん:04/08/31 21:28 ID:LThtawzV
そんなことより新しくなったIMAC凄くね?
前の頭に載せたくなるデザインもなかなかだったが、
今回のはマジ欲しい。

268 :nobodyさん:04/08/31 21:41 ID:???
問題が解決してからエラそうに言ってるバカがいるな。
最初に本当に気付いてたなら、その時に言えば感謝されたものを。


269 :nobodyさん:04/08/31 21:51 ID:???
(無能君の遠吠えでしたとさ)Oo。

270 :nobodyさん:04/08/31 21:56 ID:LThtawzV
>解決策はみんな0.1秒で思いつくと思うので省略

問題のカイケツってこれのことか?
0.1秒でカイケツしたのは>>268だけだろ?
他の皆はマックンに乗り換えようぜ!
古きよきコンピュータって感じで最高じゃん。
おでこの部分を人差し指でつついてフラフラさせたりして遊びたい。
スクリプトならOSXでもバリバリ開発出来るんだぜ。

271 :nobodyさん:04/08/31 22:00 ID:???
他の板でも宣伝してるやついた。mac板で評判がいまいちだから
外にあふれてきてるやつがいるのか? 巣に帰って呉よ

272 :nobodyさん:04/08/31 22:27 ID:???
すごく初歩的な質問で悪いんですが
<?php
$data = "\"$a."<>".$b."<>".$c."\n";
$fp = fopen("file.log","a");
flock($fp,2);
fputs($fp,"$data");
flock($fp,3);
fclose($fp);
?>
<html>
<body>
完了
</body>
</html>

のように「file.log」に書き込んで

a<>b<>c
d<>e<>f

のように書き込んでいきたいのですが
a<>b<>cd<>e<>f

のように改行がうまくいきません。ちなみに最後の文字(〜<>f)の後には
改行が入ってるのですが。どうしてでしょうか?


273 :nobodyさん:04/08/31 23:04 ID:MMjs19HP
>>272
すごく初歩的な返事で悪いんですが釣りですよね!!

274 :nobodyさん:04/09/01 01:05 ID:???
>>273
おまえ試しに何が問題なのか指摘してみ。
できないなら引っ込んでろ。

275 :272:04/09/01 02:02 ID:zYm4GWIn
すみません。釣りじゃないんですが…鬱
あと少しミスして書いてました。
<?php
$data = $a."<>".$b."<>".$c."\n";

PHPは昨日始めたばかりで真剣にわからないんです。優しい方がいたら教えてほしい…。

276 :nobodyさん:04/09/01 02:17 ID:???
>>275
改行コードだけの問題じゃないのかなぁ。
試しにfgetsで1行だけ読み込んで表示してみれば。

277 :nobodyさん:04/09/01 02:35 ID:???
>275
??
$data = "{$a}<>{$b}<>{$c}\n";

278 :nobodyさん:04/09/01 02:38 ID:???
>>275
ソースのコピペくらいきっちりやらなきゃ釣り扱いされるよ。
例えば

<?php
$a="a";
$b="b";
$c="c";
$data =$a."<>".$b."<>".$c."\n";
〜略〜

にしてリロード2回すれば

a<>b<>c<>
a<>b<>c<>

のfile.logができるはず。
エディタの設定で\nが改行されないだけなら板違い。

279 :277:04/09/01 02:40 ID:???
え、"\n この部分がいけないんじゃないのかい?w

280 :nobodyさん:04/09/01 02:44 ID:???
>>279
>>1

281 :nobodyさん:04/09/01 02:52 ID:???
夏の最後にふさわしい1日でしたね

282 :nobodyさん:04/09/01 02:54 ID:???
$data = $a."<>".$b."<>".$c."\n";
$data = "{$a}<>{$b}<>{$c}\n";
$data = "$a<>$b<>$c\n";
どれでもOK
ログファイルをWindowsメモ帳で開く様なら\nを\r\nにしとけ

283 :nobodyさん:04/09/01 02:56 ID:???
> ちなみに最後の文字(〜<>f)の後には
> 改行が入ってるのですが。どうしてでしょうか?
これ本当か?

284 :nobodyさん:04/09/01 03:47 ID:???
Zend Studioいいよ。
マジ使い易い。

285 :nobodyさん:04/09/01 07:38 ID:???
>>273 はやく回答してあげなよ。
また解決したころに出てくるのか?


286 :nobodyさん:04/09/01 08:15 ID:???
>>283
改行コードの問題かな。
PHP の動いてる OS はなに?

Windows系の OS だと改行コードは CRLF(\r\n) だから、テキストモードでオープンしたファイルに対して \n を
出力すると \r\n に変換されて記録されるよね。
でも、もしなんらかの問題で、

 ・\n で出力したものがファイルにも \n で記録されて
 ・fopen で追記オープンして、書き込み位置をファイルの最後にシークしようとしたとき、改行コードとして \r\n を期待しているのに
 ・実際にファイルに記録されている改行コードは \n なのでシークに失敗し、
 ・ファイル末尾の \n の位置に書き込み位置をシークしてしまい
 ・fputs でデータを出力したとき、その \n を上書きしてしまい
 ・結局行間の \n は消滅し、最後に書き込んだ行の \n は残る

みたいな現象とか?
fopen のファイルモードに "ab" を指定してバイナリモードでファイルを扱うようにしたら?
改行コードが CRLF がいいなら、バイナリモードでオープンした上で \r\n を出力するとどうだろう。


287 :nobodyさん:04/09/01 08:43 ID:???
PHP4.3.2からfopenで"b"か"t"のモードを指定しない場合は
"b"として扱うように変更になっている。

最近PHPを始めたんなら最近のバージョンだと思うけどどうかな

288 :nobodyさん:04/09/01 10:44 ID:bsFh6eif
>>272
rm file.logさせて3回以上実行してからfile.logを張ってみそ
実行した時には張る必要もない気がするが・・・

289 :nobodyさん:04/09/01 11:23 ID:???
おい、おまいら。スクリプトのインデントで
スペースつかってまつか?
TABつかってまつか?

PEARってスペースなんだよな。

290 :nobodyさん:04/09/01 11:28 ID:???
学校は?

291 :nobodyさん:04/09/01 11:42 ID:???
>>289
TABに決まってんだろ
スペースより読み込みが早くなるのは事実

292 :nobodyさん:04/09/01 12:10 ID:???
どちらも痛いな
秋の訪れに期待していたのだが・・・

293 :272:04/09/01 12:24 ID:???
問題解決しました。
Windowsメモ帳で開いていたのが原因で、ほかのエディタで開いたら
ちゃんとできてました。
みなさん親切に答えてくれてありがとうございました。
ご迷惑かけました。

294 :nobodyさん:04/09/01 12:28 ID:???
もうこういうのは勘弁してください

295 :nobodyさん:04/09/01 12:43 ID:???
(ノ∀`)アチャー

296 :nobodyさん:04/09/01 13:54 ID:???
そんなこともあるさ。
ドンマイ

297 :nobodyさん:04/09/01 14:00 ID:???
(*´д`)

298 :nobodyさん:04/09/01 14:36 ID:???
>>289
TABだと開くエディタの設定によってインデント幅が
変わってしまうのでスペースだな。
特に複数人でソースいじるような場合はそう。



299 :nobodyさん:04/09/01 14:40 ID:???
質問させてください。
mb_send_mailでメールを送信すると激しく文字化けが起きます。
mb_language("ja")で指定もしてます…
php_iniの設定が間違ってるのだと思うのですが、何処をどの様に変更すれば宜しいですか?
ご教授願います。

300 :nobodyさん:04/09/01 14:42 ID:???
>>298
でもエディタによってはスペースでインデントする機能が無かったりするしなぁ。
おれは普段はTAB使ってる。
スペースインデントがいいって言われたら、TABで書いたのをツールで変換してる。


301 :nobodyさん:04/09/01 14:43 ID:QcGal7pv
あるテキストファイルから、指定した文字列が含まれる行だけ抽出したいのですが、
どういう方法が一番高速ですか?

302 :nobodyさん:04/09/01 14:52 ID:VNRqZmig
>>299
たしかそんなことあったなぁ。
mb_internal_encoding('EUC-JP');
を指定してみて。


303 :nobodyさん:04/09/01 14:59 ID:???
>>302さん
ワタシはshift_jisで書いてたのでSJISにした所
文字化け解消されました。
有難う御座いました。

304 :nobodyさん:04/09/01 15:27 ID:???
>>301
インデックスファイルみたいのを用意するんでなければ、全行を全検索するしかないと思う。


305 :nobodyさん:04/09/01 16:34 ID:/FAqwI15
たとえばCだと、
printf("%x\n", "あ");
で、ffffa4a2といったように、a4a2という文字コード
がもらえるのですが、

PHPだと
printf("%x\n", "あ");
とすると、「a4」しか拾えません。

mb系の関数はあまり使いたくないのですが、それでも
いいので何か良い方法ありますでしょうか。

306 :nobodyさん:04/09/01 16:45 ID:???
>>305
Cで printf("%x\n", "あ"); とやって得られた ffffa4a2 は文字コードではありません。
"あ" という文字列の格納されているアドレスです。


307 :nobodyさん:04/09/01 17:20 ID:/FAqwI15
>>306です。

書きまちがえました
printf("%x\n", 'あ');
です。

で本題をお分かりの方いらっしゃいますでしょうか。

308 :305:04/09/01 17:20 ID:???
>>307は「>>305です」の間違いです。

309 :軟式PHP:04/09/01 17:37 ID:???
             「 ̄ `ヽ、   ______
             L -‐ '´  ̄ `ヽ- 、   〉
          /           ヽ\ /
        //  /  /      ヽヽ ヽ〈
        ヽ、レ! {  ム-t ハ li 、 i i  }ト、
         ハN | lヽ八l ヽjハVヽ、i j/ l !
         /ハ. l ヽk== , r= 、ノルl lL」
        ヽN、ハ l   ┌‐┐   ゙l ノl l
           ヽトjヽ、 ヽ_ノ   ノ//レ′
    r777777777tノ` ー r ´フ/′
   j´ニゝ        l|ヽ  _/`\
   〈 ‐ 知ってるが lト、 /   〃ゝ、
   〈、ネ..         .lF V=="/ イl.
   ト |お前の態度が とニヽ二/  l
   ヽ.|l         〈ー-   ! `ヽ.   l
      |l気に入らない lトニ、_ノ     ヾ、!
      |l__________l|   \    ソ


310 :305:04/09/01 17:40 ID:???
じゃあいいです。どうも。

311 :nobodyさん:04/09/01 17:57 ID:GSYA0qV6
>>307
それもうまく動かない気がするけどなぁ・・・


とりあえず本題は

$a=unpack('H4', 'あ');

ってやって $a[1] を評価したらどうよ?


312 :軟式PHP:04/09/01 18:08 ID:???
>>310
そう怒るなよ(藁
bin2hexでもつかっとけヽ(´ー`)ノ

313 :311:04/09/01 18:11 ID:???
>>312
あ、そんなのあるんだ。知らなかった。
便利便利。

314 :nobodyさん:04/09/01 18:18 ID:???
すいません。昨日からPHPはじめた者なんですが、ここでいいのかな?

<form method="post" action="hogehoge.php">
<button type="submit" name="hage" value="tsurupeta">push!</button>
</form>
において、hogehoge.phpで$_POST[hage]の値が、
"tsurupeta"ではなく、"push!"が入っています。
valueで設定した値を取り出すことはできないのでしょうか?

315 :nobodyさん:04/09/01 18:24 ID:???
<form method="post" action="hogehoge.php">
<input type="hidden" name="hage" value="tsurupeta" />
<input type="submit" value="push!" />
</form>

こうやってみたら?

316 :314:04/09/01 18:33 ID:???
>>315
すいません。言葉足らずでした。
実はボタンを複数置きたいのです。
質問を書き直すと、
<form method="post" action="hogehoge.php">
<button type="submit" name="hage" value="tsuru">push!</button>
<button type="submit" name="hage" value="peta">push!</button>
<button type="submit" name="hage" value="tsurupeta">push!</button>
</form>
として、
hogehoge.phpでどのボタンが押されたか判別したいのです。
ボタンのnameは同じにしたい
formタグはひとつですませたい
htmlタグ以外の技術はなるべく使いたくない
というのが希望です。
$_POST[hage]にvalueの値でなく、nameの値が入っているのは正常な動作なのでしょうか?
そうだとするとvalueの値ってのはいったい何の意味が。。。
よろしくお願い致します。

317 :nobodyさん:04/09/01 19:03 ID:???
>>316

<form method="post" action="hogehoge.php">
<button type="submit" name="hage[tsuru]" value="push!" />
<button type="submit" name="hage[peta]" value="push!" />
<button type="submit" name="hage[tsurupeta]" value="push!" />
</form>

って感じにして、

$hoge=key($_POST['hoge']);
$hoge=pop($hoge);

ってのはどうよ?
試してないからうまくいくか知らないけど。


318 :nobodyさん:04/09/01 19:05 ID:???
nameとvalueが            ,.ィ
セットで送信されるに  ''==ァ-‐‐,'゙<l    _,,
決まってるじゃん    `、:/::r'゙゙'_ェ'゙゙i、._ /ラノ  マタ
              ,=キヅ `'ラ/ヾ/ (シフ   マタァ〜 ゴジョウダン ヲ
                ,ケ::   ',. /  ,:'゙
と思って試してみたら、ほんとにおかしな挙動をする。
有名なバグなのかなぁ。オイラは初めて知った。
(buttonはトリガーにしか使ったことがない。)
で、検索してみると http://d.hatena.ne.jp/nekoshiki/?of=4 がヒットした。
検索ワードは、「仕様 していない button value」。

319 :nobodyさん:04/09/01 19:48 ID:???
>>316
IE 5.5, IE 6.0 → ボタンに表示されているものが入る。
Mozilla 1.7, Opera 7.54, Lynx 2.8.4 → valueが入る。

IEは「正常に」動作しているので改心してください。

320 :nobodyさん:04/09/01 19:50 ID:???
>>319
IEは作られたとおりに動いてるって点で「正常」ってことなんだけど、その作りは異常とも言えるよなぁ


321 :nobodyさん:04/09/01 19:59 ID:???
IEが異常なのは既出

322 :nobodyさん:04/09/01 20:02 ID:???
つーか普通に name で切って isset 判別でいいと思うんだが。
一つの問題には多数の解法があるのに、何故それにこだわってやってるのかと…

323 :nobodyさん:04/09/01 20:52 ID:???
>Windows系の OS だと改行コードは CRLF(\r\n) だから、テキストモードでオープンしたファイルに対して \n を
>出力すると \r\n に変換されて記録されるよね。
だれか突っ込んであげないの?

324 :nobodyさん:04/09/01 20:59 ID:???
<input type="submit" name="hage" value="push1>
<input type="submit" name="hage" value="push2>
<input type="submit" name="hage" value="push3>

でhageの中身見ればいいじゃん


325 :nobodyさん:04/09/01 21:11 ID:eg9a6m5n
print_r() とか var_dump() とか知らないらしいよ。

326 :nobodyさん:04/09/01 21:12 ID:/v+NW53m
あの人が急死した!!!
http://www.yuyuweb.com/garden/bbs/ccbmbs1/bbs1.cgi?room=1234

327 :nobodyさん:04/09/01 21:30 ID:???
>>323
どう突っ込んだらいいの?

328 :nobodyさん:04/09/01 21:31 ID:???
>>327
嘘言ってることについて

329 :nobodyさん:04/09/01 21:34 ID:???
>>328
じゃあ試しに突っ込んでみて。

330 :314:04/09/01 21:39 ID:???
>>318->>321
IEの方言だったのですね。。。
ということはこのまま進めて解決してもIE以外では使えないって事か。。。

>>317
keyでは用意されたボタンの一番初めのキーが返ってくるようです。
つまり、例の場合だと、何を押してもtsuruが返ってきます。
用は、連想配列の要素にpush!が入ってるのはどのキーか探せばいいわけですね。
使えそうな配列関数を探してみます。

>>322
すんません。
はじめたばかりなんで、調べたこと以外のことはなかなか思いつかなくて。。。
ボタンの数が変動する上、キーの名前が固定されていないので、
issetでではむつかしいかな?
よくわかんないんですが。

>>324
ボタンに表示される名前をすべて同一にしたいのでダメかな。。。

>>325
その皮肉?すらわからない初心者でして。。。すんまそん。

みなさん、ありがとうございました。
もうちょい苦しんでみます。

331 :nobodyさん:04/09/01 21:45 ID:???
>>330
<form method="post" action="hogehoge.php">
<input type="hidden" name="button" value="1">
<input type="submit" name="hage" value="push>
</form>
<form method="post" action="hogehoge.php">
<input type="hidden" name="button" value="2">
<input type="submit" name="hage" value="push>
</form>
<form method="post" action="hogehoge.php">
<input type="hidden" name="button" value="3">
<input type="submit" name="hage" value="push>
</form>

332 :317:04/09/01 21:57 ID:???
>>330
実験してみたら、押してないボタンの内容まで全部送られてるっぽいから、どのボタンが押されたかの判定は無理っぽい。
>>318 の問題そのまんま。

button じゃなくて input を使うといいっぽいよ。


<form method="post" action="hogehoge.php">
<input type="submit" name="hoge[tsuru]" value="push!" />
<input type="submit" name="hoge[peta]" value="push!" />
<input type="submit" name="hoge[tsurupeta]" value="push!" />
</form>

って感じにして、

$hoge=key($_POST['hoge']);
$hoge=$hoge[0]; // さっきは pop を使ったけど、これでいいよね

これで OK じゃない?


333 :nobodyさん:04/09/01 22:03 ID:2OWt62Va
今まで文字列を切り出すときには
$a = substr("abcdefg",1,3);
こんな感じでやっていたのですが、
「二文字目からからfに当たるまでを切り出したい」
というような場合はどうしたらいいのでしょうか?

334 :317=332:04/09/01 22:04 ID:???
うわー うまくいかなかった。
ボタンは同時に 1つしか押されないから、$_POST['hoge'] に含まれるキーの数は 1つってことで、

$hoge=key($_POST['hoge']);

これは Array が返るんじゃなくて、そのままキーが返るね。
だから、この 1行だけで OK みたい。
$hoge=$hoge[0] の行はいらない。


>>325
それを使ってどんな解決法があるのか教えてくれ。
ぜひ参考にしたい。


335 :314:04/09/01 22:13 ID:???
>>331
formタグを複数使うと段落の成形がずれていくので。。。
すいません。

>>332>>334
デキタ━━━━━(゚(゚∀(゚∀゚(☆∀
理論がわかんないので調べますw
ありがとうございました。

336 :nobodyさん:04/09/01 22:15 ID:???
>>333
正規表現を使う。
echo preg_replace('/^.(.*f).*$/','$1',$a);

337 :333:04/09/01 22:16 ID:???
>>226
thx!

338 :336:04/09/01 22:17 ID:???
あ、>>333の出し方に倣うなら
$a=preg_replace('/^.(.*f).*$/','$1','abcdefg');
か。

339 :333:04/09/01 22:18 ID:???
>>336
よりthx!

340 :nobodyさん:04/09/01 22:29 ID:???
perlスレかこっちで聞くか迷ったのですが、
PerlのファイルからPHPのファイルに変数を送ることはできますでしょうか?
例えば、Perlファイルで $a=3 という変数を
PHP側でも使用できるようにしたいのです。

341 :nobodyさん:04/09/01 22:46 ID:???
釣れまつか?

342 :nobodyさん:04/09/02 00:22 ID:???
SharedMemoryとポインタ参照について調べるんだ

343 :nobodyさん:04/09/02 14:25 ID:???
>>340
何がやりたいのかよくわかんないけど、
Perl のファイルから Perl のファイルへ変数を送ることはできるんですか?
そのサンプルコードを提示すれば、きっとあなたのやりたい事が理解できると思いますし、
だれかからなんらかのアドバイスももらえるんじゃないでしょうか。


344 :nobodyさん:04/09/02 15:54 ID:???
ファイルをphpからダウンロードするようにしたいのですが
ファイルのサイズが大きいのでreadfileを使わず
読み込みバイトを区切って出力していくにはどうしたらよいでしょうか

345 :nobodyさん:04/09/02 16:00 ID:???
>>344
fopen と fread を調べてみ。

346 :345:04/09/02 16:08 ID:???
>>344
ああ、もしかして、大きなファイルをダウンロードさせるのに、自動的に分割したいってことかな?
だったら fseek も必要かもね。


347 :344:04/09/02 16:22 ID:???
>>345
分割ではなくて、

$fd = fopen($filename, "rb");
while(!feof($fd)) {
    echo fread($fd, 4096);
};
fclose ($handle);

ってやってみたのですが、だめだったんです。



348 :344:04/09/02 16:23 ID:???
間違えてました

$fd = fopen($filename, "rb");
while(!feof($fd)) {
    echo fread($fd, 4096);
};
fclose ($fd);

でした

349 :nobodyさん:04/09/02 16:31 ID:???
>>344
fopenは成功してるのか?

350 :nobodyさん:04/09/02 16:33 ID:???
C:\Program Files\Apache Group\Apache\conf\httpd.conf のような
ファイルを copy() させたいのですが

failed to open stream: Invalid argument

と言われます。パスに空白があるせいなのですが、どうしたらいいでしょうか?

351 :nobodyさん:04/09/02 16:46 ID:???
>>347
だめって、どうだめなのよ?

で、そのコードは readfile とほとんど同じことをするものに見えるけど、なんで readfile じゃいけないの?

352 :nobodyさん:04/09/02 16:49 ID:???
レッツPHPの画像掲示板や、自分で作った画像掲示板の
アップロード先ディレクトリのパーミッションが777以外で使えないのですが
他のパーミッションで使える方法ってありませんか?

353 :nobodyさん:04/09/02 16:51 ID:???
>>350
Linux上で動いてるPHPだけど、スペース入りのパス作って Copy したけど、ちゃんと動いたよ。
スペースの問題じゃなくて、\ 記号をエスケープしてないとかじゃない?

354 :344:04/09/02 16:54 ID:???
>>349
if ($fd = fopen($filename, "rb"))
としてやってみましたが、成功しているようです。

>>351
ファイルサイズが小さいものであればreadfileでできたのですが
ファイルサイズが大きいものをreadfileすると
ブラウザ上でサーバーが見つかりません
と表示されてしまいます。

355 :351:04/09/02 16:59 ID:???
>>354
なるほど、そんなことがあるんだ。
で、だめってどうだめなのよ?
fread でやてもサーバが見つかりませんになっちゃうの?

356 :344:04/09/02 17:03 ID:???
>>351
freadでやると大きいファイルも
readfileでできた小さいファイルも
サーバーが見つかりませんになってしまいます。

357 :nobodyさん:04/09/02 17:06 ID:???
>>356
なにが原因かはわかんないけど、サーバが見つかりませんってのは解せないね。
ループ一回ごとに Ob_Flush でも入れてみたらいいことあるかな?

358 :nobodyさん:04/09/02 17:19 ID:???
みなさんはアップロード先ディレクトリのパーミション何にしてますか?

359 :nobodyさん:04/09/02 17:24 ID:???
707

360 :344:04/09/02 17:37 ID:???
>>357
if ($fd = fopen($filename, "rb")) {
  while(!feof($fd)) {
   echo fread($fd, 4096);
    ob_flush();
  }
  fclose ($fd);
}else{
  echo "open error";
};

正しいかわかりませんが
でうまくいきました!ありがとうございました。


361 :nobodyさん:04/09/02 17:37 ID:???
>>359
ありがとぅ!

362 :nobodyさん:04/09/02 18:56 ID:???
>>350
write it down "as is"

363 :nobodyさん:04/09/02 21:12 ID:???
705
707はchmodとか使わない限り不要だろ


364 :nobodyさん:04/09/02 21:34 ID:???
700で動くから700

365 :nobodyさん:04/09/02 21:39 ID:???
cgi版の人は700でいいわな

366 :nobodyさん:04/09/02 22:55 ID:???
formで入力後submitしてブラウザの戻るをした場合に
formの値がクリアされるが値を残す方法はありまつか?

367 :nobodyさん:04/09/02 23:39 ID:???
「ブラウザの戻る」じゃむりだろ

368 :nobodyさん:04/09/02 23:58 ID:???
>>366
session_cache_limiterをprivate等にすれば残るはず。
が、弊害が起きても自己責任で。

369 : ◆.jC7ANgFY. :04/09/03 00:14 ID:???
>>366
JavaScriptとCookieで実現するのが一番常道だとは思う。
一応できなくはない、と。

370 :nobodyさん:04/09/03 01:38 ID:???
>>369
テンプレート使ってるんだけど、そのページからsubmitして
confirmページへ飛ばして確認させて、間違いがあった人って
大半が「ブラウザの戻る」で戻しちゃんうんですよ。

371 :nobodyさん:04/09/03 02:33 ID:???
なら遷移先でフォームを出せばいいじゃん。

372 :nobodyさん:04/09/03 05:25 ID:???
>>363
705って書き込み権限ないからアップできないじゃん。

373 :nobodyさん:04/09/03 17:06 ID:J5j4fe3Z
php を シェルから

php /path/to/a,php

と起動すると問題なく実行できるのですが、
cron から 起動すると cronの実行は行われているのに、
a.phpの処理は行われないようです。

a.phpはエラーを吐くと思うのですが、
どうやってエラーを拾えばいいでしょうか?

php.ini の
log_errors = On
error_log = /path/to/error.log
を設定しましたが、エラーログははかれていないようです・・・

374 : ◆.jC7ANgFY. :04/09/03 17:23 ID:???
>>373
1行目のCGIコマンドを追加すべし。

#!/usr/local/bin/php

375 :nobodyさん:04/09/03 17:43 ID:???
>>373
php コマンドにパスが通っていないだけでは?
cron に登録際に絶対パスで php コマンドを呼び出すとか。

/usr/local/bin/php /path/to/path/a.php

エラーを拾いたければ以下のように cron に登録すると簡単。
書き込み権限の確認を忘れないように。

/usr/local/bin/php /path/to/path/a.php &> /path/to/path/error.log

376 : ◆.jC7ANgFY. :04/09/03 17:51 ID:???
>>375
そういえば、私も別のパスからcron呼び出して相対パスで失敗したわ。
1行目でchdirで修正するのが楽かと。

377 :nobodyさん:04/09/03 17:54 ID:J5j4fe3Z
>>375
orz・・・
ご指摘通り
/usr/local/bin/php
にパスが通ってなかっただけのようです。

cronからの起動だと /usr/local/bin/ のファイルもパス通ってないんですね・・・

・・・php側、全てフルパスに書き換えてしまった。

378 :nobodyさん:04/09/03 17:55 ID:???
>>375
カレントディレクトリの違いでPHPスクリプトの中の include が失敗してるのかもよ。

cd /path/to/; php /path/to/a.php

ってやるとどうかな。



379 :nobodyさん:04/09/03 18:02 ID:J5j4fe3Z
みなさん大変ありがとうございます。
require するファイルのパスは気にしてたんですが・・・
phpのパスを気にしてませんでした。

380 :nobodyさん:04/09/03 18:12 ID:???
>>372
釣られんぞ・・・

381 :nobodyさん:04/09/03 18:15 ID:???
うpろだ使わないし、ほとんどDBで処理してるからファイル書き込みなんてしないからなぁ
705でやってるよ、俺は

382 :nobodyさん:04/09/03 23:31 ID:???
PEAR DBのqueryメソッで、MySQLのLOCKが
SQLシンタックスエラーで帰ってくるんだけれど、
どうしたらいいの?

383 :nobodyさん:04/09/04 00:35 ID:???
ttp://neta.ywcafe.net/000372.html
このページを参考に、PHPでメニュー領域とコンテンツ領域に分けたくて
色々やってみました。でもさっぱり分かりません。
リンク先、というかhtmlのフレームで言うtargetに当たる部分が全然わからない。
メニューはincludeできるんですけど、個々のメニューをクリックした時に
リンクされてるファイルを、同じページ内の同じ場所に表示する方法がどうしても分かりません。

今日は夕方位からずっとググりまくりで死ぬほど眠いので
明日また改めて質問させて下さい。その時はどうか宜しくお願いします。

384 :nobodyさん:04/09/04 00:49 ID:???
「content2だよ。」に変えたcontent2.phpファイルも置きましょう

385 :nobodyさん:04/09/04 00:52 ID:???
フレームじゃないんだからtargetは無い。
コンテンツページすべてでメニューをインクルードすれば
メニューのよこにコンテンツが出力されたように「見える」ところがミソ。

386 :nobodyさん:04/09/04 01:48 ID:???
>>383
おまいは騙されてる。

次の手段が考えられる。
1. SSI, PHP といったサーバサイドでの対応。
2. Dreamweaver 等、コンテンツ管理ツールの活用。

結論から言えば参照先の手法はオーバースペック。
自分で安全に運用する自信が無い、または手に余るなら迷わず 2 を選んでおけ。

つーか、俺がコイツと仕事したら良くも悪くも喧嘩になるな。
網羅的に語っているがどれも浅いよ。
営業さんとしては優秀かも知れないが。

387 :nobodyさん:04/09/04 02:49 ID:???
メニューはリンクごとに違う値を$_GETで同ページに送るようにして
その値に合うコンテンツを右っ側にインクルードするように作れば
ちょっとフレームっぽい感じ? あんま意味ないけど。

388 :カポコン:04/09/04 02:57 ID:???
<?php
header("Expires:Sat,1 Jun 1975 00:00:00 GMT");
header("LastModified:".gmdate("D, d M Y H:i:s")."GMT");
header("Cache-Control:no-cache,must-revalidate");
header("Pragma:no-cache");
include("menu.htm");
include("main.htm");
?>
こんなんでいいんじゃないのページの結合は・・・。
header()から中はあってもなくてもいいけど、キャッシュ対策で・・・。

389 :nobodyさん:04/09/04 03:04 ID:???
微笑ましいレスが続いているなw
385の普通さが逆に不思議だ

390 :nobodyさん:04/09/04 03:12 ID:???
スレ違い質問だからスレ違いの回答されたんじゃないの。
電波お花畑も含めて。

391 :nobodyさん:04/09/04 03:15 ID:???
クラス定数が使いづらい。クラス名の参照は必ずしも必要じゃない気がするんだけど、どんなもんでしょう。

392 :nobodyさん:04/09/04 03:34 ID:???
俺も>>383に倣って燃料投下してから寝ようと思っているんですけど、
ネタが思いつきません。
>>383にあって俺に無いものはいったいなんでしょうか?
後日来ますので、その時はどうかよろしくお願いします。


393 :nobodyさん:04/09/04 09:18 ID:???
 || ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄||
 || Java厨の特徴 - Learn Once, Boo Anywhere -
 || ○なんでPHPは〜なの? を連発
 || ○他の言語の流儀を学ばずJavaの流儀を強引に持ち込む
 || ○言語仕様に矛先を向ける                 Λ_Λ
 || ○温室育ちのJavaしか出来ない可哀相な人が  \ (゚ー゚*) キホン。
 ||  業務で渋々PHPに流された哀れな姿です      ⊂⊂ |
 ||___ ∧ ∧__∧ ∧__ ∧ ∧_       | ̄ ̄ ̄ ̄|
      (  ∧ ∧__ (   ∧ ∧__(   ∧ ∧      ̄ ̄ ̄
    〜(_(  ∧ ∧_ (  ∧ ∧_ (  ∧ ∧  は〜い、先生。
      〜(_(   ,,)〜(_(   ,,)〜(_(   ,,)
        〜(___ノ  〜(___ノ   〜(___ノ

394 :nobodyさん:04/09/04 13:05 ID:vhwDcUgj
flock について質問です。
マニュアルには以下のようにあります。

いくつかのオーペレーティングシステムでflock() はプロセスレベルで実装されています。
ISAPIのようなマルチスレッド 型のサーバーAPIを使用している場合、同じサーバーインスタンスの
並列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に
flock()を使用することはできません!

当方 Linux + Apache2.0 なのですが、サンプルコードでロックがかかるかどうか検証した結果、
きちんとロックされることを確認しました。
ということは、うちの環境では flock は期待通りに動く、ということでしょうか。
以下の試験方法に穴がありそうなら指摘してください。

検証方法は、あるファイルに対して flock して、sleep により数秒待ち、アンロックする、というスクリプトに、
ブラウザから複数アクセスしてみる、という内容です。
flock の直前直後、及びアンロックの直後でタイムスタンプを取得し、ブラウザ上に表示させ、処理が
重なっていないことを確認しました。


395 :nobodyさん:04/09/04 13:17 ID:???
apache2の設定は?

396 :394:04/09/04 15:27 ID:???
>>395
すみません、どの設定を確認すればいいですか?

397 :753:04/09/04 15:49 ID:xk4dCUYp
クラスの継承について教えてください。
http://www.php.net/manual/ja/keyword.extends.php
には、「派生クラスは、基底クラスの全ての変数と関数を有します。」
とあるんですが、関数にはアクセスできますが、変数のアクセスがわかりません。
サンプルは下記で考えました。

派生クラスでは、基底クラスのコンストラクタを暗黙的に呼び出さないので、
どこかで明示的に呼び出す必要があると考えてよろしいのですか?
でも、それだと、マニュアルと違うような気もするし。基底クラスのオブジェクトを
たくさん作ってしまうことになりませんか?

class A{
var $a = "value a";
function A(){
$this->a = "this is value \$a !!\n";
}
}
class B extends A{
var $b ;
function B(){
$this->b = "this is value BBB!!\n";
}
}
$obj_b = new B();
// これは"this is value BBB!!"が出力されるが
echo $obj_b->b ;
// これは何も出力されない(出力されるのを期待していたのだが)
echo $obj_b->a ;
// 基底クラスのコンストラクタを明示的に実行すると"this is value $a"が出力
$obj_b->A();
echo $obj_b->a ;

398 :nobodyさん:04/09/04 16:23 ID:???
classBの中のコンストラクタの中に$this->A();を追加すればいいだけ。

399 :382:04/09/04 16:32 ID:???
>>382
PEAR DBのソースを呼んで解決させました。
デフォルトでは、autocommitなのね。

400 :nobodyさん:04/09/04 17:34 ID:VbBMSnkV
掲示板スクリプトのソースを見ていたら
<?=$subject?>
というのが出てきたのですが、これはいったいどういう意味なのでしょうか?
<?〜?>というのは知っているのですが、=が入っていきなり変数と言うのが
良くわかりません。
「<?=」で検索しようとしたのですが、記号だけなので検索できないようです。
誰か教えてください…

401 :nobodyさん:04/09/04 17:37 ID:???
>>400
マニュアルのechoのページを見てみ

402 :力不足:04/09/04 17:41 ID:XFPNR40z
http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS
フレームを使用して使いたいので、別窓で開くようにしたいのですが…
<?php
require_once 'rss_fetch.inc';
require_once 'code_table.ucs2jis';
require_once 'jcode.php';
$url = 'http://www.hyuki.com/yukiwiki/wiki.cgi?RssPage';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
//JcodeConvert($str, $from, $to) 0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8
$title = JcodeConvert($title, 0, 2);
echo "<h2>$title</h2>\n";
echo "<ul>\n";
foreach ($rss->items as $item ) {
$title = $item[title];
$title = JcodeConvert($title, 0, 2);
$url = $item[link];
echo "<li><a href=\"$url\">$title</a></li>\n";
}
echo "</ul>\n";
?>

echoや $urlの後に" target="_blank"を入れたのですが…
いろいろいじくってみたんですが、わかりません。教えていただけないでしょうか?


403 :nobodyさん:04/09/04 17:42 ID:???
>>400
「基本的な構文」も参照
ttp://jp.php.net/manual/ja/language.basic-syntax.php#language.basic-syntax.phpmode

設定によっては使えないので、使わないのが吉

404 :nobodyさん:04/09/04 17:44 ID:???
>>402
スレ違い
HTMLの勉強して出直して来い

405 :400:04/09/04 17:48 ID:???
>>401,>>403
助かりました。ありがとうございます!

406 :nobodyさん:04/09/04 17:53 ID:???
すいません、PHPで、Perlのq、qqに相当する物ってありますか?
Perlで以下のようにやっていたことをPHPでやりたいのですが。。
my $a = q(<a href="test.html">test</a>);
これがないと非常に不便かも…。


407 :nobodyさん:04/09/04 17:53 ID:???
>>406
なし

408 :406:04/09/04 18:02 ID:???
>>407

ありがとう…ショボーン
全部ていねいに\でエスケープしてるんでしょうか…

409 :nobodyさん:04/09/04 18:33 ID:T4Uqd+Ho
defineで定義したものを、print <<<EOM のヒアドキュメント中に展開って出来ないんですか?

410 :nobodyさん:04/09/04 18:37 ID:???
>>409
できません

411 :nobodyさん:04/09/04 19:27 ID:???
>>408
perlの頃からqqなんて使ってなかったから違和感無いな〜
シングルクオートで囲めばほとんどエスケープする事も無いし

412 :nobodyさん:04/09/04 19:35 ID:???
そもそも使うと汚くなるしね

413 :nobodyさん:04/09/04 20:40 ID:???
" や ' を含むものを出力するときは q / qq の方が綺麗でしょ。
あと、正規表現の場合とか ( http:\/\/ じゃなくて http:// とそのまま書けるし )。
PHP は定数も含められないし、関数も含められないのも不便。

414 :nobodyさん:04/09/04 20:53 ID:???
>>413
それが普通だから不便に感じたことない
PHP使いから言わせればqqとかダサイ

415 :nobodyさん:04/09/04 21:02 ID:???
qとかのクォート風演算子は結構便利だと思うけどな
'と"を多数混在させる必要があるとき、一々エスケープするのは大変だし、
見づらい(=エラーの元)
|なんか使わないから|でクォートさせろと

416 :nobodyさん:04/09/04 21:14 ID:???
じゃあperl使ってろよ
言語の仕様にいちいちつっこむなよ

417 :nobodyさん:04/09/04 22:08 ID:???
>>413
qqが好きな人には綺麗でしょうね。
正規表現も希望通り http:// とそのまま書けるし
PHP は定数も含られし、関数も含められますよ。

煽る前に勉強し

418 :nobodyさん:04/09/04 22:09 ID:???
質問させてください!

HtmlSpecialChars( $str, ENT_QUOTES ); をやったところ、
「<」 と 「>」 と 「&」 は普通に変換されるんだけど、
「"」 と 「'」 だけ 「\"」 「\?」 になるんですが、
こういうもんなのでしょうか?

StripSlashes( HtmlSpecialChars( $str, ENT_QUOTES ) );
でもいいんですが…。

それと、逆に「<」なんかを「<」に戻す関数ってあるのでしょうか?

419 :nobodyさん:04/09/04 22:18 ID:???
まだ夏は続いているのか。

420 :418:04/09/04 22:19 ID:???
> それと、逆に「<」なんかを「<」に戻す関数ってあるのでしょうか?

×「<」なんかを「<」に戻す
○「<」なんかを「<」に戻す

でした…。



421 :nobodyさん:04/09/04 22:19 ID:???
ENT_NOQUOTES

422 :418:04/09/04 22:21 ID:???
>420

うほ。。

×「<」なんかを「<」に戻す
○「&lt;」なんかを「<」に戻す

423 :nobodyさん:04/09/04 22:24 ID:???
おきかえれば・・・

424 :nobodyさん:04/09/04 22:49 ID:???
>>418
マニュアル嫁。

> 逆に「<」なんかを「<」に戻す関数

それについてもマニュアルの同区分に目を通せ。
というか、その必要が出てくるって事はエスケープ場所を間違えてる可能性 90%

425 :nobodyさん:04/09/04 23:26 ID:???
php4からoracle10gを使ってる人いる?
php4.3.8で動くのだろうか?

426 :nobodyさん:04/09/05 00:21 ID:???
>>425
oracle7〜9が動くのは確認したが、10gは手元にない....
CD取り寄せるにも時間がかかるな〜

427 :nobodyさん:04/09/05 00:26 ID:RfIBQAoo
.htaccess で php の include path を設定するにはどうしたらいいですか?

428 :カポコン:04/09/05 00:43 ID:???
暇だったので生まれてくる子供の血液型を推測できるスクリプトを作ってみました。
ttp://f13.aaacafe.ne.jp/~mugen/perlvsphp/child_btype.php

429 :nobodyさん:04/09/05 00:50 ID:???
>>428
いじっているときに更新するな
なんか変なパラーメータを含めてしまったのかと
心配しただろう…

430 :質問です:04/09/05 01:34 ID:ISJ8aiP8
はてなアンテナのように、
登録したサイトの更新状況を定期的にチェックして、
更新部分を表示してくれるようなスクリプトってありますか?

ぐぐってみたのですが見つからず・・・。



431 :nobodyさん:04/09/05 02:13 ID:???
>カポコン
最近威勢は悪いしソースは隠蔽だしつまんね。
aaacafeはlivedoorになるらしいけど移転しないの?

432 :nobodyさん:04/09/05 02:42 ID:???
カポコンって誰やねん

433 :カポコン:04/09/05 02:46 ID:???
>>431 じゃークラスん中だけ見せるぞ。。。
ふむん、俺はケチって日記に書いてるんだけどねぇ。。。
class blood{
var $child;
function cache($a,$b){
$i = 0;
if(preg_match("/^[aboABO]{2}$/",$a) and preg_match("/^[aboABO]{2}$/",$b)):
$pat = array("A" => "/a/","B" => "/b/","O" => "/o/");
$a = preg_replace($pat,array_flip($pat),$a);
$b = preg_replace($pat,array_flip($pat),$b);
$element[0] = preg_replace("/^(\w)(\w)$/e","\$1",$a);
$element[1] = preg_replace("/^(\w)(\w)$/e","\$2",$a);
$element[2] = preg_replace("/^(\w)(\w)$/e","\$1",$b);
$element[3] = preg_replace("/^(\w)(\w)$/e","\$2",$b);
$i = 0;
foreach($element as $val):
$this->child[$i++] = $val.$element[2];
$this->child[$i++] = $val.$element[3];
if($i === 4) break;

434 :カポコン:04/09/05 02:47 ID:???
endforeach;
else:
echo("<span class=\"msg\">\n");
echo(nl2br("ABOタイプの血液データがありません。\n"));
echo("</span>\n");
endif;
}
function child_judge()
{
$a = $b = $o = $ab = 0;
if(is_array($this->child)):
foreach($this->child as $val):
$a += preg_match("/^(AA|AO|OA)$/",$val)?25:0;
$b += preg_match("/^(BB|BO|OB)$/",$val)?25:0;
$o += preg_match("/^OO$/",$val)?25:0;
$ab += preg_match("/^(AB|BA)$/",$val)?25:0;
endforeach;
endif;
echo("<ul>\n");
$span = "<span class=\"msg\"";
echo ($a !== 0)?$span."<li />".sprintf("生まれてくる子供は<b>A型</b>になる可能性が<b>%d%%</b>あります。<br /></span>\n",$a):"";
echo ($b !== 0)?$span."<li />".sprintf("生まれてくる子供は<b>B型</b>になる可能性が<b>%d%%</b>あります。<br /></span>\n",$b):"";
echo ($o !== 0)?$span."<li />".sprintf("生まれてくる子供は<b>O型</b>になる可能性が<b>%d%%</b>あります。<br /></span>\n",$o):"";
echo ($ab !== 0)?$span."<li />".sprintf("生まれてくる子供は<b>AB型</b>になる可能性が<b>%d%%</b>あります。<br /></span>\n",$ab):"";
echo("</ul>\n");
}
}
使う場合は、インスタンスを作ってからやるように。。
blood::cache()の参照はダメって事・・・。

435 :カポコン:04/09/05 02:51 ID:???
移転は、また似たような鯖が出るのを待つしかない。。。

436 :nobodyさん:04/09/05 02:55 ID:???
関数の中でechoとかマジありえない

437 :nobodyさん:04/09/05 03:00 ID:???
だからお前誰だよ

438 :nobodyさん:04/09/05 03:01 ID:???
>>430
板違い

ついでにいうと、まさしくそのスクリプトを書いている訳だが…

通常はhead取得で十分だが、動的生成だとうまく取得できない場合がある
で、head取得での取得に失敗した場合、ソースから更新日時と判断できる
文字列を正規表現で取得する
これに失敗した場合は、サイズを前のデータと比較して
変化していればその時刻を更新日時として扱う

これさえ満たしていれば、あとはcronで動かすだけで完璧だと思うが
広告が入っている場合、サイズの比較でうまくいかないようだ

とこんな感じだが、おまいも書いてみたら?

439 :カポコン:04/09/05 03:07 ID:???
たしかにありえねーな。
2ch用にreturnを変えたとか・・ワラ

440 :nobodyさん:04/09/05 03:15 ID:???
>>$span = "<span class=\"msg\"";
2ch用に変えるんなら>で閉じて〜〜〜ワラ

441 :カポコン:04/09/05 03:16 ID:???
こいつら全部自演かよ

442 :nobodyさん:04/09/05 03:19 ID:???
カポコンぬるぽ
http://qrl.jp/?u=114924

443 :カポコン:04/09/05 03:43 ID:???
つーか、関数じゃなくてメソッドだろ。。。うんkめ。

444 :nobodyさん:04/09/05 03:56 ID:???
>関数じゃなくてメソッドだろ
( ゚Д゚)ポカーン

445 :nobodyさん:04/09/05 04:08 ID:???
プロシージャだよ
ばかばかまんこ

446 :nobodyさん:04/09/05 04:39 ID:???
もう3度目だけどカポコンって誰だよ!

447 :nobodyさん:04/09/05 04:48 ID:???
>>446
カポコン=キモヲタ=自演厨
某板の禿みたいなもんだろ。


448 :nobodyさん:04/09/05 05:15 ID:???
トリップを付けろとあれほd(ry

449 :nobodyさん:04/09/05 07:03 ID:???
XREAでは“セキュリティ上 CGI として動作する”とあるのですが、
この場合重さ・速さなどは CGI/Perl と大差無いと見ていいのでしょうか。

450 :nobodyさん:04/09/05 07:16 ID:???
コテハンにろくなやつぁいねぇ

451 :nobodyさん:04/09/05 08:10 ID:PtpLgFxV
すいません昨日からPHPをインストールしようとしてエラーが出ているのですが
ほかにエラーが出てる人はいませんか?もう12時間以上悩んでます・・・
エラーが出た場合の対処方法も添えていただければありがたいです。
対処方法がのってるHPのアドレスでも結構です。
よろしくおねがいしますm(_ _)m

452 :nobodyさん:04/09/05 09:07 ID:???
>>449
諸賢の検討によるとPerl>PHPらしいが。
ベンチをとったページがあったはずなので「perl PHP 比較」あたりで
検索すると出てくると思う。
でも今は確かapacheモジュールになってて、Perlのようにバイナリへの
パスを指定すればCGIとして動作するんじゃなかったけ?
特定のサーバについてだからレンタルサーバ板あたりの管轄かも。

>>451
unix系なのかwindowsなのか、はてまたその他なのか…
後、エラー内容を書かんと答えられる人も答えられんよ?

453 :nobodyさん:04/09/05 09:22 ID:???
>>451
ttp://jp.php.net/FAQ.php

その質問内容でこれ以上の回答は不可能

454 :449:04/09/05 09:39 ID:???
>>452
>でも今は確かapacheモジュールになってて
いろいろ漁ってみたところ、確かに7月中旬辺りからモジュールになっているようです。
知識が至らずすみませんです。

これを機にPHPを勉強してみます。ありがとうございました。

455 :nobodyさん:04/09/05 11:26 ID:RfIBQAoo
配列の任意の要素を取り出してそれを配列から削除するような関数はありますか?
array_pop()やarray_shift()は最初と最後しか取り出せないので
いまのところunset()を使って何とかしているのですがうまいことできますか

456 :nobodyさん:04/09/05 11:45 ID:???
>>426
oracleスレでも質問してるのですが
動いたoracle8って
oracle8.1以降の8ですよね?
8.0.xでしたらどうやって動いたのか教えてくださいっす〜


457 :nobodyさん:04/09/05 12:04 ID:???
>>455
マニュアルくらい読めよ
ttp://www.php.net/manual/ja/function.array-splice.php

458 :nobodyさん:04/09/05 12:09 ID:???
>>457
何番目の要素かわかんないときどうすんの?

459 :457:04/09/05 12:42 ID:???
>>458
オレならこんな感じにする

<?php
$sampleArray=array('hoge'=>'ほげ','bar'=>'ばぁ〜','nullpo'=>'ぬるぽ','ダメポ');

$target='nullpo';// 削除するキー
$length=1;// 削除する数

print "元の配列:";
print_r($sampleArray);
print "<br>";
array_splice($sampleArray,array_search($target,array_keys($sampleArray)),$length);

print "削除後の配列:";
print_r($sampleArray);
?>


460 :457:04/09/05 12:45 ID:KHirYWNz
>>459
あ、こっちのほうが良いかな?

<?php
$sampleArray=array('hoge'=>'ほげ','bar'=>'ばぁ〜','nullpo'=>'ぬるぽ','ダメポ');

$target='nullpo';// 削除するキー
$length=1;// 削除する数

print "元の配列:";
print_r($sampleArray);
$deleted=array_splice($sampleArray,array_search($target,array_keys($sampleArray)),$length);

print "<br>削除された要素:";
print_r($deleted);
print "<br>削除後の配列:";
print_r($sampleArray);
?>


461 :nobodyさん:04/09/05 13:08 ID:???
>458
具体的にどうしたいのか書けよ

462 :nobodyさん:04/09/05 13:16 ID:???
>>456
oracle使ってるやつがこんなところで質問か。
なんか貧乏くさいよな。

463 :430:04/09/05 17:58 ID:ISJ8aiP8
>>438
レスありがとうございました。
ありそうで以外にないんですよね・・・。

登録した対象のページを自鯖に保存しておいて、
巡回の際に保存しておいたページと比較し、
変化があればその箇所を表示する。

という仕組みではどうですかね。
巡回ページ数が三桁くらいなら問題ないと思うのですが。


464 :438:04/09/05 18:58 ID:???
>>463
>登録した対象のページを自鯖に保存しておいて、
>巡回の際に保存しておいたページと比較し、
>変化があればその箇所を表示する。
これをlength取得という
そのやり方をやっていた訳だが、ソースを丸ごと保存していたため、
無料鯖の場合などに含まれる広告のサイズが異なることがあって、
うまく行かなかった

手動で検索開始語句、検索終了語句を予め設定しておいて、
広告を省いた部分で比較するというやり方でやってみたところ
今のところは正常に動いているようだ

http://joechin.hp.infoseek.co.jp/wwwrobots.shtml
上記の各アンテナを参考にするといいだろう

465 :nobodyさん:04/09/05 19:34 ID:???
PHPで一番手っ取り早くユニークな文字列を取る方法ってありますか?
時刻+プロセスIDでいいと思ったんですけど、プロセスIDってどうやって取るんだろう?

466 :nobodyさん:04/09/05 19:39 ID:???
>>465
uniqid()

467 :465:04/09/05 19:51 ID:???
>>466
ありがとうございます。
こんなのもあるんすね。

ただ、フォームの申込番号として使おうと思っているので、
ちょっと複雑な文字列すぎるかも。

イメージとしては、
[時刻]-[文字列] をIDに申込番号にしようかと思っています。
040905195012-123 みたいな漢字で。

468 :nobodyさん:04/09/05 20:08 ID:???
time()でUNIXタイムスタンプ使えば?

469 :465:04/09/05 20:54 ID:???
>>468
Time()でひらめきました。
ミリ秒使えばなんとかなりそうですね。。
(苦肉の策だけど)

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

470 :nobodyさん:04/09/05 21:02 ID:9EYGYXzi
質問です

・CGIやSSIは使えない
・.htaccessも使えない
・管理者権限を行使する必要があるものは何もできない
・鯖は管理していない
という環境で特定のIPをアク禁にしたいのですが、
セキュリティ板で訊いたら
「どこかCGIの置けるサイトから,<script src="どっかのcgi">でIPアドレス判定した
スクリプト食わせて、排除したい奴をスクリプトでどっかに飛ばす」
と言われました。

このCGIについての解説サイトを教えてください。

471 :nobodyさん:04/09/05 21:29 ID:???
解説つーか仕組みを説明すると、
JavaScript単独ではIPアドレスを取得できないので、
CGIを使ってIPアドレスを取得及び判定する。
その結果を使ってJavaScriptのLocation.hrefかなんかで他のページに飛ばす。
てな所じゃないかなぁ。

CGIを書けない人ならどっかでCGIを使ったアクセス制限CGIを探してきて、
そいつをJavaScriptと組み合わせれば良いかと。
当然、JavaScript Offの人には無効な技だよ。

472 :470:04/09/05 21:33 ID:9EYGYXzi
アクセス制限CGIはどんなのがあるのですか
ぐぐると自分のところに設置するものばかり引っかかります

473 :nobodyさん:04/09/05 21:43 ID:???
つーか何でここで聞くんだよ
PHP全然関係ないじゃないか

474 :470:04/09/05 21:55 ID:9EYGYXzi
この板の質問スレが分からなかったんです
Web制作→セキュリティ→WebProg
と回されてきたもので

475 :nobodyさん:04/09/05 22:00 ID:???
だからなんでphpなんだよ・・・

476 :470:04/09/05 22:01 ID:???
PHPというものがよくわかりません
この板のアドレスが/php/だったもので代表的質問スレではないかと思って

ごめんなさい

477 :nobodyさん:04/09/05 22:05 ID:???
>>470
板違い
ついでに誘導
http://pc5.2ch.net/test/read.cgi/hp/1088604912/

もう二度と来ないでください

478 :nobodyさん:04/09/05 22:14 ID:???
夏休み終わって少し落ち着いたと思ったのに日曜になった途端これかよ…

>>470
>この板の質問スレが分からなかったんです
スレ一覧を「質問」で検索したら少なくともここよりは適切なスレが見つかるのにな
>PHPというものがよくわかりません〜
PHPが何か分からなくてもぐぐれば速攻で分かるのにな
っていうか>>1も読んでないだろ

お前みたいなのはどうせ自力じゃ何とかできないだろうから
大人しく.htaccess使える鯖に移転しろ

479 :nobodyさん:04/09/05 23:11 ID:???
久々にでてきましたなー
板違い厨。
質問の問いに答えれないのなら黙ってろよ。


480 :nobodyさん:04/09/05 23:25 ID:???
479 名前: nobodyさん [sage] 投稿日:04/09/05 23:11 ID:???
久々にでてきましたなー
板違い厨。
質問の問いに答えれないのなら黙ってろよ。

481 :477:04/09/05 23:30 ID:???
>>479
必死なだ
喪前の目は節穴か?
忍者にIPアドレス制御があるというのも知らんのか?

つーか厨は来るなって言っただろうが!
知ったかはいい加減氏ね

482 :nobodyさん:04/09/05 23:55 ID:???
> この板のアドレスが/php/だったもので代表的質問スレではないかと思って

言われて初めて気がついた。
そうか2chでWEBプログラミングと言えばPHPなんだな
ニヤリ☆


483 :nobodyさん:04/09/05 23:56 ID:???
>>446
カポコンは神
ttp://cgi.f2.aaacafe.ne.jp/~saluru/clrea1/read.php?id=1070375461

484 :セキュ板から誘導した奴:04/09/06 00:04 ID:???
>>470
セキュ板で続ける話題じゃないのでこっちの板に誘導したんだが、
http://pc5.2ch.net/test/read.cgi/php/1086715675/l50が良い。


485 :セキュ板から誘導した奴 :04/09/06 00:17 ID:???
>>470
>>477が言ってるのはhttp://www.shinobi.jp/s-counter.htmlだな。
出来合いのがあるみたいだから、これ使えば良いんじゃないか?

486 :nobodyさん:04/09/06 00:23 ID:???
ここはPHP板

487 :nobodyさん:04/09/06 00:27 ID:???
>483
馴れ合いが楽しい年頃か。
まぁ、会話して勉強も良いかもな。
がんばれ。

2ch過去ログの書き込み見る限り
自演にしか見えなかったけど。

488 :nobodyさん:04/09/06 00:31 ID:???
     (PHP)
      (^∀ ^)<オラ!芋ども!
      ノ  ノ  天下のカポコン様のお通りだ!!!
       | | =3 =3 =3プップッー
  (芋2)  ■■■■■
 (芋1    @   @
カポコン イズ ゴッド! カポコン イズ ゴッド!
カポコン イズ 廃人ゲーマー!カポコン イズ 廃人ゲーマー!
CAPOCOM IS PHP!!!CAPOCOM IS PHP!!!CAPOCOM IS PHP!!!

あひる = おめーの頭のポートが甘えーだよ!!!
さんだ = Apache権限なんて捨てっしまえroot権限よりかマシ!

489 :nobodyさん:04/09/06 02:44 ID:???
ちょっと質問宜しいでしょうか。
phpマニュアルを読み、様々な関数の挙動を確かめながら学んでいるのですが
ファイルの最終更新を拾う事についてつまづいています。
自分のファイルはGetlastmod()で取得できました。
しかし、その他ネット上にあるファイルの最終更新が拾えなくて悩んでいます。
filemtime()関数は根本的にだめなようですし、もしかしたら何かhttpヘッダを修得
する方法があるのかと思うのですが、何か勘違いをしているのでしょうか?

自分がやりたいことを纏めると、ブラウザで読み取り可能な複数の外部ファイルの最終更新時刻を
一括で纏めて一つのページに表示したいのです。アドバイス宜しくお願いします。

490 :nobodyさん:04/09/06 03:16 ID:???
>>456
ん? 8.0.xも8.1.xも問題なく動いているが?
特に違いなど無い>>PHP configure

491 :nobodyさん:04/09/06 03:22 ID:???
>>489
Perlの場合、LWP::Simpleモジュールを用いて、対象のウェブサイトの
変更日付の取得が簡単に出来てしまうが、PHPだと簡単にはいかない

http://ns1.php.gr.jp/php-jp/archives/msg11953.html

ここ辺りが参考になる

492 :490:04/09/06 03:26 ID:???
書き方が激しく不親切だった(w
うちではOracle8.0.xクライアント+PHP4.3.xでOra7〜Ora9まで接続実績あり。
また、Oracle8.1.xクライアント+PHP4.3.xでやはりOra7〜Ora9まで接続実績あり。

内容はoracle/oci接続でのSQL操作およびストアド呼び出し。
動作環境はRHL7.x,8,9とVine。Oracleのインストールはスレ違いだから簡便な。
(つってもどっかの本に載っているような普通のインストールだけど)。

493 :489:04/09/06 03:49 ID:???
>>491さん
そのページ凄く勉強になりました。
phpの持つ関数が便利すぎて、使えそうな関数ばかり探していました。
Basic認証を使ったり、工夫してhttpヘッダから拾得するものだったとは。
ありがとうございました。

494 :nobodyさん:04/09/06 05:03 ID:???
>>489
PEARのHTTP_Requestクラスでも同じようなことが出来る

require_once('HTTP/Request.php');
$request = new HTTP_Request('http://sample.com/index.php');
$request->sendRequest();
$response_hdr = $request->getResponseHeader();
echo "Last-Modified: ". $response_hdr["last-modified"];

また、HTTP_RequestクラスはProxy経由でのファイル取得にも対応している

495 :nobodyさん:04/09/06 08:00 ID:???
>>481
この人、何が言いたいのか分からないのだけど?


496 :nobodyさん:04/09/06 08:34 ID:???
妖精と会話してるんだろう。

497 :456:04/09/06 09:05 ID:???
>>492
oracle8関数ですよね。
オラクル(クライアント)のインストールは
sqlplusでつながってるから大丈夫だと思います。
もしかしてWindows版のPHPもしくはOCIだけの問題なの?
http://www.pat.hi-ho.ne.jp/dimension/bbs/list8.shtml
ここの一番最初の記事の方と同じ現象です。

Linuxでも試してみます。
Linux用のOracleクライアント入手できるかな。。。

498 :nobodyさん:04/09/06 10:33 ID:???
>>495
なぜだかここにずっと居座って、煽るばかりでロクなアドバイスもした試しのない
知ったかぶりの無能だからほっとけ。


499 :nobodyさん:04/09/06 10:54 ID:???
最近PHPを勉強し始めたのですが、セッション関数のテストでエラーがでます。

<?php

session_start();

$_SESSION['test'] = "test";
echo $_SESSION['a'];

?>

上記のようなソースで試してるのですが
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at d:\phps\tes6.php:1) in d:\phps\tes6.php on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at d:\phps\tes6.php:1) in d:\phps\tes6.php on line 3
test

といったエラーが出てしまいます。
php.iniのsession.save_pathは D:/phps/tempで設定してます。
なにがおかしいのでしょうか。。


500 :nobodyさん:04/09/06 11:00 ID:???
>>499
<?phpの前に空行とかない?
session_start()する前に何か出力してしまっているYOっていうエラーだ。

FAQなんだけどな。

501 :499:04/09/06 11:16 ID:???
>>500
すいません解りました。
空行はないんですが、
私のエディタは、UTF-8でデフォルトで保存するように設定してありまして、
といってもUTF-8は問題ではなく、BOMをつけるようにも設定してしまっていたみたいで、それが原因でのエラーでした。orz

大変お騒がせ致しました。

502 :nobodyさん:04/09/06 11:19 ID:aNSEkP4I
Preg_Replace について質問です。
文字列を変換テーブルの通りに変換するような処理を考えます。

$tbl=Array('A'=>'エー', 'B'=>'ビー', 'C'=>'シー',・・・);
$ans=Preg_Replace("/(.)/e", '$tbl[\1]', $str);

これはたいていの場合でうまくいくのですが、たとえば変換対象文字が ']' のような文字だと
うまくいきません('$tbl[\1]' の部分が '$tbl[]]' に展開されてしまうため)。

そこで Preg_Replace の行を

$ans=Preg_Replace("/(.)/e", "$tbl['\\1']", $str);

のような感じにしたとしても、変換対象文字が '\' であったり、シングルクォートだったりすると
うまくいきません。

どんな文字でもうまく変換できる書き方ってありますか?


503 :nobodyさん:04/09/06 12:34 ID:dx9LAYyn
>>497
Windowsだと、PHPが参照するDLLが入っていない場合、
sqlplusは動いてもPHP側oracle(OCI)は動かない場合有り。

オラクルインストーラでOCIライブラリ関連がちゃんと入っているか
チェックしてみれば?
あとは...PATH(環境変数)くらいか...

504 :nobodyさん:04/09/06 12:40 ID:???
2chもPHPで構築されてるんですよね

505 :nobodyさん:04/09/06 12:44 ID:???
Cときいたが

506 :nobodyさん:04/09/06 12:46 ID:???
アホが湧いてるな

507 :nobodyさん:04/09/06 12:54 ID:???
アホだらけ

508 :nobodyさん:04/09/06 13:01 ID:???
Cかぁ
ひろゆきすげえな

509 :340:04/09/06 13:26 ID:???
>>340でperlからphpにどうやって変数を渡すの?と聞いたものです。
フォームメールプログラム(perl)で入力された名前(変数)を
メール送信完了後のphpで、
「$名前様、メールありがとうございます。」
と表示するといったことがしたいのです。
なぜ、phpかというと、phpの方が分かりやすくて好きという厨房な理由です。
というわけで、perlからperlへ変数を渡す方法もよく分かりません。
だれかヘルプキボンヌです。

510 :nobodyさん:04/09/06 13:43 ID:???
(´-`).。oO(じゃあPHPのフォームメール使えばいいだろ・・・)

511 :nobodyさん:04/09/06 13:50 ID:???
普通にポストでもすればええやん。

512 :340:04/09/06 13:52 ID:???
(´-`).。oO(残念ながらPHPで適したフォムメルが見つからないんです・・・)

513 :340:04/09/06 13:53 ID:???
>>511
ポストってアドレスの後につけるあれのことでしょうか?

514 :nobodyさん:04/09/06 14:00 ID:???
>>513
HTMLからやり直し

515 :340:04/09/06 14:09 ID:???
POSTの場合、フォーム入力が必要になりますよね、
フォーム入力させるのは無理なんです。
メールフォームの関係上

516 :nobodyさん:04/09/06 14:14 ID:???
>>515
全部Perlでやりゃいいじゃん・・・
拾い物に少し手を加えればいいだけだろ?

517 :nobodyさん:04/09/06 14:15 ID:???
>>513
アドレスの後についてるのはゲットじゃないかな?


518 :nobodyさん:04/09/06 14:22 ID:???
(´-`).。oO(>>512 ソンぐらい作れよ)

519 :nobodyさん:04/09/06 14:30 ID:???
>>518
html部分が面倒なんだよな・・・・



520 :340:04/09/06 14:45 ID:???
単純にGET使ってみたんですが、これって何か問題ありますかね?

521 :nobodyさん:04/09/06 14:49 ID:???
お前が何かする都度質問するのか?
答えなきゃならんのか?

522 :340:04/09/06 14:53 ID:???
>>521
GETを使えという方が一人もいらっしゃらなかったもので
まさか皆さんが思いつかないような方法を僕ごときが思いつくとは
思えませんのでねぇ

523 :nobodyさん:04/09/06 14:56 ID:???
>>522
藻まえが思ってるほどここの住人頭よくない
基本的にプログラミングなんて社会の底辺がすること

524 :nobodyさん:04/09/06 14:59 ID:???
茶碗は左、箸は右

525 :nobodyさん:04/09/06 15:10 ID:???
>522
お前は天才だ。
何も教えることは無い。
一人で何でもできるだろう。

526 :軟式PHP:04/09/06 15:15 ID:???
>>523
同意。
でも楽しいからいいよ。・゚・(ノ∀`)・゚・。

527 :nobodyさん:04/09/06 15:17 ID:???
GETメソッドはブラウザの履歴に値が丸々残る。
送られた方にはあまり関係ないが、送る方の都合やメールという方向性を考えた場合
送信側のリスクは大きくなるだろうね。
ネットカフェや不特定多数が使う端末なんかで個人情報漏洩する事も考えうる。

528 :340:04/09/06 15:24 ID:???
>>527
なるほど、名前だとかなりリスクありますね・・・。
他の方法考えます。サンクスです

529 :nobodyさん:04/09/06 16:20 ID:???
>>528
>>527の理由でゲットは誰も言わなかったんだろうね。

530 :nobodyさん:04/09/06 18:06 ID:???
つーか、フォームメールでGETなんかありえない
文字数制限あるし

531 :軟式PHP:04/09/06 20:02 ID:???
制限は問題ないでしょう

532 :軟式PHP:04/09/06 20:22 ID:???
偽者キタ━━━━(Д゚(○=(゚∀゚)=○)Д゚)━━━━━!!!
そしてまた台風きそうだよ(´・ω・`)

533 :nobodyさん:04/09/06 20:41 ID:???
>>531
今回の場合、名前だからね。
まさか、ジュゲムジュゲム・・・・な人はこないだろうし。

534 :nobodyさん:04/09/06 22:34 ID:???
>>533
この人って、メールフォームは Perl で、submit後のメール送信までは Perl でやるんだよね。きっと。
で、メール送信が終わったら、完了画面を出すために、Location で PHPスクリプトに移動するってことなのかな。
そこで送信者名だけをパラメータとして引き回すなら、GET でもこと足りそうだね。

でも、わざわざそれしきのことのために別スクリプトに移動しなくてもなぁ、と思うよ。
基本的に HTML に変数埋め込み程度しかできない人なのかな。
そうだったとしても、Perl スクリプトに手を入れてみるくらいのことは出来そうだけどね。
ちょっとがんばってみたら? >>340
一番シンプルかつ簡単な解にたどり着けると思うよ。

535 :nobodyさん:04/09/06 23:25 ID:???
PHPカワイイよPHP〜

536 :カポコン:04/09/06 23:29 ID:???
天下泰平、めでたし、めでたし。

537 :nobodyさん:04/09/07 01:04 ID:???
>>491さん>>494さん
経過としては
HEADリクエストで返ってきたヘッダを1行ずつ配列に組み込み
そこからLast-ModifiedをGMT標準時間で取得し
strtotime関数でUNIX標準の時間表記に直してGMT+9の値を取得。

ここまでの事が短時間に勉強できて感動です。
ありがとうございました( つ∀`)

538 :nobodyさん:04/09/07 11:13 ID:kzLAff5m
>>402
簡単にできると思ってやってみましたが" target="_blank"入れると、エラーになりますね…
>>404
php理解してないと、どこに" target="_blank"を入れるかわからないのでは?


539 :nobodyさん:04/09/07 11:18 ID:???
>>538 = >>402 ;
#HTMLの勉強して下さい。

540 :軟式PHP:04/09/07 11:35 ID:???
>>538
http://tohoho.wakusei.ne.jp/html/a.htm

541 :軟式PHP:04/09/07 11:35 ID:???
どうしてもダメっつんなら、baseで全部ブランクにしてしまえ(藁

542 :nobodyさん:04/09/07 11:41 ID:???
>>538
target='_blank'
にしる。

543 :nobodyさん:04/09/07 11:51 ID:???
>>538=>>402
自作自演の勉強して下さい。

\"$url\"
この「\"」ってのがダブルクオートのエスケープシークエンスだって解んないかな。
echo "で始まってるんだからダブルクオートそのままじゃechoを閉じちゃうじゃん。
target=\"_blank\"だったり>>542だったりtarget=_blankだったり手法は幾つかあるわけで。
つーかぶっっちゃけなんも弄ってないだろ

544 :nobodyさん:04/09/07 11:53 ID:???
なんだっていい。もうお腹いっぱい。
PHPの話がしたい。

545 :nobodyさん:04/09/07 11:57 ID:???
データベース(mySQL)で読み書きする掲示板を作ろうと思うんですが、
ロック機構かなんかを付けて重複処理を見張らないと危ないですか?

546 :nobodyさん:04/09/07 13:18 ID:???
>>545
基本的に多人数で読み書きするものには、ロックは必要です。
データベースの設計によっては自動的に行われるロックで十分なこともあるし、
自分で明示的にロックしなくちゃいけないこともあります。

なんでロックしなくちゃいけないか、その理由を考えれば答えが出ると思います。


547 :nobodyさん:04/09/07 13:37 ID:???
なんで質問スレなのに>>546のようなレスする厨が居るんでしょうね

548 :nobodyさん:04/09/07 13:40 ID:???
>>547
回答に必要な材料がそろってないからでしょ。

549 :nobodyさん:04/09/07 13:42 ID:???
>547
ごちゃごちゃ言わずにお前が答えれば早いだろ

550 :nobodyさん:04/09/07 13:56 ID:???
>>546=>>549
( ´,_ゝ`)

こういう無駄な煽り合いを避けるためにもさっさと君が答えればいいのに

551 :nobodyさん:04/09/07 13:59 ID:???
そしておまえが
>>545=>>550

552 :547:04/09/07 14:01 ID:???
>>547=>>550でしたと

553 :546=548:04/09/07 14:02 ID:91MbvsBk
>>550
はずれ。

個人特定は置いといて、無駄な煽り合いを避けるために、おまえが早く答えてやってくれ。
おれは >>545 の質問を読んだ限りでは、>>546 の回答で精一杯だ。


554 :nobodyさん:04/09/07 14:03 ID:???
>>545
普通にinsertするだけならlockもtransactionもいらないんじゃない。

555 :軟式PHP:04/09/07 14:14 ID:???
いらないね。同時書き込みしてもファイルみたいにぶっ壊れることないし。
まぁ整合性を取らないといけないような仕様だったら必要だけど。

556 :nobodyさん:04/09/07 14:16 ID:???
文字列の中に変数がある場合、
その変数を文字列ではなく変数として扱うにはどうしたらいいのでしょうか?
具体的には下の例でdear_papaと出力する場合です。
宜しくお願いします。

string.txt
----------
dear_$mama
----------

<?php
$string = readfile("string.txt");
$mama = "papa";
echo $string;
?>

557 :nobodyさん:04/09/07 14:24 ID:???
これで無理かな
確認は取ってない

----string.txt------
<?php
echo "dear_".$mama;
?>
--------------------

<?php
$mama = "papa";
include("string.txt");
?>

558 :nobodyさん:04/09/07 14:24 ID:???
>>556
string.txt の内容を

dear_<?=$mama?>

みたいにすれば、

<?php
$mama="papa";
include 'string.txt';
?>

でいけるけど、どうよ?


559 :nobodyさん:04/09/07 14:30 ID:???
$hoge[$lob] これ回した時、エラーが山のようにでるのさ。
$hoge["$lob"] これでも、エラーが山のようにでるのさ。
$hoge['$lob'] これだとうごかないのさ。
$hoge[$lob[$i]] これだったらもうほんとねーとんでもないよ。

誰かエラーの取り方教えてください。
宜しくお願い致します<(_ _)>

560 :nobodyさん:04/09/07 14:33 ID:???
>>559
どんなエラーが出るのさ。
エラー文の引用とソースの抜粋を貼り付けてみなよ。

561 :nobodyさん:04/09/07 14:34 ID:???
>>559
おまいが何をしたいのか、どんなエラーがでるのか
それが分からんと何も分からん
というか、その配列の部分がエラー元だと思う根拠も聞きたい

562 :556:04/09/07 14:55 ID:???
>>558
素早いレスありがとうございます。

やり方についてはわかりました。
もしよろしければ、それが意味するところを知るには、
マニュアル等でどこを見れば良いかも教えてもらってもいいでしょうか?

563 :nobodyさん:04/09/07 15:04 ID:???
>>559
>$hoge[$lob]
で出てくるエラーを提示してみ。それ自体が構文エラーを吐くことはないと思うが。

564 :nobodyさん:04/09/07 15:06 ID:???
>>562
http://www.php.net/manual/ja/language.basic-syntax.php
<q><?= expression ?> は "<? echo expression ?>"のショートカットです</q>

565 :nobodyさん:04/09/07 15:06 ID:???
>>562
<?=・・・?> の書き方についてなら echo かな。

include したらファイルの内容が表示されることについてなら・・・
どこだろう?
PHPスクリプトは、評価(実行)されるときには <? 〜 ?> の外側はそのまま出力される、ってことを思い出せば理解できるかな?


566 :nobodyさん:04/09/07 15:11 ID:???
>>563
"Notice: Undefined variable"と予想。

567 :556:04/09/07 15:13 ID:???
>>562
>>565
またもや素早いレスありがとうございます。
よくよく勉強してみます。

568 :nobodyさん:04/09/07 15:17 ID:???
>>565
includeの項でいいんじゃないかな。
|ファイルが読み込まれるときには、読み込まれるファイルの先頭で
|PHPモードを抜けてHTMLモードになり、最後に再びPHPモードに戻ります。
|このため、読み込むファイル中のPHPコードとして実行する必要がある
|コードは、有効なPHPの開始タグおよび終了タグで括る必要があります。
HTMLモード(そのままechoされる)で。

大元のやりたいことはテンプレートシステムのつくりを調べると
色々な実現の仕方があるということに気がつくと思う。

569 :nobodyさん:04/09/07 15:29 ID:3rwpPIvY
>>556
俺も普通にテンプレートを勉強するのがいいと思う。

570 :nobodyさん:04/09/07 15:43 ID:???
>>559です。

>>560 >>561 >>563 >>566
レスありがとうございます。
Notice [PHP]: Undefined index: in file c: ・・・ 
申し訳ないです。エラーではなかったです。

このメッセージ消す方法はありますでしょうか。宜しくお願い致します。<(_ _)>

571 :nobodyさん:04/09/07 16:03 ID:???
既出の見たのですがよくわかりませんでしたので、再度質問。
掲示板で、串制限する方法おしえてください。
よろしくおねがいします。

572 :nobodyさん:04/09/07 16:09 ID:???
>>570
$lobがundefinedのときにはどんな動作にしたいの?
無視するとか、$lobを0に見立てるとか、なんかあるでしょ?

573 :nobodyさん:04/09/07 16:10 ID:???
>>570
出ている警告のとおりインデックス($lob)をきちんと設定してやればいい。
プログラム的に未設定だったら該当コードをスルーするようにするか。

エラーレポートレベルを下げて「見ない振りをする」という手もあるが、
プログラム初学者の場合、悪い癖が付くのでお勧めできかねる。

574 :nobodyさん:04/09/07 16:11 ID:???
>>570
ていうかNoticeってデフォルトでは出ないはずじゃなかったか
Notice全部イラネってんならphp.iniで
  error_reporting = E_ALL & ~E_NOTICE
今だけ消したいならそのスクリプト中で
  error_reporting(E_ALL | ~E_NOTICE);
でいけると思われ

575 :nobodyさん:04/09/07 16:39 ID:???
>>559です。
>>572 >>573 >>574
ありがとうございます。

ちと、小コードで再現できないので、再現できたらまた来ます。

576 :nobodyさん:04/09/07 17:22 ID:???
noticeを無視するのは良くないクセだ
定義、未定義をしっかり確認するほうがいい

577 :ぬるぽ ◆GmgU93SCyE :04/09/07 17:51 ID:???
2ちゃんと同じ暗号化ってないかな?
Cryptでやってみたけど多すぎ

578 :nobodyさん:04/09/07 18:00 ID:???
いや、Cryptだが

579 :ぬるぽ ◆GmgU93SCyE :04/09/07 18:05 ID:UlF+H5yz
$1$EQ2.763.$nLy55zBP12g8ms/abYLiC/と出た
これを10桁&2ちゃんとまったく同じ変換にするにはどうすればよいか・・・

580 :nobodyさん:04/09/07 18:09 ID:???
丸投げスレをのぞいてみたら何か落ちてるかもよ。

581 :ぬるぽ ◆GmgU93SCyE :04/09/07 18:09 ID:???
>>580
詳細&ガッキボンヌ

582 :nobodyさん:04/09/07 18:37 ID:???
>>571
ちょうどこんなの見つけた
http://headlines.yahoo.co.jp/hl?a=20040907-00000001-imp-sci

583 :538:04/09/07 19:04 ID:kzLAff5m
>>543 説明どうも
>>402ではないので あしからず


584 :nobodyさん:04/09/07 19:21 ID:qMLjw9o/
1,2,3,4,5,6,7,8,9,a,b,c,...,z,10,12,13,14,15,...,1z,20,21
というように36進数を連続して生成するためには
なんという関数を使えばよいのでしょうか?

585 :nobodyさん:04/09/07 19:30 ID:???
数字を1ずつ増やす方法が分からないのか、
基底を変換する方法が分からないのか、どっちか分からんけど、
base_convert使っとき。

586 :nobodyさん:04/09/07 19:34 ID:???
>>579
それDESじゃないか?

587 :nobodyさん:04/09/07 19:36 ID:???
>>579
ttp://php.s3.to/man/function.crypt.html


588 :nobodyさん:04/09/07 19:48 ID:???
<?php
$password = CRYPT_STD_DES("abc"); # saltを生成
echo $password;
?>

589 :nobodyさん:04/09/07 20:00 ID:???
WindowsServer2003でPHP使ってる人いる?

590 :584:04/09/07 20:47 ID:???
>>585さん
ありがとうございました。
こういうのは基底を変換と言うのですね。

591 :nobodyさん:04/09/07 20:47 ID:???
>>579
// 昔作った関数だけど
function gettrip($tripkey) {
$tripsalt=preg_replace('/[^.-z]/','.',$tripkey);
$tripsalt=strtr($tripsalt,':;<=>?@[\]^_`','ABCDEFGabcdef');
$tripsalt=substr($tripsalt.'H',1,2);
$trip=substr(crypt($tripkey,$tripsalt),3,10);
return($trip);
}

// 2ちゃんと全く同じかは(゚听)シラネ

592 :nobodyさん:04/09/07 20:55 ID:???
串制限おしえて!!

593 :nobodyさん:04/09/07 21:02 ID:???
>>592
う・る・さ・い!

594 :nobodyさん:04/09/07 21:17 ID:???
>>592
まずは以下のページで串の基礎をおさらい
http://www.cybersyndrome.net/pg.html#4

そのあと「is_proxy_access」でググってみ。
前スレ289氏のサンプルが出てくるから。

595 :nobodyさん:04/09/07 21:19 ID:???
>589
PHP 4.3.2 + Apache 2.0.48 でとりあえずは動いてる

596 :nobodyさん:04/09/07 21:38 ID:???
>>592
http://www.ponycanyon.co.jp/dango/

597 :nobodyさん:04/09/07 21:49 ID:???
PHPの関数で、他のページに飛ばすのはないでしょうか?
formでsubmitして、処理の結果次第で他のページに飛ばしたいのです。
metaタグでやるしかないんでしょうか?
よろしくお願いいたします。

598 :nobodyさん:04/09/07 21:51 ID:???
>>597
header()でLocationを使う

・・・というのはFAQですが

599 :$key="php"→ ◆BhTTgvJlYk :04/09/07 21:53 ID:???
>>579
つか、にちゃんと同じならぐぐればいくらでもソース出てくるだろ
下はトリップ生成ツールで生成されるトリップと一致することは確認した奴
trip(str トリップキー, int トリップ桁数)

function trip($key, $digit=10){
  $salt = substr($key."H.", 1, 2);
  $salt = ereg_replace("[^\.-z]", ".", $salt);
  $salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
  return("◆".substr(crypt($key, $salt),-1*$digit));
}

600 :nobodyさん:04/09/07 22:17 ID:???
> is_proxy_access
分かってると思うがまんまBBSに実装すんなよ

601 :nobodyさん:04/09/07 22:23 ID:???
>>597
他にも、ジャンプ先のページを丸ごとincludeするとか。

602 :597:04/09/07 22:30 ID:???
>>598
headerにそんな使い方が。。。
ありがとうございます。

>>601
なるほど。考えつきませんでした。
変数がそのまま使えていいですね。
ありがとうございます。

603 :nobodyさん:04/09/07 22:36 ID:Z5/Re9xz
http://script.s16.xrea.com/2ch/
これの携帯表示部分にすれたい検索を実装したいのだが…全くわからん。
ライフライン使わせてくれ。

604 :nobodyさん:04/09/07 22:44 ID:???
そんなのないです

605 :nobodyさん:04/09/07 22:55 ID:???
>>603
やる気ない奴は丸投げスレいけよ

606 :nobodyさん:04/09/07 23:01 ID:???
可変変数ってどういう時に使ってますか? 

607 :nobodyさん:04/09/07 23:12 ID:oC+AH/dT
画像を貼り付けたExcelを出力することはできますか?

608 :nobodyさん:04/09/07 23:28 ID:???
そんなのないです

609 :nobodyさん:04/09/07 23:28 ID:???
画像を、貼り付けた、Excelを、出力することは、できません。

610 :nobodyさん:04/09/07 23:28 ID:???
header("ごにょごにょ");
readfile("画像付きExcel");

611 :nobodyさん:04/09/07 23:43 ID:???
>>610
お前頭いいな!

612 :nobodyさん:04/09/07 23:58 ID:???
どうなるかまで考えてないんだから頭がいいとは(ry

613 :nobodyさん:04/09/08 01:10 ID:???
>>595
windowsでやるならapache2のほうがいいのかな?
apache1はssl使うのにちょっと怪しいとこのを使うので
ちょっと不安。
IIS6でやろうかと思ったんだけど
権限の設定ではまった。。。

614 :nobodyさん:04/09/08 01:41 ID:???
>>613
Windows2003で動かすには
IIS5分離モードとかいうのにしないと
PHPは使えないんじゃなかったっけ?

615 :nobodyさん:04/09/08 01:41 ID:???
自己責任でApache2でもなんでもお好きなのを

616 :nobodyさん:04/09/08 02:27 ID:???
PHPのURLにひっつける引数?はどのように取り出すのでしょうか?
http://www.hoge.com/hoge.php?hoge=hogehoge
みたいな奴のことなんですが。

617 :nobodyさん:04/09/08 02:42 ID:???
>>616
マニュアル読んだ事ある?
言語リファレンス〜機能と必要そうな関数のページぐらい目を通しとけ

618 :nobodyさん:04/09/08 02:56 ID:???
>>616
マニュアルで探し出すのは困難なので、
$_GET['hoge'] で取ってみ。

619 :nobodyさん:04/09/08 03:04 ID:???
ていうかクエリとかいう言葉が出てこない時点で
本一冊くらい買ってみたらいいんじゃないかと思う。

620 :nobodyさん:04/09/08 03:51 ID:???
>>606
アイデアを直感的に実現する(した)時にしか使ってないな。
他ので代用聞くし、プログラムの見た目が逆に直感的でなくなる(気がする)。

621 :nobodyさん:04/09/08 05:13 ID:???
逆に読まれづらいスクリプトを書く時とか

622 :nobodyさん:04/09/08 08:02 ID:???
>>606
DBからデータ拾ってくるときとか使ってる


623 :軟式PHP:04/09/08 12:49 ID:???
まぁ、なんつーかいまだにregister globalのサーバーが多いなぁ…。

624 :nobodyさん:04/09/08 13:16 ID:???
PHPファイルにアクセスできません。
スクリプトをコメントにして消していくと読み込めるんですが、
それを元の状態に戻すとまたアクセスできないようになります。
こういう場合は、どういったことが考えられるんでしょうか?

625 :nobodyさん:04/09/08 13:17 ID:???
>>624
恐らくミス

626 :624:04/09/08 13:22 ID:???
>>625
中身のコーディングによって変わってくるのだから、コーディングのミスだとは思いますが
エラーが出るのではなく、アクセスできないようになるというのはどういったことが考えられるのでしょうか?

627 :nobodyさん:04/09/08 13:48 ID:???
>>626
恐らくミス

628 :nobodyさん:04/09/08 13:58 ID:???
>>626
アクセスできないってどんな状態?
Not Found? Forbidden? それとも空白画面?
とりあえずその辺を書いてみよう。


629 :nobodyさん:04/09/08 13:59 ID:1bxarjSQ
>>626
「アクセスできない」が何を意味するかによる。
何を見てアクセスできないと判断したのか?

apacheのエラーログとか・・・。

630 :nobodyさん:04/09/08 14:00 ID:???
想像では空白画面だと思うんだけどな。
で、
display_errors = Off
になってる。

631 :nobodyさん:04/09/08 15:53 ID:???
こんにちは。
質問があります。

$url = $item[link];

というリンクがあるのですが、新しいウインドウで開くにはどうすればよいのでしょうか?
的外れな質問だったら申し訳ないです。


632 :nobodyさん:04/09/08 15:59 ID:???
>>631
的外れです。つーか、的すら見えない。
さいようなら。(-_-)/~

633 :軟式PHP:04/09/08 16:01 ID:???
<a href="<?=$url?>" target="_blank">ほげほげ</a>

634 :631:04/09/08 16:04 ID:???
PHPに関してほぼ何も分かっていない初心者が質問をしてしまいました。
申し訳ないです。 m(_ _)m
では。



635 :624:04/09/08 16:08 ID:???
Not Foundです。
時間なかったので問題のあるところは削除して、
別の方法でコーディングやり直しました。
お騒がせしてすいませんでした。

636 :631:04/09/08 16:13 ID:???
633さん、ありがとうございます。(^^
でも、target="_blank"ではないんです。
説明不足でしたが、
あるHTMLの中で<iframe>を使い、そのフレームの中に
index.phpをリンクさせているです。
そのindex.php中に

<?php



$url = $item[link];



?>

というものを埋め込んでいます。
「・」は自分の質問では無関係だと思われる部分なので、ここでは省略しました。
そして、この<iframe>の中のリンクをクリックすると、
フレームの中にリンク先が表示されてしまうのです。
そうではなく、新しいウインドウを開くにはどうしたらよいかが知りたかったんです。

637 :nobodyさん:04/09/08 16:15 ID:???
>>631

<?php
$item[link] = "http://www.2ch.net";
$url = $item[link];
echo "<a href='".$url."' target='_blank'>リンク</a>";
?>

はい、どうぞ。

638 :nobodyさん:04/09/08 16:16 ID:???
<iframe>かあ

639 :nobodyさん:04/09/08 16:18 ID:???
>>631
HTMLとか勉強しろ

640 :631:04/09/08 16:24 ID:???
637さん、ありがとうございました。
他の皆様もありがとうございます。
<a href='".$url."' target='_blank'>で解決しました。
ご迷惑をおかけしました。
そして、本当にありがとうございました。 m(_ _)m

641 :nobodyさん:04/09/08 16:27 ID:???
また一人ダメにしちまったなw

642 :nobodyさん:04/09/08 17:16 ID:???
PHPはサーバ側で動作するものであり、HTMLを出力するしかできない。
(ブラウザの動作を直接制御することはできない)
その出力するHTMLを変える(target="_blank")ことで間接的に制御することはできる。

クライアント側であるウェブブラウザは、送られてきたHTMLをただただ表示するのみ。
PHPが動的に出力したHTMLなのか、静的なHTMLファイルそのままなのかは知ったこっちゃない。
ただただ送られてきたHTMLをのほほんと表示するだけ。

このへんのことを理解してないような人が定期的に来るなぁ。
このへんを理解してれば「新しいウィンドウで表示させる」って時点でPHPの話じゃなくてHTMLの話だってわかって自力で問題解決に向かえると思うんだが。

643 :nobodyさん:04/09/08 17:27 ID:???
そもそも、HTMLを知らん人間も居るわけで、
無茶苦茶言ってるいわけでして。

644 :nobodyさん:04/09/08 17:38 ID:???
 magic_quotes はconfigure時にenableしてたらphp.iniでOffに指定しても
Onのままですか?

645 :nobodyさん:04/09/08 18:03 ID:???
PHPでWAP1用のサイトを作っています。
以下のwap1.phpだと端末で表示されません、シミュレーターですがBadSorceになります。
$wap1を文字列ではなくPHPコードとしているから(?)だと思い、$wap1内の「"」をエスケープしましたが駄目でした。
うまく表示させるにはどうすればよいでしょうか?
その下のtest.phpではうまく表示されました。

wap1.php--------------------
<?php
header('Content-type:text/x-hdml;charset=Shift_JIS .hdml');
  ・
  ・
(CHTMLで書いた文章をWAP1用に変換し$wap1に代入)
  ・
  ・
include($wap1);
?>
----------------------------

test.php----------------------
<?php
header("Content-type:text/x-hdml;charset=Shift_JIS .hdml");
$aaa = "<hdml version=\"3.0\" ttl=\"0\" markable=\"true\"><display title=\"テスト\">テスト</display></hdml>";
include($aaa);
?>
----------------------------

646 :nobodyさん:04/09/08 18:09 ID:???
>>645
そのincludeってどういう意味で使ってんだ?
そもそも普通のブラウザで見たらどうなるんだ

647 :645:04/09/08 18:18 ID:???
>>646
うまく説明できませんが、
header関数でヘッダ情報を出力するために、includeで変数に入れたHDMLソースを出力しています。
wap2用のスクリプトはprint関数で変数に入れたXHTMLソースを出力しています。
普通のブラウザで見るとhdmlファイルは未定義(?)のためにダウンロードをします。
すいません、決定的に不足している部分があるのはわかりますが、よろしくお願いします。

648 :nobodyさん:04/09/08 18:23 ID:???
>>647
ダウンロードしてテキストエディタかなんかで中身みてみな

649 :645:04/09/08 18:27 ID:???
>>647
中身は$wap1に格納してあった文字列でした。

650 :nobodyさん:04/09/08 18:33 ID:???
なんでechoを使わないんだろう

651 :645:04/09/08 18:38 ID:???
>>650
printに変えてもBadSorceになってしまいます。
printに変え、PCのブラウザでDLして中身を見ると先ほどと同じでした。

652 :nobodyさん:04/09/08 18:41 ID:???
>>651
$wap1の中身がbadsourceなんだろ

653 :645:04/09/08 18:46 ID:???
>>651
すいません、、、多分そうです。
エラー吐き出すソース書いてました。
これ全部直して、それでもうまく行かなかったらまた1時間ほど調べて、
それでも駄目ならまた戻ってきます、色々すいませんでした。

654 :nobodyさん:04/09/08 19:13 ID:???
ini_set('display_errors','0');
でエラーを表示させないようにしたかったんですが
相変わらず普通にエラーが表示されてしまいます。
(ini_getで見ると一応変更されてるようなんですけど……)

php.iniのdisplay_errorsをoffにすればエラーは非表示になりました。
でもUPする先のはいじれないんで、どうしたら良いのでしょう。
windowsのapache2のローカル環境です。

655 :nobodyさん:04/09/08 19:32 ID:???
マニュアルの27を読め

656 :nobodyさん:04/09/08 20:16 ID:???
申し訳ない、何回か読んだはずなんですが、わからないのです。

657 :nobodyさん:04/09/08 20:19 ID:???
嘘をつけw
釣りならよそでやれよカス

658 :nobodyさん:04/09/08 20:31 ID:???
ここはひとつ、釣られやったと思ってヒントだけでも……

659 :nobodyさん:04/09/08 20:36 ID:???
>>658
> ヒントだけでも……
(・∀・)ノ ttp://www.php.net/manual/ja/

660 :nobodyさん:04/09/08 21:30 ID:???
そもそも>>655を見て、どこを見ればいいか判ったのか?
その上で、どうして>>656の回答になるのか良くわからん

661 :nobodyさん:04/09/08 21:42 ID:???
ここです。
>XXVII. エラー処理およびログ記録関数
いや、本当に質問する前に何回か見たんですが。

php.iniのdisplay_errorsをoffにすれば、パースエラーとかでも
真っ白のページがでるじゃないですか? ああしたいんですよね……
もちろん、そんなエラーでないように作ってるんですけど、念のためってことで。

662 :nobodyさん:04/09/08 21:46 ID:???
あ、パースエラーじゃないか。

663 :nobodyさん:04/09/08 22:11 ID:???
>>661
開発中なら オンにしとけ

664 :nobodyさん:04/09/09 00:06 ID:???
> いや、本当に質問する前に何回か見たんですが。

嘘をつくな
釣りはよそでやれ

665 :nobodyさん:04/09/09 00:14 ID:???
もう池沼はほっとけ

666 :nobodyさん:04/09/09 00:25 ID:FbdWBweA
ちょっとわからない質問です。

よくレンタルサーバーの仕様書に
/usr/local/bin/php
って明記している場合があるのですが
これはHTML内に記述して使えないと言うことですか?

普通HTML内に<?php 〜 ?>で使うことが多いですよね?
モジュールタイプとか言う意味がわからないのです。

667 :nobodyさん:04/09/09 00:30 ID:???
>これはHTML内に記述して使えないと言うことですか?

No.

>普通HTML内に<?php 〜 ?>で使うことが多いですよね?

No.

>モジュールタイプとか言う意味がわからないのです。

調べれば?

668 :nobodyさん:04/09/09 00:32 ID:???
>>666
CGIで動かしているだけでしょ。
Perlのように先頭に書いて以後は同じ

#!/usr/local/bin/php
<html><head>....
<?php
echo "なんたら";
...
?>
</body>
</html>


669 :666:04/09/09 01:04 ID:aXAHUhw0
サンクス。

670 :nobodyさん:04/09/09 01:16 ID:???
>>664
(・∀・)ニヤニヤ

671 :軟式PHP:04/09/09 02:46 ID:???
今日は久しぶりに仕事で徹夜でしゅ( ´−`)チュンチュン

672 :nobodyさん:04/09/09 06:49 ID:???
FAQっぽいのですが
ヒアドキュメント内で定数を使う方法はないですか?


673 :nobodyさん:04/09/09 09:25 ID:???
無い
散々外出だし

674 :nobodyさん:04/09/09 09:56 ID:???
FAQ
Q.
Perl で便利だった定数や関数の埋め込み、q/qq はないの?
A.
残念ながらありません。要望を出しましょう。



675 :nobodyさん:04/09/09 10:59 ID:IIwWnmVE
>>661
ApacheモジュールならApacheを再起動してないとか。

676 :nobodyさん:04/09/09 11:06 ID:???
>>674 = >>406 = >>672

677 :nobodyさん:04/09/09 13:01 ID:XV9g/9TM
フォームから受け取った文字列がhttp://から始まっているか
チェックするために
if(ereg("^http://", $_POST['url']))
と書いてみたのですが、これだと「test.http://〜〜」や
「test,http://〜〜」もスルーしてしまうみたいです。
どうやったらhttp://で始まっているかチェックできるのでしょうか?

678 :nobodyさん:04/09/09 13:13 ID:???
>>677
うちの環境じゃ動くよ。ちゃんと確認したか?

<html>
<form>
URL : <input type="text" name="hoge" size="30"> <input type="submit" value="SEND">
</form>
</html>
<?php
$hoge = $_REQUEST[hoge];
if(ereg("^http://",$hoge)){
print "http://から始まる文字列です => \$hoge = $hoge";
}
?>


679 :nobodyさん:04/09/09 13:16 ID:???
^

680 :677:04/09/09 14:36 ID:???
>>678
それをコピペしてみたら動いたので、どこか
他のところが悪かったっぽいです…
もう一度見直してみます。
ありがとうございました。

681 :nobodyさん:04/09/09 15:49 ID:???
首から上が悪いんだろうなあ…


682 :nobodyさん:04/09/09 16:04 ID:???
Perl で言うところの HTML::TableExtract のようなものは PHP にないでしょうか?
http://pear.php.net/package/HTML_Table は table の生成でした。
やりたいのは table を配列に変換したいのです。

683 :nobodyさん:04/09/09 16:22 ID:???
自作してみて。

684 :nobodyさん:04/09/09 18:23 ID:???
自作してもいいけど、会社の云々で公開できなくなるのが残念。

685 :672:04/09/09 18:33 ID:???
>673-674
外出すみません、ありがとうございました。

>676
perlは使ったことありません。


686 :nobodyさん:04/09/09 18:50 ID:???
<?php
$link = mysql_connect("hostname", "user", "passwd")
or die("Could not connect\n");
print ("Connected successfully\n");
mysql_close($link);
?>

上のスクリプトで、hostnameがlocalhostのとき、
○シェルからCLI版のPHPで実行するとMySQLに接続できる。
○mod_phpからHTTP経由で実行してもちゃんと動く。

hostnameがlocalhostでない別ホストのとき、
○CLI版PHPではちゃんと動く。
×mod_phpではなぜか接続できない。

なんで別ホストで動くMySQLにmod_phpから接続できないんでしょう???

CLI版とmod_phpは同じコンパイルオプションで同時に作ったもの。バージョンは4.3.6。
./configure --with-mysql=/usr/local --with-apxs2=...
CLI版では接続できているのでネットワークや受け側MySQLの問題ではないと思う。


687 :nobodyさん:04/09/09 19:22 ID:???
>>686
mysql_connectが吐くエラーメッセージはなんて言ってる?

688 :nobodyさん:04/09/09 19:29 ID:???
>>686
実は、実行権限の違いの問題だったりして。
Apacheとコマンドラインの。

なにはともあれ 4.3.8にした方が良いと思います。

689 :nobodyさん:04/09/09 19:34 ID:???
とりあえず、
die( "Could not connect. ".mysql_error() );
とでもやってエラー原因を確かめるべし

690 :nobodyさん:04/09/09 22:07 ID:???
メールフォームを作ろうと思って、

<form action="<?php echo $PHP_SELF ?>" method="POST">
Name:<input type="text" name="name" size="16">
E-mail:<input type="text" name="mail" size="40">
<input type="submit" value="送信"></form>
<?php
if($_POST['mail'] and $_POST['name']){
mb_send_mail($_POST['mail'],$_POST['name'],本文だよ);
}
?>

という風に書いてみたところ
「Parse error: parse error, unexpected '{' in /~~~/mail.php on line 7」
と言われてしまいました。
変なところに{があるYO!ってことだと思うのですが、
どこを見ても余計な{は入っていないようにしか思えません。
どうすれば正常に動くのでしょうか…

691 :nobodyさん:04/09/09 22:10 ID:+Va/ZOYc
phpの設置についてなのですが、
Vine Linux3 上のapacheでhoge.phpというファイルをアップし
ブラウザからアクセスすると、phpの中身がそのままテキストとして表示されてしまいます。
apacheのphp、php3、php4モジュールは読み込みされており
AddTypeもされています。

こういった場合どこか問題かわかる方よろしくお願いします。

692 :nobodyさん:04/09/09 22:16 ID:???
mb_send_mail($_POST['mail'],$_POST['name'],本文だよ);
mb_send_mail($_POST['mail'],$_POST['name'],'本文だよ');

693 :690:04/09/09 22:19 ID:???
>>692
サンクスです!

694 :nobodyさん:04/09/09 22:47 ID:???
>>691
--enable-versioningしてるの?それともcgiモジュールとapacheモジュールで分けてるの?
そのAddTypeは絶対間違ってない自信があるから、ここに書かないの?

>>693
Parse errorが出た時は show_source()を使うと
parserの気持ちになれてサクッと解決できることもあるよ。

695 :カポコン:04/09/10 00:02 ID:???
>>686
AAA!CafeでのMySQL接続確認ならこの3行でOK
<?php
$link = mysql_connect("mysql?.aaacafe.ne.jp:3306","user","pass");
echo mysql_ping($link))?"MySQLと接続されています。":"MySQLと接続されていません。";
mysql_close($link);
?>
後は人に頼らず、自分でカスタ〜ムするべし。
後、MySQLでは正規表現探索が出来ますから、色々便利な部分も多いですよ。

696 :nobodyさん:04/09/10 00:20 ID:GObesny2
プルダウンで選択されたものによって
そのページにあるテキストボックスの中に文字を変えたいのですが
どうすればいいのでしょうか?
あと、質問する場所がおかしいかもしれません。
申し訳ありません。

697 :nobodyさん:04/09/10 00:30 ID:???
そういうのは普通クライアントサイドでやらないか?

698 :nobodyさん:04/09/10 00:41 ID:GObesny2
自分のソースに記述するんですよね?
やっぱりここで聞く質問じゃないですか?

699 :nobodyさん:04/09/10 00:52 ID:???
>>698
http://pc5.2ch.net/test/read.cgi/php/1065151808/
ここかな?

700 :nobodyさん:04/09/10 00:56 ID:???
どうもありがとうございます
ご迷惑お掛けしてすみませんでした。

701 :nobodyさん:04/09/10 03:33 ID:???
http://php.s3.to/man/ref.sockets.html
↑ここの例1をwindowsで動かしてみたんですが、
そのままだと接続した瞬間シャットダウンしてなにもできません…

試しにsocket_read のPHP_NORMAL_READをPHP_BINARY_READに変えてみたんですが、
そうすると今度は動くには動くんですが、一文字入力するたびにレスポンスがあって、
'quit'と入力することができません。

なにかまともに動かす対処法はないでしょうか

702 :701:04/09/10 06:00 ID:???
すいません自己解決できました。

703 :nobodyさん:04/09/10 10:11 ID:???
正規表現が難しくて困ってます。
一つ作るのに3日くらい試行錯誤しながら
作ることもありまつ。
できあがったとしても、マッチはするものの
それで合っているのか不安です。
助けてください

704 :nobodyさん:04/09/10 10:17 ID:???
>>703は110や119に電話しても「助けて」だけしか言わないタイプ

705 :nobodyさん:04/09/10 10:33 ID:???
>>704
一本!

706 :703:04/09/10 10:35 ID:???
(´;ω;`)

707 :nobodyさん:04/09/10 10:37 ID:???
>>703
正規表現はパズル感覚で楽しめるようにならないとな。

708 :nobodyさん:04/09/10 10:55 ID:???
>>706
泣くな。正規表現は、おっもしろいぞー。 

709 :nobodyさん:04/09/10 11:52 ID:e5AaNUbi
正規表現…オライリーでそれだけで1冊本ができるぐらいだからな。
一朝一夕にマスターできると思うな。

710 :軟式PHP:04/09/10 12:58 ID:???
つかわんと覚えんよ。

711 :703:04/09/10 13:22 ID:???
自分の書いたので合っているかどうか
よく不安になるので・・・
正規表現が楽しめるようになるよう
がんばりまつ(`・ω・´)
レスありがとう。

712 :nobodyさん:04/09/10 13:42 ID:???
>>703
とりあえずこんなスレも有るぞ

正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/

713 :nobodyさん:04/09/10 14:58:11 ID:???
>>711
不安ならとりあえずここに書いたもん晒せよ

714 :686:04/09/10 18:22:40 ID:???
686のコードを
mysql_connect(...) or die(mysql_errno().":".mysql_error());
としてためしてみると、
2003:Can't connect to MySQL server on 'hostname' (0)
となりますです。
tcpdumpしてみると正常に接続できるときとは異なるパケットが飛んできてるようだけど、
だからといってどこを直せばわからん。

よくわからんので、MySQLのクライアントライブラリから
コンパイルしなおすことにするです。うーむ。

715 :nobodyさん:04/09/10 18:32:16 ID:???
>>703
Regexp Tester
http://www.bitesizeinc.net/index.php/regexp.html

716 :nobodyさん:04/09/10 19:39:21 ID:???
goo blogの管理ページ、
ブラウザの戻るしてもちゃんと表示されてるんだけどどうやってるんだ?

717 :nobodyさん:04/09/10 19:41:32 ID:???
>>716
いくらでも方法はあると思うけど。俺はセッション使う

718 :nobodyさん:04/09/10 19:54:27 ID:???
いや、セッションは解るんだけども、どうやってんだろう、と。
戻ったら期限切れで表示されないよね。

719 :nobodyさん:04/09/10 20:21:35 ID:???
>>718
そりゃポストのときだろ

720 :軟式PHP:04/09/10 23:39:59 ID:???
sessionリミッターでどうにでもなるけど。

721 :nobodyさん:04/09/11 08:14:04 ID:???
HTTPヘッダを出力しないようにするにはどうしたらいい?
header()じゃだめだし、ini_set()でもそれらしいオプションが見つからん。

やりたいことはCGI版をコマンドラインで実行させたときに余計なHTTPヘッダを出力しないってだけなんだけど。
-qオプションを使いたいところなんだが、
#!/usr/env/php -q
としたら
/usr/bin/env: php -q: No such file or directory
と出て怒られた。

722 :nobodyさん:04/09/11 09:09:35 ID:???
>>721
CGI版の PHP がどこにインストールされているのか知らないけど。
env を使わずに
#!/usr/bin/php -q
とか
#!/usr/local/bin/php -q
にしてみれば?

723 :nobodyさん:04/09/11 12:10:38 ID:???
>>721
コマンドライン版使えばいいのに。

724 :nobodyさん:04/09/11 12:18:59 ID:???
>>716
オイラはgoo blogは使ってないから想像で書くけど、
POST後にブラウザの戻るを使われて困る場合は、
POST処理後にheader("Location: 〜".SID) を使ってGET扱いにさせる。

725 :nobodyさん:04/09/11 13:15:27 ID:1u0p7mhs
Vine+PHP4+MySQLの環境でphpMyAdminを使用しようと思って
phpMyAdmin-2.6.0-rc2.tar.bz2を解凍して
phpMyAdminと名前を変えてhttp://localhost/phpMyAdmin/
でアクセスすると
扱えない拡張子のファイルです,
PHP の設定をチェックしてください。
というメッセージがでて使用できません。どうすればよい
でしょうか?

726 :nobodyさん:04/09/11 14:07:53 ID:???
>>725
>どうすればよいでしょうか?

「PHP の設定をチェックしてください。」

727 :sasa:04/09/11 14:34:22 ID:1u0p7mhs
>>726
php.iniを調べてもそれらしき場所が見当たりません。
httpd.confも.php登録してますし・・・
なんで扱えない拡張子なんだろ・・・

728 :sasa:04/09/11 15:06:32 ID:1u0p7mhs
バージョン下げたら普通に動きました。

729 :nobodyさん:04/09/11 15:35:49 ID:???
バージョンが上がるには理由があるわけで、
それを下げるのは解決法としてはあんまり良くないな。
>>725のエラーメッセージらしきものをググってみても全然ヒットしないんだけど、
何か隠してることは無い?

730 :nobodyさん:04/09/11 15:52:16 ID:yl69/FM+
異常なまでにリロードされ、カウンタファイルがたまに壊れて困っています。
日付、昨日のカウント数、今日のカウント数、総カウント数
という形式で保存、総カウント数を出力しています。

保存はflock→fputs→fcloseです。
病的リロードに耐えうるカウンタは、どう作ればよいのでしょうか。
コツなどありましたら教えてください。

731 :nobodyさん:04/09/11 16:05:03 ID:???
どうコーディングしてもサーバにリソース制約を
課されていれば壊れるときは壊れる。
flockで保護できるのは同時書き込みだけ。

732 :nobodyさん:04/09/11 16:06:47 ID:???
>>730
そんなにリロードされるなら、IPで2重カウント禁止にすればいいじゃん

733 :730:04/09/11 16:13:43 ID:yl69/FM+
レスありがとうございます。
壊れるのはどうしようもないということですので、
2重カウント禁止に修正したいと思います。
731さん、732さんありがとうございました。

734 :nobodyさん:04/09/11 16:15:07 ID:???
>>722
/usr/bin/phpでも/usr/local/bin/phpでもどちらでも動かせるようにしたいんで。

>>723
もちろんそうなんだけど、どちらがインストールされてても動くようにしたいので。

だって、「HTTPヘッダを出力しない」ってだけだから、それくらいの機能あるだろうと思うのだが。
それくらいの機能さえ見つけられないおれがへたれなんだがな。


735 :nobodyさん:04/09/11 16:45:45 ID:???
>>734
HTTPヘッダの出力抑制は-qオプションであってるよ。
まあ一部抑制しきれてない(エラーかなにかだったかと)部分はあったと思うけど。

エラーでてるのはオプションの与え方とか、実際にファイルがなくて出てるんじゃないの?

736 :nobodyさん:04/09/11 16:52:30 ID:???
たいていの OS は #! で複数の引数を認めないはず。
そんな制限のないものもあったような気もするが。

>/usr/bin/phpでも/usr/local/bin/phpでもどちらでも動かせるようにしたいんで。

特に ruby の人はこの傾向が強いけど、個人的にはやっちゃいかんと思う。
↓こうすればできるようだけど、オススメはしない。

#!/bin/sh
sed 1,3d "$0" | php -q -- "$@"
exit
<?php
phpinfo();
?>


737 :nobodyさん:04/09/11 16:59:08 ID:???
バッファに咥えて破棄することはできんの。

738 :nobodyさん:04/09/11 17:20:54 ID:???
strtolower('ABCabcアイウ');

abcabcヂツテ

これって仕様ですか?

739 :nobodyさん:04/09/11 17:39:36 ID:???
mb_

740 :nobodyさん:04/09/11 17:39:49 ID:iOhe01Jz
>>738
仕様です。
と答えれば満足するのか?

741 :nobodyさん:04/09/11 17:41:32 ID:2sNlQMEV
>>738
strtolowerはマルチバイトには対応してないよ。
mb_strtolower使いな。


742 :738:04/09/11 17:42:10 ID:???
ごめんなさい
文字コード指定してあげたら
ちゃんと動きました

743 :nobodyさん:04/09/11 17:43:38 ID:???
>>738
仕様というか、ある意味海外製ソフトウェアの宿命。
2バイト文字がShift_JISコードの場合の文字コードは、
A → 41
B → 42
C → 43
ア → 83 41
イ → 83 43
ウ → 83 45
で、内部にAとかを内包してるから。
最初から2バイト文字を配慮して作られてるソフト以外ではそのまま変換してしまう。
PHPもしかり。
試してないけどttp://jp.php.net/manual/ja/function.mb-strtolower.phpはどう?
mbstringモジュールが有効でPHP4.3.0以降ならの話みたいだけど。

744 :738:04/09/11 17:46:06 ID:???
>>739
>>741
オラクルのlowerと同じ仕様の関数を探してました
ありがとうございます!
4.3からmb_strtolowerがあったんですね。


745 :nobodyさん:04/09/11 18:27:55 ID:jQgqezNj
imageCreateFromGif( )を使ってGIFを読み込み作成しようとしたのですが
使用しているサーバのGDがGIFに対応していないので困っています。
PHPを使ってGDを使わずGIFを読み込み作成は出来るのでしょうか?
みなさんはPHPでGIFを扱うときどうしているのでしょうか?ご教授ください

746 :nobodyさん:04/09/11 18:33:22 ID:???
>>745
GIFの特許はもう切れたのだから、GIF対応したGDを入れるように
サーバ管理者に頼んだ方が早くね。

747 :nobodyさん:04/09/11 18:38:14 ID:???
>>746
GIFの読み込みだけはGIFの特許問題と関係なく結構前のバージョンから対応している
まあいずれにしても、入れ替えるに同意
古いバージョン使っててもろくなことないし

748 :nobodyさん:04/09/11 18:39:50 ID:jQgqezNj
>746-747
ありがとうございます。
さっそく、管理者にメールで要望してみます。
非常に助かりました

749 :nobodyさん:04/09/11 18:55:13 ID:onw6fTqi
ファイルAからファイルBに処理を委譲したいのですが、
どのようにすればできますか?
header の location で遷移はできましたが、
hidden とかのパラメーターが渡らないんで困ってます。
? やセッションを使って渡してもいいかと思いますが、
他の方法があったら教えてくださ〜い。
今は、ファイルBをファイルAにインクルードして対処してます。

750 :nobodyさん:04/09/11 19:25:53 ID:???
>>749
オブジェクト化しれよ

751 :nobodyさん:04/09/11 20:30:46 ID:jF+qSLdI
こちらでよいかわかりませんが質問です。
PHP+apache+MySQLで組んだWEBアルバム(写真)があるのですが、携帯メールに
添付されている写真データを自動的にデータベースに登録する方法がピンときません。
できる方法ありましたら、大まかなイメージで結構ですのでアドバイスください。

現在、Postfixを入れ、画像付のメールが~/MailDir/newディレクトリに保存されて
いるところまで確認できてます。



752 :nobodyさん:04/09/11 20:42:57 ID:???
>>751
即時性を求めるなら、procmailを使ってメール受信時に処理。
定時処理でいいなら、cronで定期実行。

753 :nobodyさん:04/09/11 20:50:42 ID:???
>>752
aliasesでコマンドそのまま渡して、
標準入力からメールを読み込んだ方が早くね。

754 :nobodyさん:04/09/11 22:14:20 ID:???
>>730
そのサーバで、flock によるロックがかかるかの検証をした方がいいよ。
flock のマニュアルにはこうあります。

> flock()はNFS及び他の多くのネットワークファイ ルシステムでは動作しません。
> 詳細についてはオペレーティングシステ ムのドキュメントを確認下さい。
>
> いくつかのオーペレーティングシステムでflock() はプロセスレベルで実装されています。
> ISAPIのようなマルチスレッド 型のサーバーAPIを使用している場合、同じサーバーインスタンスの
> 並列スレッドで実行されている他のPHPスクリプトに対してファイルを保 護する際に flock()を
> 使用することはできません!

>>394 の検証方法なんてどうよ?


755 :nobodyさん:04/09/12 00:12:15 ID:???
>>736
>個人的にはやっちゃいかんと思う。
ほう、そうなのか?もしよければ理由きかせて。セキュリティ上の理由?

>>737
>バッファに咥えて破棄することはできんの。
ob_start()してob_close_clear()するってことかな。なんかそれでいけそう。

ていうか、こういう回答しかこないってことは、CGI版ではHTTPヘッダは必ず出力されてしまい、
抑制できないってこと?


756 :nobodyさん:04/09/12 01:02:10 ID:???
俺もHTTPヘッダ出力を抑制する方法は知りたい。

header("RESPONSE: HTTP/1.1 404 Not Found");

とやっても自動出力されている最初のRESPONSE: HTTP/1.1 200 OK だけしか検知してくれない場合がある

757 :nobodyさん:04/09/12 01:07:41 ID:???
>755
もう板違い

>756
きちんと404も出力すれば200は上書きされるよ


758 :nobodyさん:04/09/12 01:11:52 ID:???
>>756
HTTPステータスは別格。書式->http://jp.php.net/header

759 :nobodyさん:04/09/12 01:13:17 ID:5k4aSpIX
つーかphpスレって凄いレベルになってるのね

760 :nobodyさん:04/09/12 02:01:40 ID:lTFax1YW
header("Content-Disposition: attachment; filename=".$EXPORT_FILE);
header("Content-Length: ".filesize($DB_PATH.$EXPORT_FILE));
header("Content-Type: application/x-octet-stream");
readfile($DB_PATH.$EXPORT_FILE);

これでファイルダウンロードしているのですが、
DLしたファイルの1行目に空白行(改行コード)が入ってしまいます。
(サーバー上のファイルは空白行がない)
Apache/1.3.24 (Win32) PHP/4.2.1

これってIEが悪いのですか?

761 :nobodyさん:04/09/12 02:04:29 ID:???
>>760
広告が入るレンタルサーバーとかじゃないよね?

762 :nobodyさん:04/09/12 02:09:53 ID:lTFax1YW
>>761
レンタルサーバーではないです。
ローカルでやっても同じ現象がでてしまいます。

763 :nobodyさん:04/09/12 02:39:44 ID:???
実は
\n
<?php


?>
になってるとか。

764 :nobodyさん:04/09/12 04:25:37 ID:???
>>763
おっしゃるとおりでした。
includeしたphpの最終行に

<?PHP
?>
\n

となってました。どうもありがとうございました。

765 :nobodyさん:04/09/12 05:33:04 ID:ydmYYx+I
よければアドバイスを

ランダムで「タグ付きのテキスト(要はhtml文書の一部)」をHP上で表示したいのですが
テキストが短ければ「 " -> \" 」や「 改行 -> \n 」の変換作業は楽です。

ですが長くなってくると変換がめんどくさいので良い方法はないですかね。
「タグ付きのテキスト」をファイルにして読み込む方法を思いついたのですが、ちょっと大げさかと。

html文書からコピペで変更できると楽なんですが…

766 :765:04/09/12 05:35:04 ID:ydmYYx+I
srand;
$i = rand(0, 4);

switch ($i) {

case 0:
$ad_data = " <tr>\n <td><img src=\"aaa.gif\">\n";
break;

上記の感じでめんどくさいのでどうにかならないかと

767 :nobodyさん:04/09/12 05:41:58 ID:???
> ランダムで「タグ付きのテキスト(要はhtml文書の一部)」をHP上で表示したいのですが

HTML内に、タグ含むHTMLを表示したいということじゃないのか。

> テキストが短ければ「 " -> \" 」や「 改行 -> \n 」の変換作業は楽です。

\"や\nに変換するということは、phpコードに変換するということか?

> 「タグ付きのテキスト」をファイルにして読み込む方法

何に対してどう大げさなんだ?

> html文書からコピペで変更

で、結局htmlを何に「変更」するんだ?

768 :nobodyさん:04/09/12 05:47:43 ID:???
>>765-766
変換コードかますなり好きにすれば?
Datは使えよ。

769 :nobodyさん:04/09/12 05:57:35 ID:???
もうちょっとPHPっぽい話もしとかないと何かヤバくね?

770 :nobodyさん:04/09/12 06:17:05 ID:???
まさか・・・
ランダムでHPの内容変えたいってだけか?
表示するHTML全部ダブルクォーテーション内に書いて、
改行とか"とかまんどくせ〜
とか言ってるのか?

まさか・・・
俺ら釣られた?

771 :nobodyさん:04/09/12 07:51:02 ID:???
何が面倒なのかが分からん。
HTMLソースでタグを改行して綺麗にネストさせたいがために
\nを入れるのがダルーって事か??

772 :nobodyさん:04/09/12 09:46:28 ID:Iy6EF+FA
WindowsでPHPを(CGIとして)動かす場合、
インストーラー版じゃなくてアーカイブ版じゃないとダメなんですか?

773 :nobodyさん:04/09/12 10:46:16 ID:???
>>765
> 「タグ付きのテキスト」をファイルにして読み込む方法
これで全てが解決します。include or require のマニュアルを参照。

>>772
php.netで配布してるブツのことなら、
> windows php 5.0.1 installer ( CGI only...
って書いてあるけど?

774 :nobodyさん:04/09/12 14:17:03 ID:7xfelydB
php5.0.1を入れたら、同じページでも2,3割の確率で、
ランダムな箇所がエラーになるんですが、これってphp5.0.1のバグなんでしょうか・・・?

775 :774:04/09/12 15:31:35 ID:???
PHP4.3.8に戻したら、エラーがなくなった・・・

しばらくは様子見しよう・・・

776 :軟式PHP:04/09/12 15:33:05 ID:???
出たばっかりのものは人柱覚悟で使わんと。

777 :nobodyさん:04/09/12 16:11:31 ID:RQoOdmb2
PHP+MySQLを使用しています。
時間だけの足し算で、思う結果が出せません。
テーブルには、time型の項目が2つあり、この2項を足した結果がほしいのです。

date("H:i:s",strtotime($myrow["a_time"])+strtotime($myrow["b_time"]));

調べたところ、strtotime($myrow["a_time"]) の時点で日付のデータも含まれていて、
それが2つあるため、足し算した結果オーバーフローしてしまっているようです。

日付のデータを含まないで時間だけを扱う方法はないでしょうか。

778 :nobodyさん:04/09/12 16:32:09 ID:???
>>774
ちょっとまだそういうところあるね>PHP5
PHP4にアクセラレータ系のエクステンションを噛ました時にも
結構同様なことは起きたけど。


779 :nobodyさん:04/09/12 16:39:00 ID:???
Yahoo掲示板みたいな会員制の掲示板を作るには
クッキーは必ず必要でつか?

780 :nobodyさん:04/09/12 16:48:57 ID:???
>>779
何のためにcookieを使うか考えて、
その後 他の物で代用できるかどうか考えてごらん。

781 :nobodyさん:04/09/12 17:18:15 ID:???
>>774
具体的にどういうエラーよ

782 :nobodyさん:04/09/12 17:28:04 ID:???
>>764
ちと遅レスだが
「ファイル終端におけるPHPブロックの終了タグはオプション(任意)です。 」
( ttp://jp.php.net/manual/ja/language.basic-syntax.php#language.basic-syntax.phpmode )
なので、特に必要ないなら付けないようにすれば、そういうので悩まなくて済むよ

>>776
以前printfで\0が入るという大バグが出た時は参った
あれ以来1ヶ月くらい様子見てからにしてる

783 :nobodyさん:04/09/12 18:57:23 ID:???
やっぱりphp5はまだバギーなんだね
オブジェクト指向で作りたいから導入考えてたけど
まだだめか…

784 :nobodyさん:04/09/12 19:00:13 ID:???
php4でもオブジェクト指向できるじゃん

785 :nobodyさん:04/09/12 19:06:53 ID:???
教えてください。
PHPでファイルをアップロードしたときの
ファイルのパーミッションが600になるのですが
chmodで644にすることはできますが
最初から「644」で作成することはできないでしょうか?

php.iniの設定やapacheの実行ユーザの設定などで
決まるのでしょうか?

786 :756:04/09/12 19:18:28 ID:???
>>757
サンクス!

787 :nobodyさん:04/09/12 19:18:57 ID:???
>>785
apacheの実行ユーザの設定で決まります。
umask。
でも、644にする必要無いんじゃないの?FTPで消したいとかなら別だけど。

788 :nobodyさん:04/09/12 19:44:19 ID:???
>>787
なるほどー
ちなみにnobodyの場合は
どこかで設定可能でしょうか?

アップした画像ファイルをそのまま参照可能にしたいのですが
今まで使ってたレンタルサーバでは
そのまま「644」になってたのでなにか方法があるのかなーと。


789 :nobodyさん:04/09/12 19:45:41 ID:???
interfaceが無いからポリモーフィズムを実現しにくいってのは
あるけど、PHP4でもOOPは出来るなぁ。
オブジェクト指向で作りたいからこの言語…と言ってる時点で底が見えてる。

790 :Sinji:04/09/12 22:19:09 ID:O4Yb0b0i
すみませんが、PHPで日本語の文字列の16進数の表示はどうやればいいか教えてもらいませんか。
たとえば:
$str = "あい" という文字列なら
"2422" (JISの「あ」に相当する) と "2424" (「い」に相当する) という数字を出力したいのです。
よろしくお願いします。

791 :nobodyさん:04/09/12 22:43:52 ID:???
$str = "あい";
for($i=0; $i<strlen($str); $i++) printf("%02x", ord($str{$i}));


792 :nobodyさん:04/09/12 22:45:49 ID:???
>>790
bin2hex なんていかが?

793 :nobodyさん:04/09/12 22:47:53 ID:???
>>790
$hex=implode('', unpack('H*', $str));

$strがJISなら漢字IN/OUTが含まれるかも
SJISなら問題なし

794 :Sinji:04/09/12 23:19:43 ID:O4Yb0b0i
返事ありがとうございました。一応これで16進数の表示がわかりましたが、
$str = "あい";
for($i=0; $i<strlen($str); $i++) printf("%02x", ord($str{$i}));
の出力は:82a082a2 (24222424ではなく)これは単なるシフト(+5e7e)かと思ったら
$str = "アイ" や $str = "大阪"などにしたらどうもそうと見えないのですが。。。


795 :nobodyさん:04/09/12 23:53:38 ID:Jg1ciVqm
>>794
その for でやってることが bin2hex だよ。
そして $str = "あい" の結果は Shift-JIS に見えるけど、$str = "アイ" や $str = "大阪" の結果はどうなるのよ?


796 :Sinji:04/09/13 00:12:43 ID:3IjiBAgs
>その for でやってることが bin2hex だよ。
>そして $str = "あい" の結果は Shift-JIS に見えるけど、$str = "アイ" や $str = "大阪" の結果はどうなるのよ?
$str="アイ"などの結果はShift-JISのようです。欲しいのはJISの16進数なので、一応mb_convert_encoding($str,"JIS")をやってみましたがうまくできませんでした。
たとえば:
$str = "あい"; $str = mb_convert_encoding($str,"JIS");でbin2hexの出力は「1b244224」でした。
$str = "大阪"; $str = mb_convert_encoding($str,"JIS");でbin2hexの出力は「1b244242673a651b2842」でした。

なんだか、私はPHPがよくわからないと思っています。。。



797 :nobodyさん:04/09/13 00:15:49 ID:???
分からなくなったらソースコードか仕様を見れよ

798 :nobodyさん:04/09/13 00:30:09 ID:???
D*main K**perってとこPHPのヴァージョンが低いんですけど
上げてくんないかなぁ〜 ちなみにコバルト。

799 :nobodyさん:04/09/13 00:31:13 ID:???
チラシの裏にかいとけ

800 :nobodyさん:04/09/13 00:35:14 ID:???
>>796
"大阪" の方は正しく動いてるね。
最初の 1b2442 は漢字モードに入るマーク(KI)、最後の 1b2842 は終わるマーク(KO)だよ。
文字列本体の部分は 42673a65 ね。

でも、"あい" の方はへんだね。
なんだそりゃ。


801 :nobodyさん:04/09/13 00:37:40 ID:???
コード指定せずに2文字だけじゃ判別失敗しても文句いえんだろ。

802 :800:04/09/13 00:45:07 ID:???
>>801
でも、正しく変換した場合(1b2442242224241b2842)の上 4バイトだけが取得できてることを考えると、
元文字コードの判別はうまくいってるのかな、って気がしなくてもないよね。
もちろん、元文字コードの指定を付けたほうがいいわけだけど。


803 :nobodyさん:04/09/13 00:45:18 ID:???
iniのほうもどうなっているか

804 :nobodyさん:04/09/13 00:46:56 ID:???
"bin2hex"も何をさしているのやら。

805 :nobodyさん:04/09/13 00:48:02 ID:V7/A7viW
↓よくある回答

806 :nobodyさん:04/09/13 00:50:05 ID:???
>>804
マニュアル引け

807 :804:04/09/13 00:50:47 ID:???
>>806
そういう意味ではないのだよ。そういう意味では

808 :804:04/09/13 00:55:17 ID:???
連書きスマソ。
時にc++でext作るときのオフィシャルなマニュアルってあります?
ソースコードから慣例読めってのは無しの方向で。

809 :nobodyさん:04/09/13 01:00:28 ID:???
>>808
ソースコードから慣例読め

810 :nobodyさん:04/09/13 01:01:34 ID:???
$str="あい";
$str=mb_convert_encoding($str,"JIS","euc-jp");
$str=bin2hex($str);
$str=substr($str,6,8);
print($str);

811 :nobodyさん:04/09/13 01:05:29 ID:???
>>810

$str="あい";
$str=mb_convert_encoding($str,"JIS","SJIS");
$str=substr($str,3,4);
$str=bin2hex($str);
print($str);

のほうがちょっといいカモ

812 :shinji:04/09/13 01:07:43 ID:3IjiBAgs
>>800
>>810
まいど!ほんまに助かりました。PHPがはじめてでその上日本語の文字コードについてぜんぜんわからへんからいろいろすまへん。多分これで解決できたと思う。


813 :nobodyさん:04/09/13 01:11:36 ID:???
>>808
漏れはbin2hex();じゃないに10グラタンw
Devドキュメントはあるけどオフィシャルとなるとちょっと。
CSV追っかけてる人たちの間でも微妙と思われ。
問題があればMLのほうでやったほうがいいかも
#既出にはくれぐれもご注意

814 :nobodyさん:04/09/13 01:14:53 ID:???
ESAは月にシェルターつくるんだって。
月基地で着用されるコスチュームのアイディアを募集してるぞ。
うさぎの絵を書いて送ろう。 hello.moon@esa.int

815 :nobodyさん:04/09/13 01:22:50 ID:???
$str="あいうeo";
$len=strlen($str);
$str=mb_convert_encoding($str,"JIS");
$str=bin2hex($str);
$str=str_replace(array("1b2442","1b2842"),"",$str);
print($str);
これなら全角4桁ASCII2桁で使える。

816 :nobodyさん:04/09/13 01:25:01 ID:???
>>806 >>809
泣きそうになった

817 :nobodyさん:04/09/13 01:28:54 ID:???
>>814
ビミョーなこと云うな。

818 :nobodyさん:04/09/13 02:38:52 ID:???
>>808
Cって素敵やん?

819 :783:04/09/13 04:44:25 ID:8a1krxrn
しかたないのでとりあえずphp4で作り始めました
Singletonを実現したいのですが
staticを何とかスマートに実現する方法はないものでしょうか?

820 :nobodyさん:04/09/13 07:43:02 ID:???
携帯から画像アップさせたいのですが
PHPではどのようにやったらいいのでしょうか?


821 :軟式PHP:04/09/13 08:01:50 ID:???
vofafoneならHTMLのフォームのtype=fileでいけるし、
その他のやつなら添付メールを送らせて、マルチパートから吸い出して
アップする。

822 :820:04/09/13 08:09:04 ID:???
マルチパートから吸い出して
アップする。
この部分がよくわかりません。。
やり方を多少おしえていただけないでしょうか
お願いします。

823 :nobodyさん:04/09/13 08:57:15 ID:???
デザインパターンのスレがあったので見てみたら
やっぱりphpとsingletonの相性の悪さには皆さん悩んでる様子。
ひとまずグローバル変数で代用させておくのが、
将来的なphp5への置き換えを考えると良さそうですね。

824 :軟式PHP:04/09/13 09:45:34 ID:???
>>822
まずサーバー側に届いたメールを処理しないといけないんだけど
IMAP経由で調べたり、qmailをキックしたり色々あるわけなのです。
IMAPを使うならimap_fetchstructure辺りを使うとすぐ取り出せるよ。
PEAR使ったらもっと簡単に出来るかも(↓検索したら出てきた
>>http://ns1.php.gr.jp/pipermail/php-users/2003-July/017157.html

825 :nobodyさん:04/09/13 15:05:12 ID:???
すいませんが、どなたか教えていただけませんでしょうか。

PHPでtrigger_error()+set_error_handler() +自作関数でエラーハンドリングをしています。

set_error_handler("error_handler");

$fp = fopen($CONFIG_DIR . $filename, "r");

if ($fp==false){
 trigger_error("aaaa", E_USER_ERROR);

この場合、trigger_errorの第一引数として指定した
Stringをset_error_handlerで設定している
error_handler関数に渡してやることはできませんでしょうか?

826 :nobodyさん:04/09/13 22:18:57 ID:???
PHPでクラスを作ると$thisを一杯書かなければなりませんが、
あれはPHP4でもPHP5でも$this->の部分を省略するような方法は無いのですか?

827 :nobodyさん:04/09/13 22:29:58 ID:???
define使えば?

828 :nobodyさん:04/09/13 22:37:21 ID:???
教えてください。
一連の流れのある時点(ログアウト機能など)で
セッションIDを変更したいのですが
どうやったらいいのでしょうか?

session_regenerate_id()
だとそのスクリプト内では変更されますが
他のページに遷移すると元のセッションIDに
戻ってしまうようです。。。


829 :nobodyさん:04/09/13 22:44:36 ID:???
TeXのコードから数式をイメージとして出力してくれるような
PHPライブラリを探しています。もしご存じでしたら教えてください。

830 :nobodyさん:04/09/13 22:56:25 ID:???
いみがわかんなーい
ログアウトのときはセッション破棄したらいいじゃん

831 :828:04/09/13 23:01:57 ID:???
>>830
その方法が知りたい

session_unset
session_destroy
いろいろ試したけど
セッションIDが変わってくれなくて。

832 :nobodyさん:04/09/13 23:26:50 ID:l1R4r/Pa
失礼します。
MySQLとPHPを勉強しながら、ゲームの攻略サイトを作ろうと思ってます。
http://cgi.f56.aaacafe.ne.jp/~megaten/test2.php
とりあえずデータを入れて、検索結果が表示されるようにはなったんですが
検索結果がちょっとおかしくなり、悩んでます。

具体的には、
「エンジェル」で検索すると正しい検索結果が表示されますが、
「エ」で検索すると明らかに該当文字(「エ」)が入っていない文字列までhitしてしまいます。
また、「ソ」に至っては一件だけ該当データがあるはずなのですが、hitしません。
stripslashesをつけてもはずしても、結果は同じでした。
文字のエンコードはphpMyAdmin側、PHP側共にShift_JISにしてあります。
わかる方いらっしゃいましたら、ご教授宜しくお願いしますm(_ _)m

833 :nobodyさん:04/09/13 23:35:00 ID:???
>>831
session_unsetのあと
session_startやればID変わるはずだけど

834 :nobodyさん:04/09/13 23:42:02 ID:???
>>832
普通、全部EUCでやるよ

835 :nobodyさん:04/09/13 23:44:40 ID:???
>>829
TeXじゃないけどgif生成するのはどっかにあった気がするが思い出せないな。

836 :832:04/09/13 23:49:33 ID:l1R4r/Pa
>>834
レスありがとうございます。
確かにどのサイト見てもPerl、PHPはeuc_jpでやれって書いてありますね…
>>832の不具合も、やはりそれに起因するものなんでしょうか?

837 :nobodyさん:04/09/14 00:00:52 ID:???
質問があるのですが、LAN内の「PC-A(WinXP)」Apache・PHPで
ドライブの空き容量を表示するようにしたいのです。
ローカルのドライブは表示できたのですが、windowsのネットワーク共有をしている
ドライブは空きが0となって表示されません。
共有先PCはPC-B(WinXPHome)です。
disk_free_spaceでのパス設定をドライブ共有ソフトで設定しているドライブ名や、
windowsで使われる共有先パス "\\PC-B\C" としてもダメでした。
(windows標準の共有設定でも同様でした)
たぶんショートカットのような扱いにしか見ていないために起こるのだと思うのですが、
なにか解決策はありませんでしょうか。
お知恵をおかし頂ければ幸いです、よろしくお願いします。


838 :nobodyさん:04/09/14 00:11:32 ID:???
パンがないならOSに聞けばいいじゃない

839 :nobodyさん:04/09/14 00:33:17 ID:???
ext/standard/filestat.cの中でGetDiskFreeSpaceExAを呼び出してるから
UNCの形式で渡せば返ってきそう。試してないけど。
さて寝るべ寝るべ。

840 :nobodyさん:04/09/14 00:42:58 ID:???
>>836
MySQL側がSJISに出来るならそれでも良い。
ところでaaacafeってSJISで書いたPHPスクリプト動かせるのか?

841 :nobodyさん:04/09/14 00:44:17 ID:???
>>837
ローカルドライブにマウントしてみたら?
上手く値が返るかわからんが。

842 :832:04/09/14 00:53:33 ID:JkM64ylT
>>840
>>832でリンクしてるのは全てSJISで書いてあります。
一応動いてるので、大丈夫だと思うんですが…
だめだったら全く動かないというか、見れたもんじゃないですよね…?

逆に言うと、動いてるだけにどこがおかしいのかさっぱり判らないんですが…
晒している情報が足りないでしょうか?

843 :カポコン:04/09/14 02:23:17 ID:???
>>837
一見まともそうに見えるスレだが。。釣りか?
なぜ2台のWindowsをネットワーク化し、それをPHPにするのかが分からない。
1台がWindows、もう一台がUnix系なら話は分かるが。。。
何の為のlocalhostなのかが分からん。同じOSだろ、容量増やしたいなら増設しろ。
ftp_connect()とかでもダメか?

後、ピングをPC-Aから飛ばしたりPC-Bからそれを受託したり、
確実に接続されているかも見ろ、2台のみの通信なら、
普通のストレートケーブルじゃなくて、クロスケーブルで接続する必要があるぞ。
勿論、ハブを介して、サーバCをハブとクロスケーブルで接続してあるというなら
話は別。パソコンAとパソコンBを接続したいというだけなら、
PHP板の連中には知恵熱しか与えないので、板違いw
さて。。レイヤー3のC++プログラムをコーディングして、私も寝ますか・・・。

844 :nobodyさん:04/09/14 02:24:16 ID:???
>>843
なるほど、よくわかった。確かにお前はバカだ。かなり頭が悪い。
お前の母も、父も、やはりバカだったんだろう。
バカがバカなりに一生懸命バカやった結果がお前というバカなわけだ。
今のお前があるのも、これまで周囲が見限って放置してくれた結果であるわけだし、
今お前の周りにバカが多いのも、お前のバカを助長することに役立っているわけだ。
お前はバカになるしかなかった。親が、地域が、環境が、バカだった。
お前がバカになったことは仕方が無い。お前には責任は無い。
だが、お前はお前がバカであることを自覚し、皆のより良い未来を築く責任がある。
一生黙ってろ。

845 :nobodyさん:04/09/14 02:24:45 ID:???
>>842
aaacafeがどういう設定で運用してるのか判らんが、
むしろ"動いちゃってるようにみえる"のが判りにくい一端だと思うよ。
概ね指摘の通り。

同じサーバでPHP+MySQLを使ってる(自分でコード書いてる)
ユーザの情報をあたってみなよ。

846 :nobodyさん:04/09/14 02:36:28 ID:???
>>842
"ソ"は確かSJISだと後半1バイトが"\"と同じだから
エスケープシーケンスと誤認識とかで問題あったような
大人しくEUC使った方がいいと思われ

847 :832:04/09/14 02:44:13 ID:JkM64ylT
>>845
ですね。。
いじりながら色々試していると、「a」とかでも引っかかるので(実際のデータは全角カタカナのみ)、
やはりエンコード関係なのかなーという気もしてきてはいるんですが…
とりあえずaaaの所でも聞いてみます。Shift_jis使ってる人がいるかどうかが問題ですが。。
こちらでもわかる方いらっしゃいましたら、お願いします。
解決したらフィードバックします。

848 :nobodyさん:04/09/14 02:45:35 ID:+yRv8JBt
大文字小文字を区別しないで、マッチしてるかどうかを
調べようと思って
ereg("/ngword/i", $_POST['message']))
と書いてみたのですが、なぜか思ったとおりに動作しません。
何でなんでしょうか…

849 :848:04/09/14 02:46:43 ID:???
>>848
ごめんなさい。最後の)は無いです。
ereg("/ngword/i", $_POST['message'])
で動作しません。

850 :832:04/09/14 02:47:05 ID:JkM64ylT
>>846
書いてる間に書き込みが…
うーむ、やはりEUCでも試したほうがいいですかねぇ。。
dbをEUCに切り替えて、データ全て入れなおさなくてはw

851 :nobodyさん:04/09/14 03:02:42 ID:???
>>848
マニュアルとにらめっこすれば分かると思うんだけど
eregなのにPerl互換の正規表現になってる
この場合使うのはpreg_matchかeregiじゃない?
あと>>848に限ったことじゃないけど「動作しません」じゃ分からんから
ちゃんと目的の出力と実際の出力を比較してくれないと

>>850
データの入れなおしは簡単じゃない?
phpMyAdminのエクスポートでSQL吐けるから

852 :848:04/09/14 03:05:38 ID:???
>>851
ありがとうございます。
間違えてPerlのページを参考にしてしまったようです。

853 :828:04/09/14 07:28:12 ID:???
>>833
すみません

<?php
session_start();
echo session_id();
session_unset();
?>

とだけ書いて、何度実行しても
同じセッションIDになってしまいます。
順番とかが間違ってますか?

854 :nobodyさん:04/09/14 07:31:38 ID:DJLMJCnC
質問させてください。
fedora core2 に PHP5.0.1をインストールしたいのですが make でエラーが出ます。
configure はとりあえずオプションなしで通しました。
エラーメッセージ
/home/hoge/download/php-4.3.8/ext/standard/info.c: 関数 `php_print_info' 内:
/home/hoge/download/php-4.3.8/ext/standard/info.c:653: internal compiler error: セグメンテーション違反です
完全なバグ報告を送って下さい。
適切ならばプリプロセス後のソースをつけてください。
<URL:http://bugzilla.redhat.com/bugzilla> を見れば方法が書いてあります。
The bug is not reproducible, so it is likely a hardware or OS problem.
make: *** [ext/standard/info.lo] エラー 1

PHP4系でも 同様に make で同じエラーが出ます。

855 :854:04/09/14 07:33:41 ID:DJLMJCnC
ごめんなさい ↑のエラーメッセージが php-4.3.8になってますが
5系でも同じエラーメッセージが出る状態です。

856 :nobodyさん:04/09/14 07:59:25 ID:???
>>853
昔どこかで見たような気がする。
以下のように明示的にセッションID を変更してみては?

session_start();
echo session_id();
$tmp = $_SESSION;
session_destroy();
session_id(md5(uniqid(rand(),1)));
session_start();
$_SESSION = $tmp;

857 :nobodyさん:04/09/14 08:56:19 ID:???
>>853
>session_unset -- 全てのセッション変数を開放する
セッション変数だけでセッションIDをあぼーんするとは載ってないぞ
session_regenerate_idでちゃんと変わるからもっかい確かめて見れ

858 :828:04/09/14 09:23:17 ID:???
>>856
できましたー
ありがとうございます!
echoがあると2回目のsession_startで警告がでるので
そこだけ修正しましたー

>>857
変わらないっす。どこかおかしいでしょうか?

<?php
session_cache_limiter("nocache");
session_start();
echo session_id();
session_regenerate_id();
?>



859 :nobodyさん:04/09/14 11:42:04 ID:zAdAGGge
php5.0.1を入れようとして、configure に「--with-apxs=/usr/local/apache/bin/apxs」
をつけると、
checking for Apache 1.x module support via DSO through APXS...

Sorry, I was not able to successfully run APXS. Possible reasons:

1. Perl is not installed;
2. Apache was not compiled with DSO support (--enable-module=so);
3. 'apxs' is not in your path. Try to use --with-apxs=/path/to/apxs
The output of /usr/local/apache/bin/apxs follows
./configure: /usr/local/apache/bin/apxs: not found
configure: error: Aborting
とエラーになってしまいます。

1. Perlは、「which perl」でperlのパスがでるし、そもそもウェブ上でperlのcgiが動いてます。
2は、php4を、httpd.confの中で、「LoadModule php4_module libexec/libphp4.so」してるので、問題ないかと
思います。
3は、確かに、そこにapxsがあるのを確認しました。

で、不思議なのは、現在、php4で、「--with-apxs=/path/to/apxs」で動いていて、
前に一度、「--with-apxs=/path/to/apxs」付きでphp5.0.1が問題なくインストールできたということです。
(事情があって、一度PHP4に戻しましたが)

つい機能、perlをソースからインストールしたのが関係してるのでしょうか?

どなたか、解決方法をご存じのかた、教えていただければ幸いです。

860 :859:04/09/14 11:43:31 ID:???
「つい機能、」⇒「つい昨日、」の間違いです。すみません。

861 :nobodyさん:04/09/14 12:28:00 ID:???
>>859
perl をソースからインストールして、/usr/local/bin/perl になっているのに、
/usr/local/apache/bin/apxs の一行目が

#!/usr/bin/perl

になっているとか。

862 :nobodyさん:04/09/14 12:33:21 ID:???
DOM XML関数の質問です。

$dom = domxml_new_doc ("1.0");
$hoge = $dom->create_element ("hoge");
$hoge_text = $dom->create_text_node("aaa<br />bbb");
$hoge->append_child($hoge_text);
$dom->append_child($hoge);

を$dom->dump_fileで保存すると
<hoge>aaa<br />bbb</hoge>
と<br />が「<br />」と置き換わってしまいます。
これを回避する方法ってあるのでしょうか?


863 :859:04/09/14 13:03:25 ID:???
>>861
ビンゴ!
#!/usr/bin/perl5
になってた。(これ消してたのね)
さんくす!

864 :nobodyさん:04/09/14 13:24:47 ID:???
>>862
DOMをもう少し勉強する。
brはエレメント。

865 :nobodyさん:04/09/14 13:59:56 ID:???
質問します。
PHPでPostgresの定義済み関数(ストアド)を動かすという
サンプルソースがあるようなサイト、書籍がありましたら
教えてください。よろしくお願いします。


866 :854:04/09/14 14:25:18 ID:???
os再起動したら うまくいきましたorz

867 :nobodyさん:04/09/14 14:32:52 ID:???
>>858
それだとWarning吐くハズなんですが…
うちでは下ので普通に変わりますよ

<?php
session_start();
$old = session_id();
session_regenerate_id();
echo "old: $old <BR> new: ";
echo session_id();
?>


868 :nobodyさん:04/09/14 15:01:56 ID:???
>>867
それってそのスクリプト内だけじゃない?
そのページをリロードすると
oldのほうは前といっしょじゃない?

869 :nobodyさん:04/09/14 15:13:38 ID:???
<br />が「<br />」
<br />が「アンドlt;br /アンドgt;」
です。


>>864
もう少しヒントを、、、
aaa<br />bbbを直接テキストノードに入れるのは無理って事でしょうか?

$dom = $dom->first_child();
echo $dom->get_content();
でソースを確認すると問題なく<br />になっているので
$dom->dump_fileで書込む時に<br />が「アンドlt;br /アンドgt;」に強制的に変換されてますよね。
$dom->dump_fileの部分が原因と考えて良いのでしょうか?

870 :nobodyさん:04/09/14 15:38:54 ID:???
>>868
クッキーに残ってるだけな希ガス

871 :864:04/09/14 15:46:51 ID:???
>>869
<hoge>aaa<br />bbb</hoge> は
hogeというエレメントが
aaaというテキストノードと
brという中身が空のエレメントと
bbbというテキストノードを持ってるということ。

つまり、aaaというテキストノードを作ってhogeにappend_child
brというエレメントを作ってhogeにappend_child
bbbというテキストノードを作ってhogeにappend_child
という手順になるはず。

872 :nobodyさん:04/09/14 16:28:13 ID:Gl/Y6vfs
質問です。

GD使って001.jpgをリサイズして別名002.jpgとして保存します。
このとき002.jpgの画像が著しく汚く圧縮されてしまうのですが、
もっと綺麗に書き出す方法はあるのですか?お願いします。

873 :862:04/09/14 16:28:46 ID:???
>>871

そういう事だったんですね。
これでやりたい事が実現できそうです。
ありがとうございました。

874 :nobodyさん:04/09/14 17:18:46 ID:???
>>872
標準の"リサンプル"でも不満なら、GD以外を使う

875 :872:04/09/14 18:02:36 ID:???
imagecreatetをimagecreatetruecolorにしたら解決しました。
すいませんでした。

876 :nobodyさん:04/09/14 19:11:50 ID:Mbuhgwtm
メ−ルで物語を送信しているのですが、希望者が増え、送信するだけでも
大変な作業になってきました。これを自動化しようと考えています。
希望者がメルアドを記入しクリックするだけで、物語(全6話なので一日おきに
一話づつ)を配信できるシステムにしたいのですが、どういったプログラムをくめばいいのか
わかりません。どうか教えてください。よろしくお願いします。


877 :nobodyさん:04/09/14 19:15:35 ID:???
>>876
メルマガじゃあかんのかと

878 :nobodyさん:04/09/14 19:24:14 ID:???
>>876
http://pc5.2ch.net/test/read.cgi/hp/1095088431/69-70+72

手作業でやってなさい。

879 :nobodyさん:04/09/14 19:36:49 ID:???
>>876
定期的に締め切りを定めて、その間に登録した人に送るって
スタイルでも良いと思うけどな。それを周期的に繰り返す。
1日1話というのもそうだけど「待つ楽しみ」もあるかと。

登録に合わせるなら、登録メールアドレス毎に現在何のシリーズを購読中で
配信するのは何話なのかを管理し、1日1回その配信リストに従って配信&リスト更新。
配信先が多大な場合は、シリーズ○話を配信する仕組みだけ独立させておいて、
配信はそのリストに登録することによって行う。順序やタイミングは抜けや重複配信
にならないようにね。簡単なシーケンス図(形式はどうでも)を書いて視覚化すると良い。



880 :nobodyさん:04/09/14 20:48:00 ID:???
>>876
日付ごと話ごとのあて先リストファイルを作ってみたら?
たとえば yyyymmdd_n.dat (y:年 m:月 d:日 n:話)みたいなファイル名にして、本日 14日に申し込んだ人は、

20040914_1.dat
20040916_2.dat
20040918_3.dat
20040920_4.dat
20040922_5.dat
20040924_6.dat

にその人のアドレスを追記しておいて、cron で毎日その日のあて先ファイルの内容を BCC にした
メールを送信するようにするの。
そして処理したファイルは削除する。

そうすれば、登録スクリプトもメール送信スクリプトもかなりシンプルになると思う。
アドレスの削除処理は面倒だけどね。


881 :837:04/09/14 22:32:15 ID:???
レスが遅くなって申し訳ありません。

>>841
ローカルドライブにネットワークのドライブはマウントできないみたいでした。
調べ方が足りないのかもしれませんが、調べたことは試した状態です。

>>843
言葉足らずで誤解を招いたようで申し訳ありません。
物理的な増設は無理なので共有させています。
PHPで表示するのは、FTPサーバのドライブとしてネットワーク外から参照するためです。
接続自体はハブで接続されていて、FTPでのネットワークドライブへのアクセスはできています。

PHPで共有(マウント)されたドライブの空き容量は取得できないでしょうか。



882 :nobodyさん:04/09/14 23:00:48 ID:+yRv8JBt
数千行あるテキストの中から、特定のワードを含んだ行だけを
削除するスクリプトを組んでいたのですが、どうも途中で
「サーバーが見つかりません」と表示されてしまいます。
$lines = file("sample.txt");
$fp = fopen("sample.txt", "w");
で読み込んで、0から最後の行まで一行ずつ調べて
書き込んでいます。
途中までは正しく書き込めているので、動作自体は
正しいと思うのですが、途中で止まってしまうので、
後半の部分が吹っ飛んでしまって困っています。
どのように対処したら良いのでしょうか…

883 :nobodyさん:04/09/14 23:07:02 ID:???
ソースを見せな解らんちゅうに。。

884 :nobodyさん:04/09/14 23:23:05 ID:???
>>882
共有鯖じゃねーの?
途中で殺されてる気がするが。

885 :nobodyさん:04/09/14 23:30:42 ID:+yRv8JBt
>>883さん
すみません。こんな感じです。

$logfile = "test.txt";

if($_POST['xurl']){
$xurl = $_POST['xurl'];
$lines = file($logfile);
$LINENUM = count($logfile);
$fp = fopen($logfile, "w");
flock($fp, LOCK_EX);
for($i = 0; i <= $LINENUM; $i++){
if(!preg_match("/$xurl/i", $lines[$i])){
fputs($fp, $lines[$i]);
}
}
fclose ($fp);
}

>>884さん
共有鯖です。30秒以上かかると強制終了なのですが、
この場合は15秒くらいで止まってしまいます。
何とか効率の良い方法は無いでしょうか…

886 :nobodyさん:04/09/14 23:41:04 ID:???
file()やめてwhileでまわしながら逐次行コピーしてみたら?

ちなみにphpのmax_exec_t以外にもリソース制限はある。
共有鯖で数千行のファイルを置換するような非常識な厨房に対応するため。

887 :nobodyさん:04/09/14 23:48:32 ID:???
>>885
鯖の公開仕様をよく読めよ。cpu使用率や使用時間などで止められることがある。
厨房だらけの共有サーバならいいが、普通の人達が使ってる共有サーバなら、
そういうイカレた処理はやめてやれ。
あとpreg_もやめて、stristrとか他のを使ったほうがいいだろう。
それでも駄目なら一回ごとの量を決めて分割処理するしかないな。

888 : ◆.jC7ANgFY. :04/09/14 23:56:52 ID:???
根本的な解決にはなってないけど同じことは
こう書いたほうが速いと思う。

$logfile = "test.txt";

if($_POST['xurl']){
 $data = implode("\n", preg_grep("/$xurl/Si",
  explode("\n", file_get_contents($logfile))));
 fwrite($fn = fopen($logfile, 'w'), $data);
 fclose($fn);
}

889 :nobodyさん:04/09/14 23:57:27 ID:???
すえひろがりget, zuzaa

890 :nobodyさん:04/09/14 23:59:28 ID:???
>>888
お前も共有サーバーは使わないで呉。

>>889
ついでにお前もだ。

891 :889:04/09/15 00:01:02 ID:???
自分のホメパゲ作るほど暇ないよ orz . . .

892 : ◆.jC7ANgFY. :04/09/15 00:23:08 ID:???
>>890
そもそも重い処理を共有鯖でやる気はない。
私は同じ処理でもこうしたほうがいいと提示しただけ。

# そんなに重いのなら私ならMySQLに投げ入れる

893 :nobodyさん:04/09/15 00:57:33 ID:CedxfwLg
質問です。
mail関数を使い送信したメールがPC用メールアドレスには届くのに携帯用メールアドレスには数時間後に届いたり、全く届かなかったりします。
これはなぜでしょうか。また、対策はあるのでしょうか。
どなたかご教授頂けると幸いです。
OS:redhat9
コード:mail($宛先, $タイトル, $本文, "From:info@xxxxx.co.jp");
バージョン:PHP-4.2.2


894 :軟式PHP:04/09/15 01:08:56 ID:???
ただの遅延だと思われ。
全く届かないってのは怪しいなぁ。一気に沢山送信してない?
携帯に一気にメール送信するとキャリアのメールサーバーにブロックされるよ。

895 :nobodyさん:04/09/15 01:14:37 ID:CedxfwLg
ご返答ありがとうございます。
メール送信してるのは携帯向けに1通のみなんです。
遅延ならしょうがないですね。

896 :nobodyさん:04/09/15 02:38:45 ID:???
>>888
特定のワードを含んだ行を削除するのだからその処理だと特定のワードを
含む行を取り出すことになるような気がするが・・・。

>>886>>887 が言いたかったのは、多分、file_get_contents や file を
使って巨大なファイルを開いた場合、メモリが大量に必要になり、共有サーバ
では他に迷惑がかかるということ。

例えば、以下のように一時ファイルに書き込んで処理を行うとメモリの使用量は
少なくて済む。

$fp1 = fopen($logfile, "r");
$fp2 = fopen($tmpfile, "w");
while (! feof($fp)) {
  $line = fgets($fp1);
  if (! stristr($line, $xurl)) {
    fwrite($fp2, $line);
  }
}
fclose($fp2);
fclose($fp1);
rename($tmpfile, $logfile);

897 :nobodyさん:04/09/15 02:55:11 ID:???
PHPというか、正規表現の話になってしまいますがここでいいでしょうか?

if (!ereg("^[0-9]{1,4}",$hoge)) echo ”err!”;
で$hogeが0〜9999の範囲の数字かどうかチェックしたつもりになっていたのですが、
たとえば、「50a」でもチェックをパスしてしまいます。
ニューメリックチェックを正しく正規表現でするにはどうすればよいのでしょうか?

898 :nobodyさん:04/09/15 03:14:24 ID:???
> # そんなに重いのなら私ならMySQLに投げ入れる

恥の上塗りw

899 :nobodyさん:04/09/15 03:19:56 ID:???
>>897
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/


900 :nobodyさん:04/09/15 03:28:07 ID:???
>>897
もとデータによるんじゃない。
^[0-1]{1,4} だと先頭に4桁の数字があればあとに何が続こうとTrueになるので、^[0-1]{1,4}$と
書くのが普通だとは思うけど。
is_numeric(); と $len = strlen(); if ($len < 5); で十分なこともあるかな。

901 :nobodyさん:04/09/15 03:33:38 ID:???
>>900
先頭の数だけ()で取り出して、さらに評価というのもばかげてるしな。
あと、\d{1,4}のチェックなら、ユーザが全角で入力する場合を想定して
コンバートかけたほうがいいこともある。趣味グラマなら別にいいんだが。

902 :nobodyさん:04/09/15 03:43:05 ID:???
>>898
もしや帰ってきた本7か?!
おれは待っていたぞ!

903 :897:04/09/15 03:44:05 ID:???
>>899
PHPも正規表現も昨日からはじめたばっかりで、
いろいろ読んでると正規表現は言語による方言?が多そうだったのでここに書きました。
似たような件なら次からはそこの方がいいのでしょうか?

>>900
なるほど。
$でこれで終わりだよと宣言すればいいのですね。
やってみたらうまくいきました。
ありがとうございました。
それと調べたつもりでしたが、is_numericあったのですね。。。
見落としてましたorz

904 :897:04/09/15 03:47:37 ID:???
>>901
全角対策についてはフォームでFEPがオンにならないように対処しました。
といっても、コピペには対応できないわけですが。
やぱチェック前に半角変換したほうが確実ですね。
処理追加します。
ありがとうございました。

905 :832:04/09/15 04:54:05 ID:YiP4QPmp
遅まきながら…
db、PHP共にeuc-jpにしたら何の問題もなく動きました。
ありがとうございました。

906 :nobodyさん:04/09/15 05:51:58 ID:???
クライアント側では確証ないからなあ。
面倒でもサーバ側でチェックするしかないんだよね。

907 :nobodyさん:04/09/15 08:08:52 ID:???
空のファイルを開こうとすると
Warning: fopen(): SAFE MODE Restriction in effect.
というエラーがでて開けません。。
パーミッションは777でやってますが、どうしたらいいでしょうか?
よろしくおねがいします

908 :nobodyさん:04/09/15 08:29:18 ID:???
この状態でファイルを開くと危険なので
Warning: fopen(): SAFE MODE Restriction in effect.
というエラーを出したのですが開発者に気付いてもらえません。。
必要十分なメッセージを送ってるつもりですが、どうしたらいいでしょうか?
よろしくおねがいします

909 :nobodyさん:04/09/15 08:49:45 ID:???
>>908
気づかないですみません。。。
新しくファイルを作るにはどうしたらいいのですか?
よろしくお願いします。。。

910 :907:04/09/15 09:08:50 ID:???
すみません。書き忘れてました
mkdirで新規ディレクトリを作り、そこに新しいファイルを生成したいのですが
できないのです
よろしくお願いします。

911 :907:04/09/15 09:27:42 ID:???
ついでに、
新規ディレクトリを作ってパーミッション777に設定しても
ディレクトリを開く事すらできません^^;

912 :nobodyさん:04/09/15 09:35:22 ID:???
>>908
PHPの中の人も大変だな。

913 :907:04/09/15 09:49:50 ID:???
根本から間違っていました
mkdirしてパーミッションを707にしたいのですけど
どうしたらいいのでしょうか?
よろしくお願いします

914 :907:04/09/15 11:41:10 ID:???
事故解決しました。

915 :軟式PHP:04/09/15 11:44:30 ID:???
事故ガクガク(((( ;゚Д゚))))ブルブル

916 :nobodyさん:04/09/15 12:11:20 ID:dKmLYC94
質問の意味が全く違うかもしれませんが

誰か「絞込み検索」のフリースクリプトが
置いてあるサイト知らない?

917 :nobodyさん:04/09/15 12:31:44 ID:UvnPqyoT
変数が、配列変数か、そうでないかを調べるにはどうすれば良いでしょうか?

918 :nobodyさん:04/09/15 12:42:56 ID:???
is_array()

919 :nobodyさん:04/09/15 12:57:04 ID:MDFIDuDl
調べるということがおまい等は出来ないのかと。。

920 :nobodyさん:04/09/15 14:02:35 ID:???
>>919
【PHP】質問スレッドpart21【php】

921 :nobodyさん:04/09/15 14:30:23 ID:???
初心者ですが質問させてください。
php.iniってどこに置いたらいいんですか?


922 :nobodyさん:04/09/15 14:41:06 ID:???
>921
適切なとこ。マニュアル嫁

923 :nobodyさん:04/09/15 15:35:11 ID:???
>>921
読めと言われても困るだろうからね。
ttp://php.s3.to/man/faq.installation.html#faq.installation.phpini

924 :nobodyさん:04/09/15 15:48:32 ID:???
意外と文盲だったりして・・・・

925 :nobodyさん:04/09/15 15:52:44 ID:???
>>916
検索用のSQLを生成するってことか?
サニタイズ後に普通に文字列結合でやってるけどな。

926 :nobodyさん:04/09/15 16:41:09 ID:???
>>924
きわい

927 :nobodyさん:04/09/15 17:12:03 ID:???
このスレの最初の方に「PHP4 でオブジェクト指向のプログラムを書くと、PHP5に移行したとき
書き直しが必至」というレスがありましたが、俺がハマってるところはバージョンの違いに関係ありますか。
==========
【 状況 】 PHP5 で、以下のようなものを作った。
[class file]
class A {
 var $hoge;
 var $fuga = array();
//  以下、メンバ変数とか配列の初期化のみ。子クラスで使われる変数と配列はすべてここで宣言されている。
}
class B extends A {
 function B {
  あんなこととかこんなこととか;
 }
}
class C extends A {
 function C {
  そんなこととか;
 }
}

[another file]
//  クエリによって、B か C のいずれかのクラスからオブジェクト $obj を生成。
function channel2($obj) {
  $obj->$hoge = "ひろゆき";
  $obj->$fuga = "2ちゃんねる";
}
【 問題点 】 PHP4.1.2 の環境では想定していた動作が得られない。
ユーザ定義関数の外からメソッドを呼び出すことはできるが、ユーザ定義関数内でメンバ変数への値の代入が行われていないようだ。
以上、よろしくお願いしましま。

928 :nobodyさん:04/09/15 17:28:01 ID:???
object型がデフォルトで参照渡しになったのは5からじゃなかったっけ。
4だと function channel2($obj){} とやると、ローカル変数 $obj は参照ではなく、
複製される。ので、関数内で $obj を弄っても、呼び出し側の object は変更されない。
function channel2(&$obj){} と書いて参照渡しにする必要がある。


929 :927:04/09/15 17:39:49 ID:???
>>928
ををっ。わかった&できた。
完璧です。ありがたう。


930 :nobodyさん:04/09/15 17:46:16 ID:???
> 俺がハマってるところはバージョンの違いに関係ありますか

そりゃPHP5準拠で書かれたスクリプトがPHP4で動かない可能性は高いでしょ。
なんの問題もなく動いたらむしろ何じゃそらって思うよ。
しかし、上の例だと & で参照を明示する4向けのスクリプトは変更なしで5でも動く。

そういうわけで、バージョンによる互換性のなさに嵌ったというよりは、
単に、PHP4じゃ動かないスクリプトを書いちゃいましたってことじゃないかな。
少なくとも、

> PHP4 でオブジェクト指向のプログラムを書くと、PHP5に移行したとき書き直しが必至

PHP4で書いたからPHP5じゃ動きませんでしたっていう事例ではないと思う。

931 :nobodyさん:04/09/15 17:53:14 ID:???
>>930
アクセス関係の修飾子つずに、予約語にも気を使ったつもりが、
$hoge->foo()->bar(); みたいのでこけたことはある。
けどphp4から5へは思ったよりきっちり下位互換されてて変更なしで動くな。
# pearなんかもそうだけど、php4でOOPの限界に挑戦してるとエラー出る印象。

932 :nobodyさん:04/09/15 18:00:56 ID:???
>>929
4だと、関数の戻り値がObject型のとき、

&function ret_foo() {
  $foo = new Class;
  return $foo;
}
$bar =& ret_foo();

とやらないと、最終行でObjectがドカーンとコピーされちゃって処理負荷になるので
これにも気をつけてね。

933 :nobodyさん:04/09/15 18:02:15 ID:???
&amp;の場所違うし、、。
function &ret_foo() {} ね。

934 :nobodyさん:04/09/15 18:08:38 ID:???
>>932
関係ない話ですまないが&nbsp;でインデントしたコードは
IEなんかでコピペした場合はそのまま動いて便利なんだが
うちのJaneでは、「&#160;」としてコピーされてしまうので
全角空白でインデントされているのと利便性は変わらないな
ということに気づいた今日だった

935 :nobodyさん:04/09/15 18:12:18 ID:???
Janeは糞だったんか。。。

936 :nobodyさん:04/09/15 18:14:43 ID:???
なんか珍しく普通のレスが返ってる気がしまつ。
まともな質問者にはこのスレでもちゃんと回答が出るということか。

937 :nobodyさん:04/09/15 18:16:42 ID:???
それはどうか知らんが、たしかに面白質問者は面白回答を引き寄せる何かがあるなw

938 :927:04/09/15 18:36:04 ID:???
>>932
ポインタがわからなくて C で 3回挫折した俺だが、その説明はうまくイメージできた気がする。
OOP は初めてだけど、これからちょこちょこ組んで自分のものにしますわ。

>>930
勢いでローカル環境をバージョンアップしてしまったのです。
借りてる鯖はバージョンが古くて PEAR もなければたいしたモジュールも入ってないので、
せめて自宅の環境だけは最新にしてみたくなったのさ。

友人のサイトのスクリプト改造とか手伝ってる中で OOP をちゃんと理解せんといかんなあと
思い立ったのが PHP5 を入れた理由の一つだけど、今回つまずいたのも一つ勉強になったから
まあこれでいいやと思ってる。

>>936-937
次回がんばります。

939 :nobodyさん:04/09/15 19:00:09 ID:???
正直、ポインタで挫折する人が多いとか言うが、意味がわからん
ただの間接アドレッシングだろ

何が難しいことがあるんだろうか

940 :nobodyさん:04/09/15 19:20:37 ID:???
>>939
お前はhttp://pc5.2ch.net/tech/kako/1040/10408/1040820373.htmlの54だな!
まあポインタはCの入門書で文法覚えた段階では「どうやって何に使うのか」ってのは
そのときは分からないままだからな。初心者がポインタが理解できないというのは正しいんだ。
そこで止まるかほっといて進むかだと俺は思う。
まあPHPのリファレンスはポインタではないのでスレ違いはこのへんで止めるが。

941 :nobodyさん:04/09/15 19:28:04 ID:???
オイラは>>939じゃないが、ポインタの方が直感的に分かり易い。
つーかオイラは、CのポインタよりPHPのリファレンスの方が分かり辛い。
今やってるのはディープコピーなのかシャローコピーなのか
いつも不安になりながら書いてる。
PHPはCとは違うんだし慣れるしかないやね。
で、何事も無かったかのように次の質問どうぞ。

942 :nobodyさん:04/09/15 19:48:04 ID:???
こんばんわ。
MYSQLに直接つっこんでる画像データを出力する際に
縦横サイズの変更を行いたいんですけど、どうすればよいでしょうか?

getimageで縦横取得してからと思ったのですが
Warning: failed to open stream: No such file or directory
みたいな感じで怒られました。
DBに突っ込む際に縦横サイズも格納しておかなければならないのでしょうか?


943 :nobodyさん:04/09/15 19:51:19 ID:dKmLYC94
>>925
よく分かってないけど多分そんな感じです。
出会い系とかで例えてみると、
年齢と性別を同時検索してやるやり方が分かりません。

あと年齢だと
「○歳〜○歳までで検索」
とかいう方法もどうやったらいいものか。

かなり初歩的な質問で申し訳ない。
なんで、いいソース場所知りませんか?

944 :nobodyさん:04/09/15 19:56:22 ID:???
>>940
違うよ、そんな昔から2chには居ないよ。

#つかそのスレ読んで思ったんだが
#「アセンブラと言っている時点で(ry」と言うような頑固な人っていつの時にも居るんだなぁって思ったよ
#そんな細かなこといちいちつっこまれてもねぇ。。「アセンブリ」じゃないと納得しないのかね


以後何も無かったように質問どうぞ


945 :nobodyさん:04/09/15 20:03:40 ID:???
>>943
DB使用ですか?
DB使用ならソースも糞もないんだが
SQL文たった一行で済むぞ

946 :nobodyさん:04/09/15 20:05:34 ID:???
DBなのかファイルなのか・・・

947 :nobodyさん:04/09/15 20:06:40 ID:???
・ユ・。・、・、ヒ3000ナタ

948 :nobodyさん:04/09/15 20:09:50 ID:???
ソース見てもわかるのか・・・

949 :nobodyさん:04/09/15 20:11:03 ID:???
>>947
ファイルに3000点?
EUCかな?

950 :nobodyさん:04/09/15 20:23:02 ID:???
>>942
画像サイズ云々の以前に、ファイルが開けないという警告みたいだけど、
それすらメッセージから読めませんか?

951 :nobodyさん:04/09/15 20:57:07 ID:???
>>943
データの作りや格納方法でやり方は全然違う。
まずそれをきちんと把握すること。

DBMSの場合なら、データの絞込み抽出はそのものが持っている機能。
多くのDBMSはSQLをサポートしており、それにより該当する機能を使うことができる。
なので標準的なSQLを勉強してください。

952 :nobodyさん:04/09/16 07:19:05 ID:???
PHPをCGIとして動かすにはどうすればいいのですか?
そういうことが出来ると聞いたのですが。。

953 :nobodyさん:04/09/16 07:19:54 ID:???
PHPからheader出力してWMVファイルを表示させたいのですが
どうも上手くいきません。

header("Content-type: video/x-ms-wmv");
readfile($hoge);

のようにしています。
調べてみると、ファイルサイズが小さいものは
ちゃんと表示されるのですが、ファイルサイズが大きいものは
「ページが表示されません」と表示されてしまうようなんです。
freadでちょっとずつ読み込んで出力してもだめみたいです。。。
どなたか、解決策をお願い致します。

954 :953:04/09/16 07:21:51 ID:???

すいません。ちょっと修正です。
「ぺージが表示されません」ではなく、
「ページを表示できません」でした。

955 :nobodyさん:04/09/16 08:07:14 ID:???
>>952
適切にコンパイルし、適切に設定する。
http://www.php.net/manual/ja/installation.php

956 :nobodyさん:04/09/16 08:32:58 ID:wopdBrj5
http://www.jra.go.jp/joho/index.html の
「競走成績」→「2004年4回阪神2日(9月12日)」→「11R」
と押して表示されるページの内容を取得して
変数に格納したいのですがどうすれば?

957 :nobodyさん:04/09/16 08:44:51 ID:???
>>956
すぐ出かけるので詳しく書けないが、
POST /JADB/accessS
CNAME=〜
xW01=〜
てのを送信すれば良い。

要するに実際のブラウザが送っている情報と同じ物を送れば当然同じ物が返ってくる。
ieHTTPHeaders
ttp://www.blunck.info/iehttpheaders.html や
proxomitron
ttp://www.proxomitron.org/
のようなリクエストヘッダや応答ヘッダを表示できる物を使うと楽。

958 :942:04/09/16 09:25:45 ID:???
>>950

画像表示ソースを
<img src="gazou.php">
みたいに呼び出して

gazou.phpの中身は

$sql="画像取得クエリ";
$res = mysql_query($sql,$conn);
header("Content-Type: image/jpeg");
$image = mysql_result($res, 0, "格納カラム");
$image_size = getimagesize($image);
$img_old = imagecreatefromjpeg($image);
$img_new = imagecreate($image_size[0] * 2,$image_size[1] * 2);
//拡大
imagecopyresampled($img_new,$img_old,0,0,0,0,$image_size[0] * 2,$image_size[1] * 2,$image_size[0],$image_size[1]);
print $img_new

こんな感じで書いてみたんですけど、
ソース自体がおかしいですか?

959 :956:04/09/16 10:27:58 ID:wopdBrj5
表示されるページをfile_get_contentsで取得したいのですが
string file_get_contents ( string filename [, int use_include_path [, resource context]])
引数をどのように指定すればよいのでしょうか?

960 :nobodyさん:04/09/16 11:10:46 ID:ysqshSNV
携帯サイトで
header("Location : input.php");は使えないの?
飛ばないんだけど、なぜ?


961 :nobodyさん:04/09/16 11:39:08 ID:RlFTlQn8
>>945
データベースから抽出です。
そのSQL文教えてください。
「a条件のみ」「b条件のみ」「a+b条件」みたいに
どうやって条件代えて出力させるんですか?

962 :nobodyさん:04/09/16 12:08:26 ID:???
釣り針だらけだなw

963 :nobodyさん:04/09/16 12:18:16 ID:PHMt0rSl
質問スレだからしかたがないんだと。

964 :nobodyさん:04/09/16 12:19:25 ID:???
>>960
あーたしか、携帯の場合、機種(キャリア?)によって、
フルパスじゃないと飛ばないやつがあったぞ。
まったく携帯サイトは面倒でやってられんよなぁ。

965 :nobodyさん:04/09/16 12:31:02 ID:9nyxCloV
apacheモジュール版のPHPが入ったレン鯖で、
例えばPHPで作られた掲示板なんかで、ログファイルの所有者がapacheだったら、
その鯖の他のユーザーからPHPで改変されちゃう恐れがあるの?



966 :966:04/09/16 12:40:18 ID:RlFTlQn8
携帯&PC両用サイトで
書き込まれた絵文字の相互変換ってできますか?
3キャリアはキャリア毎の文字列、PCは画像みたいな出力方法で。

デフォルトだと、ドコモとauならある程度互換性あったと思うけど
ボーダフォンが見当違いな絵文字が出力される。
実際に試した人ご教授よろしく。

967 :nobodyさん:04/09/16 13:20:22 ID:epbnr+EL
$fd=open("hoge") or die();
FALSE条件でなくTRUE条件で実行したいものとか書きたいんだけど
どうしたらいいですか?

これの or の文法はPHPマニュアルのどこあたりに書いてありますか?


968 :nobodyさん:04/09/16 13:41:13 ID:GBVH7aBq
PHPでカナの小文字を大文字に変換してくれるような関数ありませんでしょうか?

969 :nobodyさん:04/09/16 14:03:40 ID:???
わんさわんさーわんさかわんさーいえーぃえーぃえいえー

970 :nobodyさん:04/09/16 14:03:58 ID:???
>>968
http://jp2.php.net/manual/ja/function.mb-convert-kana.php

971 :970 :04/09/16 14:04:48 ID:???
直った、すまねえ_| ̄|○

972 :nobodyさん:04/09/16 14:10:29 ID:???
>>970
それは全角半角だろ?
968が聞いてるのは大文字小文字

カナの大文字小文字変換なんて関数見た事無いけどな

973 :nobodyさん:04/09/16 14:12:56 ID:???
行こう、じきにここも腐海に沈む

974 :970 :04/09/16 14:21:18 ID:???
>>972
いや、全角半角の誤爆かと思ったんだが…。
もしカナの大文字小文字ならわからじ。


975 :nobodyさん:04/09/16 15:06:10 ID:???
やっぱり以前みたく初心者用作るべきかと。。

976 :nobodyさん:04/09/16 15:07:18 ID:???
>975
作れば?

977 :nobodyさん:04/09/16 15:09:59 ID:???


978 :nobodyさん:04/09/16 15:12:02 ID:???
>>958
printで出力するんでなくimagegifとかimagejpeg関数使わないと駄目だったような・・・
出力した後はimagedestroyでメモリ解放もしといた方がいいかも。

979 :958:04/09/16 16:15:09 ID:???
>>978
お返事ありがとうございます。

出力に関してですが、

$sql="画像取得クエリ";
$res = mysql_query($sql,$conn);
header("Content-Type: image/jpeg");
$image = mysql_result($res, 0, "格納カラム");
print $image

だと問題なく出力されるんです。

$image_size = getimagesize($image);
ここで先に記述しましたワーニングがでてしまって。。。
クエリで取得した際になんならかの処理が必要なのでしょうか。
Warning: failed to open stream: No such file or directory
↑ワーニング

980 :nobodyさん:04/09/16 16:15:23 ID:???
新しくディレクトリを生成して同時にそのディレクトリに新しくファイルを生成することってできますか?

981 :nobodyさん:04/09/16 16:32:02 ID:???
>980
コードは上から順番に実行される。

982 :nobodyさん:04/09/16 16:37:38 ID:5ifGdNVO
配布されているアクセス解析スクリプトの
いわゆる解析対象時間をちょっと改造したいんだけど、
これって難しいでしょうか?
たとえば、普通は1時間おきにアクセスを表すのが多いですが、
夜の10時〜12時に関しては30分おきのアクセス数を表示する、
といった改造をしようと考えてます。
PHPは本見ながら、超簡単なスクリプトを作れる程度の知識です。

983 :nobodyさん:04/09/16 16:45:38 ID:???
そんな質問してくるあんたにゃ難しいんじゃないかい

984 :nobodyさん:04/09/16 16:46:53 ID:???
>>982
俺を含めてここにいる奴の殆どにとっては簡単だと思うが
多分、キミには難しい

っか、難しいと思う根拠を述べてくれ。素でわからん

985 :nobodyさん:04/09/16 17:16:29 ID:???
>>984
おそらくプログラムの変更は簡単だと思われるが、
1部分だけ30分間としてしまうと集計の意味があるかどうかが
難しいところなのだろう。

986 :nobodyさん:04/09/16 17:21:08 ID:???
そのスクリプトの内容にもよるよね。

987 :nobodyさん:04/09/16 17:34:59 ID:???
>>964
HTTP/1.1では絶対アドレスで書くべきところなので
相対アドレスで可なのは融通を利かせすぎなU/Aな訳であって。

規格外の相対アドレスじゃないと駄目(受け付けない)な設定にしてある
レンタルサーバが存在するのが困りモン。

988 :nobodyさん:04/09/16 17:48:30 ID:???
どこだか忘れたけど
ほんの一連の動作でもクラスとしてまとめておいた方が良い
って説明あったけど、これだと逆に大変じゃないですか?

989 :nobodyさん:04/09/16 17:53:54 ID:???
>988
場合によりけりだろ。

990 :nobodyさん:04/09/16 18:05:43 ID:???
最近PHPを他人のプログラム見ながら勉強してます。
非常に初歩的な質問スマソ
$test->d->abc
この->ってよく見かけるんですけど何ですかこれは?
上記一文は何を表しているんでしょう?
検索エンジンでは調べにくいし・・・

991 :nobodyさん:04/09/16 18:11:18 ID:???
http://www.php.net/manual/ja/language.oop.php
ここらでも熟読してくるよろし

992 :nobodyさん:04/09/16 18:16:56 ID:???
次スレまだみたいだから立ててくる
30分までに立たなかったら誰か代わりにお願い

993 :nobodyさん:04/09/16 18:17:42 ID:???
パス名のセパレータってなんすか?
読みましたが、俺頭悪いからよくわかんね
誰かあほの俺でもわかる様に教えてください。
おながい(はぁと

994 :992:04/09/16 18:19:52 ID:???
Ok、いけたわ。なんか不備あったらフォローよろしく

【PHP】質問スレッドpart22【php】
http://pc5.2ch.net/test/read.cgi/php/1095326257/

995 :nobodyさん:04/09/16 18:22:32 ID:???
-> が矢印に見えてしかたがない

996 :nobodyさん:04/09/16 18:27:43 ID:???
語源(?)は矢印だろ

997 :nobodyさん:04/09/16 18:42:52 ID:???
クラスとオブジェクトのマニュアル見ていたら
「(PHP 5はオブジェクト指向言語ではありません)」
http://www.php.net/manual/ja/language.oop.object-comparison-php5.php
あらー。マニュアルでそんなこと言い切ってたのね。

998 :nobodyさん:04/09/16 18:55:43 ID:???
言いがかりつける人がいるからね

>>995
=>も矢印に見える

999 :nobodyさん:04/09/16 19:08:02 ID:???
sage

1000 :nobodyさん:04/09/16 19:08:32 ID:???
1000ゲットー!!!!!!!!!!!!!!!!

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

252 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)