【PHP】くだらねぇ質問はここに書き込みやがれpart4

このエントリーをはてなブックマークに追加
561nobodyさん:2005/04/13(水) 03:29:07 ID:???
waru1が0だから、とか言う落ち?
562559:2005/04/13(水) 03:39:35 ID:???
>>561
詳しく教えていただけませんでしょうか?

一応エラーには
Warning: Division by zero in test.php on line 5
とあるので、0が関係しているようなので、
>>561さんの言うとおりだと思うのですが
どういうことなのでしょうか?
563nobodyさん:2005/04/13(水) 04:18:39 ID:???
>>562
詳しくって…
エラー(つうか警告)そのままだろ。0で割ってるよって事だ。
564559:2005/04/13(水) 04:33:48 ID:???
>>563
値を入れたら、正常なんですが
何も入れないとこのようなエラーが出てしまうので、
文法とかにエラーがあると思ったんですが、そういうわけではなかったんですね。
0/0がおかしいってことですか。
エラーを吐かなくするような、演算子(?)のようなものが
今みてる本の、10ページぐらい前に書かれてたようなきがするので、
ちょっと見直してみます。
どうもありがとうございました。
565nobodyさん:2005/04/13(水) 06:51:53 ID:WcJtctkN
phpの掲示板の作り方を教えているサイトって
ありませんか?
566nobodyさん:2005/04/13(水) 07:38:09 ID:tWz+dwtY
567nobodyさん:2005/04/13(水) 12:52:09 ID:???
>>564
if($_GET['waru0'] && $_GET['waru1']){
 $waru = $_GET['waru0'] / $_GET['waru1'];
}else{
 $waru = '割れね';
}
568nobodyさん:2005/04/13(水) 13:03:01 ID:???
0.0 なんかの場合に失敗するよ。
569nobodyさん:2005/04/13(水) 13:50:22 ID:160fl1OF
PHPで携帯用URLを自動返信させたいんですけど
送信されるところまでできたのですが
送信元がAPACHになっちゃいます。。
sendmailの設定をいじるコントロールパネルがあるのですが
どこをいじっていいのか教えてください!
570nobodyさん:2005/04/13(水) 14:21:56 ID:???
>>569
sendmailの設定でも可能だが、そのどこの誰が作ったとも分からんコントロールパネルとやらで
それができるかどうか分かるわけが無かろう。
mail関数を使う時にenvelope-fromが正しく設定されているか、
そのenvelope-fromの設定がsendmail側で拒絶する設定になっていないか、
チェックすべき事がまだまだある。つーかマニュアルにもその事の記載がある。
571559:2005/04/13(水) 14:46:09 ID:???
>>567
コードどうもありがとうございます。
なるほど、こういうところでif構文を使うんですねぇ。
そのコードを組み込んでみたところ、
parse error, unexpected '@'というエラーがでてしまいました。
エラーの場所はわかるのですが、エラーの意味がよくわからなくて、
せっかくエラーを吐いてくれるのに、修正できないでいます。orz
勉強不足なので、勉強してまたで直したいと思います。
どうもありがとうございました。
572nobodyさん:2005/04/13(水) 15:10:27 ID:???
>>567
> parse error, unexpected '@'
パース(ソースを構文解析)している時にエラーが発生した。「@」はここに出てくる筈が無いのだが。(超訳)
>>564 で書いている演算子(@)の位置が悪いかと。

まぁ根本的な問題の解決には、0かどうかで処理を分岐する、
言い換えれば0の時にどうするかを明確に決める、つーのがいいんだけど。
573569:2005/04/13(水) 15:17:27 ID:160fl1OF
>>570ありがとうございます。
ini_setにてfromの設定をしてみたのですが無理でした。
envelope-fromというのは_ENV["HOSTNAME"]のことでしょうか?
これの設定の仕方を調べているのですがわかりませんTT
コントロールパネルはensimのものです。
これだけじゃ無理っぽいですね・・^^;
574nobodyさん:2005/04/13(水) 15:36:52 ID:???
>>571
全角スペースを□とかで表示できるエディタを使ったほうがいいよ。
デバッグが楽になるから。
575nobodyさん:2005/04/13(水) 15:38:43 ID:c/E+T1wC
PHP4にてセッションが切れたときにメッセージを表示させたりすることって可能なんでしょうか?
576567:2005/04/13(水) 15:54:38 ID:???
>>571
悪ィ!
条件式は、
if($_GET['waru0'] || $_GET['waru1']){
だわ。andじゃ無くってorね。

ってか、これは
parse error, unexpected '@'
には関係ないな…

このエラー、大抵の場合、セミコロンが無かったりってことが多いので、
ソースを小一時間眺める由。それでも駄目なら、近辺のソース全部貼り。
577567:2005/04/13(水) 15:55:47 ID:???
あああああ、ばっかじゃん。
if($_GET['waru0'] && $_GET['waru1']){
で良いんだよ。andで・・・

吊って来るor4z
578559:2005/04/13(水) 16:04:29 ID:???
皆様ご丁寧にどうもありがとうございます!
>>572
昨日あの後本を読み返したんですが、エラーをはかなくする
演算子が見つかりませんでした。@だったんですね。ありがとうございます。
>>576
ソースまで書き換えていただいてありがとうございました。
>>574の全角スペースをヒントに原因が判明しました。
>>567
if($_GET['waru0'] && $_GET['waru1']){
 $waru = $_GET['waru0'] / $_GET['waru1'];
}else{
 $waru = '割れね';
}
これの
 $waru = $_GET['waru0'] / $_GET['waru1'];
部分にエラーがでていまして、
なんとなく$の前に空いていた全角スペースを削ってみたら、
見事に動作しました。
本当に皆様どうもありがとうございました。一歩前進できました。
メモ帳を使っていたので、ちゃんとしたエディタに換えます。
579nobodyさん:2005/04/13(水) 16:30:49 ID:???
全角スペースはシフトジスで0x81,0x40
で@が0x40という話でした。
580nobodyさん:2005/04/13(水) 17:14:58 ID:???
PHPだけって訳では無いのですが質問させてください。

PHPのソースファイルや表示文字などはphp.iniで設定すれば
文字化けを回避できる事は分かりました。

そこで疑問なのですが、データベースを使う場合は何か注意点が必要なのでしょうか?
例えば、PHPのソースファイルや表示時はEUCでデータベースではUTF8の場合、
PHPから発行するSQLはUTF8で行わないと行けないのでしょうか?
また、SQL発行後、取得した結果はUTF8となるのでしょうか?
581nobodyさん:2005/04/13(水) 17:18:06 ID:???
>>580
言ってることが滅茶苦茶になってるよ
582nobodyさん:2005/04/13(水) 17:21:09 ID:???
>>580
yes!
yes!
583580:2005/04/13(水) 17:28:35 ID:???
>>582
なるほど。

つまり、文字コードが異なるDBへSQLを発行するときは、
SQLをmb_convert_encodingで変換しないといけないし、
取得した結果もmb_convert_encodingで変換しないといけないんですね。
584nobodyさん:2005/04/13(水) 17:38:13 ID:???
>>567

まぁまぁ。
それでも数値文字列以外がつっ込まれたら
エラー出ちゃうんだけどね。
585nobodyさん:2005/04/13(水) 17:59:09 ID:???
>>584
じゃ
if(is_numeric($_GET['waru0']) and is_numeric($_GET['waru1']) and $_GET['waru1'] != 0) {
$waru = $_GET['waru0'] / $_GET['waru1'];
}
586nobodyさん:2005/04/13(水) 18:01:59 ID:RAtZXMfH
aa,"aaa
bbb
ccc",aaaa

となっていて、""内の改行を全て<BR>に置換するにはどうすればいいでしょうか?
587586:2005/04/13(水) 18:09:03 ID:RAtZXMfH
あ、改行の数は不明です。
588nobodyさん:2005/04/13(水) 18:25:34 ID:???
>>586
"が必ず2つ存在(1個以下でも無いし、3個以上でも無い)のなら、
explodeでちょっきんして、nl2brでぱたぱたして、implodeでぺたぺたしてもいいんじゃないかな。
CSVっぽいので "の扱いに疑問が残るけど。
589nobodyさん:2005/04/13(水) 21:05:02 ID:???
質問です。正規表現の使い方で分からない事があります。
$messageという変数に半角文字が30文字以上空白無しで続いたら
切り取って再代入する方法はありますか?

ex)
$message = askldnasdafvaiohdfahv;haifv.,aosdlihadfnvafXC

↓ 再代入

$message = askldnasdafvaiohdfah..

出来れば↓とする方法はありますか?

$message = askldnas....hadfnvafXC
590nobodyさん:2005/04/13(水) 22:43:01 ID:???
くだ質の典型になってますが....
配列同士を連結するにはどうすればいいでしょうか?
perlにおける@a=(@a, @b); あるいは push(@a, @b); と同じことをしたいです
591nobodyさん:2005/04/13(水) 22:48:31 ID:???
マニュアル
592nobodyさん:2005/04/13(水) 22:51:10 ID:???
array_merge をやっと見つけた......
perlのpushと混同していたのですぐに分からなかったorz
593nobodyさん:2005/04/14(木) 01:43:03 ID:OcmzBqS0
simplet board という掲示板スクリプトを配布している
DESIGNLAB. というサイトがnot foundなんですが
どなたか詳細ご存知?
594nobodyさん:2005/04/14(木) 02:37:35 ID:???
>589

・半角文字が30文字以上連続していたら
if (preg_match("/[\w,.+-]{30,}/", $message)
# 半角文字の指定は適当なので好きにして

・文字列の一部を取り出す
substr()

・文字列の連結
$a = $b . $c
595nobodyさん:2005/04/14(木) 04:03:07 ID:Pq56Nx3S
〜のエイリアスってどういう意味ですか?

fputs
fputs -- fwrite()のエイリアス

こんな感じに説明されているんですが
よく分かりません
596nobodyさん:2005/04/14(木) 04:55:39 ID:???
>>595
fputsはfwriteとまったく同じ関数ということ
597nobodyさん:2005/04/14(木) 07:21:37 ID:???
>>595
a・li・as
n., ad. 別名[偽名].
598nobodyさん:2005/04/14(木) 08:57:56 ID:???
何が書いてあるのかさっぱり分からない
599nobodyさん:2005/04/14(木) 10:25:04 ID:???
今実行中の php ファイルを取得する方法として、
$GLOBALS にある $_SERVER[”SCRIPT_FILENAME”]
を使おうとかと思ってましたが、
その値がある環境とない環境があるみたいなんですけど、
これってコンパイル時に決める事なんですかね?
600nobodyさん:2005/04/14(木) 11:07:26 ID:???
>>599
webサーバが決める($_SERVERだもんね)
Apacheなら多分大丈夫
601nobodyさん:2005/04/14(木) 11:20:26 ID:???
>>599
$_SERVER['PHP_SELF']
602nobodyさん:2005/04/14(木) 11:28:15 ID:???
ファイルロックされているかどうかをチェックだけしたいんだけど
どうしたらいいかな
実際にファイルロックはしたくない
603nobodyさん:2005/04/14(木) 11:34:25 ID:???
シュレディンガーの猫ですな
604軟式PHP:2005/04/14(木) 11:36:34 ID:???
そうなのか?w
605599:2005/04/14(木) 11:39:31 ID:???
>>600
なるほど。だから debugger だとなかったのか…
>>601
Linux 2.4.20-28.7 で php v.4.1.2 なサーバーではそれも出ないねぇ…
606軟式PHP:2005/04/14(木) 11:42:28 ID:???
>>605
__FILE__は?
607軟式PHP:2005/04/14(木) 11:43:33 ID:???
↑だけど、
もし、include,require内で実行中を知りたいのだったら調べてみらんとわからん
608605:2005/04/14(木) 11:52:13 ID:???
>>606
そもそも __FILE__ なんて値無いんだけど??どうやって使うの??
609軟式PHP:2005/04/14(木) 11:52:57 ID:???
定数ってやつだよ。そのまま書けばいいよ。
print __FILE__;
みたいに。詳しくは↓
http://php.s3.to/man/language.constants.predefined.html
610軟式PHP
毎度すまそ。
http://www.php.net/manual/ja/language.constants.predefined.php
こっちのが正式なマニュアル。