トップページphp
1001コメント324KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/05(日) 22:35:34ID:sf8bx52D
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

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

本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/

過去スレは>>2
0151nobodyさん2006/02/08(水) 18:16:28ID:???
>>150
upload_max_filesizeは.htaccessでも設定できるよ
0152nobodyさん2006/02/08(水) 18:21:31ID:???
>>150

<?
$max_size = 1024 * 100;
$kb = $max_size / 1024;
if($_FILES["hoge"]["size"] > $max_size){
exit("アップロードされたファイルは最大ファイルサイズ(".$kb."KB)を超えています。");
}
?>
0153nobodyさん2006/02/08(水) 18:23:28ID:0zkvAuO5
くだらなくてすみません。
phpのコードに出てくる「 => 」の意味は何ですか?
貰ってきたコードに出てきました。
数字=>"ファイル名"みたいになってます。
0154nobodyさん2006/02/08(水) 18:32:38ID:???
>>153

つ ttp://jp.php.net/manual/ja/function.array.php
0155nobodyさん2006/02/08(水) 18:34:06ID:???
>>153
配列の時に使う。
key => value
キーと値という意味。
0156nobodyさん2006/02/08(水) 18:35:32ID:???
>>150-151
ini_set関数でも設定は変えられるわな。
場合によっては、upload_max_filesizeだけでなく、post_max_sizeも変える必要もあるかと。

>>152
これって、実際にPOSTされた後でしか実行できないよね?
01571492006/02/08(水) 18:36:25ID:zajb1emB
だれかおしえて
0158nobodyさん2006/02/08(水) 18:37:04ID:0zkvAuO5
>154,155
うひょー。どうもです。
=>を使えば、順番にかかわらず配列の中身をコントロールできますね。
すげー。わかりやすいし。
ありがとうございました。
0159nobodyさんNGNG
>>151-152>>156
どうもありがとうございます。

>>151
あ、.htaccessでもできるんですか。
それは知りませんでした。
てっきりphp.iniでしかできないのかと思ってました。

>>152
その方法でやってみたんですが、
>>156のとおり
アップロードされた後にチェックする感じになってしまいましたorz

>>156
phpスクリプトの中からも変えられるんですね。
できるだけphpスクリプトの中だけやりたいので
それで行こうと思います。
0160nobodyさん2006/02/08(水) 18:43:25ID:o/oLkGrK
CGI/perlで質問ですが
$cnt1〜$cnt100まで、今のところ100個の変数にそれぞれ数値が格納されています。
コレを「一番大きいもの」を見つけるにはどうやったらいいのでしょうか?
正規表現でこういうのとかあるんですか?
それとも比較して1つ1つ気の遠くなるような作業をするんですか。。。orz

どうやればいいのか分からないので、アドバイス下さい。
0161nobodyさん2006/02/08(水) 19:02:41ID:???
>>160
ここは PHP の質問スレだ。帰れ。
0162nobodyさん2006/02/08(水) 19:19:51ID:???
>>160
PHPだったら、整形してmax()で一発なのに
残念だったねぇ(w
0163150NGNG
すみません。>>156の方法でやってみたんですが
なんかうまくいきませんでした。
で、なんでだろうとググったりしてみたら
>>156の方法が有効なのはPHP 4.2.3 までらしいです。
それ以降のバージョンでは
upload_max_filesizeとpost_max_sizeが
PHP_INI_PERDIRという分類になってて
.htaccessとかphp.iniからしか変更できないっぽいです。
なのでphpスクリプトから制限するのは諦めて
.htaccesで制限する方向でやってみようと思います。
0164nobodyさん2006/02/08(水) 19:27:48ID:???
>>156
あれ?upload_max_filesizeってPHP_INI_SYSTEM|PHP_INI_PERDIRじゃなかったっけ?
0165nobodyさん2006/02/08(水) 19:28:50ID:???
ああ。4.2.3まではPHP_INI_ALLだったのか
0166nobodyさん2006/02/08(水) 19:38:24ID:???
>>162
push(@cnt, ${"cnt$_"}) foreach(1..100);
$max = (sort(@cnt))[-1];
だからPerlでもあんまりかわらんと思う
0167nobodyさん2006/02/08(水) 19:46:15ID:???
激分かりにくいけどな
01681562006/02/08(水) 20:00:58ID:???
>>163
うぉ、すまんかった。
パラメータによって有効無効があるのは知っていたけど、いちいち確認してなかった…

htaccessからでも、<FilesMatch>ディレクティブか<FilesMatch>ディレクティブを使えば、
ファイルごとに設定を変更できるよ。
0169nobodyさん2006/02/08(水) 20:05:19ID:???
$max = (sort(map{${"cnt$_"}}(1..100)))[-1];
ここまでやんなきゃ大したことないって。ふつーふつー
0170150NGNG
>>168
ありがとうございます。
一応うまくいきました。

でもちょっと気になることがあるんですが、
upload_max_filesize を10Kにして、さらに
<input type="hidden" name="MAX_FILE_SIZE" value=100000000000>
というタグを入れてブラウザに知らせるマックスファイルサイズを大きくした上で
100Mbyteのファイルをアップロードしようとすると、
upload_max_filesize が10Kなのにもかかわらず
ブラウザはずいぶんと長い時間送信し続けるようになります。
そして最終的にアップロード失敗や成功の画面ではなく
投稿フォームの初期の画面に戻ります。
スクリプトは実行されていないみたいで
テンポラリファイルのサイズを調べることができません。

これってブラウザが勝手に送りつけてるだけで
サーバー側は upload_max_filesize 以上受け取っていないと考えて良いんでしょうか?

読みにくい文章ですみません(・・;
0171nobodyさん2006/02/08(水) 22:07:23ID:???
>>170
Apache自体は全部受信してて、それをPHPコアがフォーム分解してテンポラリを作る際に、
サイズが大きすぎたら処理を中断してエラーフラグを設定して、スクリプトの実行を開始、
って感じだと思う。
サーバー負荷を下げるのが目的ならname="MAX_FILE_SIZE"で指定してやんないといけないし、
それを無視するブラウザを弾きたいということであればApache側でPOSTの制限をするなどの
設定をしてやる必要があると思う。
01721562006/02/08(水) 22:08:28ID:???
>>170
んー、PHPマニュアルには、
『MAX_FILE_SIZEはブラウザへの勧告に過ぎません。この最大値を 出し抜くのは簡単なことなので信頼してはいけません。
しかし、 PHP側の最大サイズの設定を欺くことはできません。 しかしそれでもMAX_FILE_SIZEを指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、
実はそれが大きすぎて転送できないということを長時間待ったあとで知らされるのを防げるからです。 』

とあるので、

MAX_FILE_SIZE(HTML) < POSTしようとするファイルサイズ < upload_max_filesize(PHP) の場合は、
(MAX_FILE_SIZEを欺くことは簡単にせよ)ブラウザ側で警告が出る。

upload_max_filesize(PHP) < POSTしようとするファイルサイズ < MAX_FILE_SIZE(HTML) の場合は、
ブラウザ側で警告は出ずに、サーバ側から"大きすぎて転送できないということを長時間待ったあとで知らされる"。

ということだろうから、その挙動は合っていると思う。
エラーコード、$_FILES['userfile']['error'] をechoしてみれば分かるんじゃ?
0173nobodyさん2006/02/08(水) 22:32:04ID:???
SJISとereg系って文字化け起きやすいように思うのですが、そうなのでしょうか?
ini_setで関係のありそうな場所を設定してるのですが、気を付けた方がいい所はありますか?
漠然とした内容ですいませんが、第一引数に「ー」や「]」などを入れると文字化けして、ini_setや他の関係ありそうな関数を使っても必ずどっちかが文字化けしたりで途方に暮れてます…
0174nobodyさん2006/02/08(水) 23:36:23ID:???
>>173
SJISを、どうしても使いたければ最終的な出力だけにしとけぇ
0175nobodyさん2006/02/08(水) 23:41:03ID:???
はじめまして。お世話になります。
現在ある掲示板を、携帯絵文字対応にしようと思っております。

既存の掲示板では携帯から絵文字を投稿すると
<img src="img/i/F8C7.gif" width="12" height="12" border="0">

と変換されているのですが、これを携帯から見た時に


と変換したいのです。
このような変換を行う場合はどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
01761752006/02/08(水) 23:41:43ID:???
?=&#63687;
です。文字化けしてしまいました・・。
0177nobodyさん2006/02/08(水) 23:46:27ID:???
>>173
SJISで正規表現をまともに動かすのはかなり難しいよ。
0178nobodyさん2006/02/09(木) 00:06:23ID:MhSFpTrN
携帯から使いやすいように2chの窓口を作りたい、といっても何すれば良いかよくわかんないので とりあえず書き込み画面作ろうと思うんですが
http://c-others.2ch.net/test/-/php/1139146534/w ←こんな感じで書き込めるようにするにはどうしたらよいでしょうか
hiddenの値とかは何とかなると思いますが、ソケットプログラミングが全くわかんないので、できたら実際に書き込みできるスクリプトを見せていただきたいのですが・・・
よろしくお願いします。
0179nobodyさん2006/02/09(木) 00:12:01ID:???
>>178
すでに「p2」というPHP製の非常に優れたGATEWAYプログラムが存在してますので、
まずはそちらの中身を解析してみて、それ以上のものを作って公開してくださいね。
0180nobodyさん2006/02/09(木) 00:15:47ID:???
>>179
死ねカス
01811792006/02/09(木) 00:21:24ID:???
>>180の罵倒の意味が判らない
>>178で参考になるスクリプトが見たいといってるから、
存在するオープンソースで一番目的に近いものを紹介して
なんで、「死ね」とか言われなきゃならんのだ・・・凹むぞ
0182nobodyさん2006/02/09(木) 00:37:21ID:???
解らんのなら相当お前性格悪いな
0183nobodyさん2006/02/09(木) 01:00:28ID:???
ここって上級者向けスレッド?
0184nobodyさん2006/02/09(木) 01:21:00ID:???
わかんないんだから性格じゃなくて頭が悪いんだろ わかっててやってるなら性格悪いけど
0185150NGNG
>>171-172
ありがとうございます。
そして遅レスですみません。

>>171
Apache側の設定のこと完全に忘れてましたw
それでApache方面でググった今の自分にぴったりな(?)文章を見つけました。
http://multix.jp/html/memo/030521.html#00010201
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LimitRequestBody
クライアントから送信されてくる POSTや PUTデータを受け入れる
最大値を指定します。初期値は 0(無制限)で、バイト単位で
2147483647(2GB)までを指定できます。これを使えば CGIで
ファイルアップローダを運用するような場合、CGIプロセスが
起動する前に巨大すぎるデータの受け入れを容易く拒否することができます
(CGIプロセスに渡ってからではほとんどの場合、手遅れ)。
それ以外でもバッファオーバーフローやサーバクラッシュ目的での
DoS攻撃を回避するのに有効ですから、サーバ管理者は必ず再設定しておくべきです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

>>172
upload_max_filesize以上post_max_size未満のサイズなら
$_FILES['userfile']['error']でちゃんとエラーを拾えるんですが
post_max_sizeを超えてしまうと拾えなくなってしまいます。
というか何もPOSTされなかったかのような反応になります。
しかも送信してる間にハードディスクがガリガリいってるぽいので
どうも>>171のとおりPOSTされたデータをApache側で
全部受け取ってるのかもしれません。

うーんでもApache側で一旦受け取るんだったら
upload_max_filesizeとupload_max_filesizeの意味無いような気がするし。。。
もうわけわかめ。
0186nobodyさんNGNG
あ、ハードディスクガリガリは勘違いだったかもしれません。
それにphpのテンポラリディレクトリは
ウェブディレクトリの外側なので
LimitRequestBodyで設定できませんでした。
0187nobodyさん2006/02/09(木) 02:07:21ID:???
>>178
鯖のリソース余ってるやつちょっと来い@自宅サーバ
http://pc8.2ch.net/test/read.cgi/mysv/1137564375/l50
0188150NGNG
>post_max_sizeを超えてしまうと拾えなくなってしまいます。
>というか何もPOSTされなかったかのような反応になります。
良く調べたらこれはMAX_FILE_SIZEに引っかかっただけでしたorz
MAX_FILE_SIZEを100000000000000000000にして
やってみたらエラーを拾えるようになりました。

いろいろやってみた結果、
結局サーバー側は upload_max_filesize 以上受け取っていない
ということかもしれません。

ご迷惑をおかけてすみませんでした。
0189nobodyさんNGNG
phpでperlでいうuse strict;みたいなことは出来るんでしょうか?
0190nobodyさん2006/02/09(木) 03:40:24ID:???
ログをE_ALLで取るとか?
0191nobodyさん2006/02/09(木) 03:43:14ID:???
>>189
error_reportingの設定でE_NOTICEを入れてやれば似たようなもんなんじゃないの?
0192nobodyさんNGNG
ラジャーです。
01931732006/02/09(木) 06:57:36ID:???
>>174>>177
そうなんですか。諦めて出力だけ変換します。ありがとうございました。
0194nobodyさん2006/02/09(木) 07:55:13ID:???
use strictが効いてE_NOTICEが効かない例

(my) $hoge = 1;
(my) $hige = 2;
// hogeにhigeを加える
$hage = $hoge + $hige; //hogeをhageに間違える
print $hoge;
0195nobodyさん2006/02/09(木) 08:07:16ID:???
>>181
イキロ
0196nobodyさん2006/02/09(木) 09:01:55ID:???
テキストエリアに改行を入れた場合、<br>が入るように
str_replace("\n", "<br>", stripslashes($textarea))
としているのですが、テキストエリアにタグを入れた場合、改行が入っていると
<br>が入ってしまいます(当然ですが)

例)
<table>
<tr>
<td>テキスト </td>
</tr>
</table>

これを改行無しに記述すれば問題はないのですが、ホームページ作成ソフトなどから
直接タグをコピペする時もあります。
どうすれば整形済みのタグを入れても<br>だらけにならないように出来るのでしょうか?
説明が下手ですが、何かアドバイスをいただければと思います。
0197nobodyさん2006/02/09(木) 09:24:25ID:???
>>196
<br>に変換しなければいいんじゃないの
01981962006/02/09(木) 09:29:55ID:???
>>197
それが、普通のテキスト文字の場合は改行した時、<br>に変換が必要なんです。
ブログの記事書き込み部分のようなイメージです。

ブログ(MTなど)でも記事フォームにタグを入れている場合は、改行せずに
入れているような気がしないでもないですが、もし何か良い方法があれば、ご教授願います。
0199nobodyさん2006/02/09(木) 09:49:35ID:???
>>198
HTMLでの記事書き込みとテキストでの記事書き込みとをモード切替してるとこはある。


同一のものとして扱うのであれば、タグの開始と終了<hoge></hoge>を判別して、
その間だけ<br>変換やめるとか。
同じ名前のタグをネストされた時の対処が必要だしちょっと面倒かもしれんが…
XMLパーサとか使ってみるのもテではないでしょうか?
0200nobodyさん2006/02/09(木) 09:51:04ID:???
該当箇所にhtmlspecialchars通すってのはだめか?
02011962006/02/09(木) 10:12:05ID:???
>>199-200
なるほど。やっぱり、入力フォームを分けるという対処しかありませんよね。。
1つのテキストエリア上で出来たら、便利だと思っていたのですが、
入力する側が手間になるといけませんので、断念します。
アドバイスありがとうございました。
02021492006/02/09(木) 10:17:13ID:g3a/RWdO
ネタでも何でもなくマジなんだけど、誰か教えてもらえませんか?
0203nobodyさん2006/02/09(木) 10:24:38ID:???
a.phpの中でb.phpの自作関数を何も定義せずに普通に呼べるんですが
これってなにか問題ありますか?
0204nobodyさん2006/02/09(木) 10:25:48ID:???
>>149

ttp://hrgs.itbdns.com/diary/item/24

ていうか少しは自分で調べる事を知れ。

ttp://www.google.co.jp/search?hl=ja&q=PEAR+%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89&lr=

思いっきり一番上に出てきたぞwww
0205nobodyさん2006/02/09(木) 10:27:19ID:???
>>203

何も定義ってincludeもしてないって事か?
0206nobodyさん2006/02/09(木) 10:48:04ID:???
>>205
includeもしてないです。
a.phpにb.phpで作ってる関数と同じ名前の関数を作ったらエラーになったので
試しにa.phpの関数を消して呼び出しだけを行ったら普通にb.phpの関数が呼ばれてたので
0207nobodyさん2006/02/09(木) 10:52:33ID:???
あ、すんません・・・
include山ほどしとりますた・・
a.php内で
<?php〜?>外に
<!--〜-->ってコメントにしてたんですが、これって
<?php〜?>外なのに生きてるんですね
0208nobodyさん2006/02/09(木) 10:55:31ID:???
あれ?
でも
やっぱコメント扱いっぽいけど、インクルードはされてるみたいだなあ
<!--<?php include("b.php"); ?>-->
これって、b.phpは実際には呼ばないけど内部関数の定義はされるんですか?
0209nobodyさん2006/02/09(木) 10:59:21ID:???
>>208
http://www.php.net/manual/ja/language.basic-syntax.comments.php
0210nobodyさん2006/02/09(木) 11:05:06ID:???
>>209
え?あれ?
いや、コメントになってるっぽくて確かにb.phpは呼ばれてはいないのに
b.phpの関数が呼べるのが疑問なんですよ、俺変なこと言ってます?
0211nobodyさん2006/02/09(木) 11:08:43ID:???
>>196
こういうのはロジック以前にルール作りをどうするかだと思うんだけど、
例えば「各行の末尾が">"で終わっていなければテキストの改行とみなして<br>を入れる」とかじゃダメ?
$test = <<<TEXT
<table>
<tr>
<td>テキスト </td>
<td>テキ
スト </td>
</tr>
</table>
TEXT;
foreach(explode("\n", $text) as $line) {
$newtext .= $line . ((substr($line, -1) != '>')? '<br>': '') . "\n";
}

結果
<table>
<tr>
<td>テキスト </td>
<td>テキ<br>
スト </td>
</tr>
</table>
02121492006/02/09(木) 11:08:45ID:g3a/RWdO
>>204
ありがとう!
家に来て俺の妹とファックしていいよ。
0213nobodyさん2006/02/09(木) 11:10:10ID:???
>>210
<!-- -->はHTMLのコメントであってPHPのコメントじゃない。関係なくPHPは実行される。
0214nobodyさん2006/02/09(木) 11:11:35ID:???
別ページに飛ばしたくて今header(location:〜)でやろうと思ったのですが
フレームを解除させて飛ばす場合はどのようにすればいいのでしょうか?
0215nobodyさん2006/02/09(木) 11:12:36ID:???
>>210
>208の書き方では、HTMLではコメントとされても、PHPとしては実行される。
ただ、b.php内でechoしてると、<!-- hogehoge -->となるので、ブラウザ上では表示されない。
HTMLソース見れば、b.phpが読み込まれた上に実行されていると思うが。
0216nobodyさん2006/02/09(木) 11:13:31ID:???
>>213
いやそれはわかってるんですが、実行されてる様子がないんですよ。
b.phpで適当な文字をechoしてるのですが、
<!-- -->でくくってると、文字が出なくて<!-- -->を取ると文字が出ます。
ひょっとすると俺の根本から間違ってますか?
0217nobodyさん2006/02/09(木) 11:15:16ID:???
>>216
出力されたHTMLソース見れ。
<!-- 適当な文字 --> って出力されてて、PHPは実行されてるがブラウザから見れなくなってるから。
0218nobodyさん2006/02/09(木) 11:15:26ID:???
>>215
嗚呼、わかりますた。
どうやら俺の根本が間違ってました。
確かにソースをみると、実行されてますねこれ・・
コメントになってるんでブラウザには表示されてないだけか・・・
0219nobodyさん2006/02/09(木) 11:15:58ID:???
>>217
すんません・・
おっしゃるとおりです。
0220nobodyさん2006/02/09(木) 11:16:56ID:???
>>214
PHPの呼び出し元HTMLでtargetを指定してやるか、Locationで飛ばした先のHTMLを
target解除してさらに別ページに飛ばすJavaScriptのページにして連続遷移。
0221nobodyさん2006/02/09(木) 11:16:57ID:???
>>214
ちょっと前にも同じ質問があったぞ…
フレームはHTMLの仕様であり、PHPから直接いじることは無理。
どうしてもやりたければ、PHPのheaderで飛ばすのではなく、
PHPでJavaScriptを生成してwindowオブジェクトを操作すべし。
0222nobodyさん2006/02/09(木) 11:20:30ID:???
>>219

サーバー側の処理を考えればそんな所にはいきつかん。

<!-- ここに書かれた文字列 -->を表示しないと言うのはブラウザ側の機能。

サーバー側はあくまで取得してきたファイルを処理し、整形されたHTMLをクライアントへ投げるだけだ。
0223nobodyさん2006/02/09(木) 11:22:06ID:???
えtっと、すみません、最後に・・
例えば、a.phpからb.phpの自作関数を呼ぶ場合って
b.phpでは関数のみを作成し本体には何も書かないのがいいんですか?
0224nobodyさん2006/02/09(木) 11:24:27ID:???
>>223
本体って何を指してんだよw
ていうか、関数郡、実際稼動ファイルと分けておいた方が後で自分でも見やすいだろ?

お前次第だよそれはw
0225nobodyさん2006/02/09(木) 11:26:50ID:???
>>223
どっちでもいいよ。好きにしれ
0226nobodyさん2006/02/09(木) 11:32:10ID:???
>>223
言ってる意味が分からんがな。
本体=a.php 、 関数のみ=b.php という意味なら、
>>224が言うように見やすくなり管理し易くなる。
その関数を他のファイルで使いたい場合も、b.phpをincludeするだけでよくなる。
0227nobodyさん2006/02/09(木) 11:37:17ID:???
>>224
そそ、それそれ、ってやっぱ自分次第なんですよね。
>>226
ですね、<?phpでかこめば関数を作らなくても記述できる点がCとは異なるので
ちょっとアレだったんですよ
02282142006/02/09(木) 11:46:33ID:???
>>220-221
ありがとうございました。
0229nobodyさん2006/02/09(木) 11:55:47ID:???
>>227
Cと異なるってのはどういうこと?
メイン関数を作らなくてもいいってこと?

関数呼び出しに関してはいたってCと同じ構造だと思うぞ。

0230nobodyさん2006/02/09(木) 11:56:23ID:???
よく掲示板などの入力があるようなスクリプトを見ると、
extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
っていうのがあるんですが、これはどういう意味があるんですか?
0231nobodyさん2006/02/09(木) 11:58:19ID:???
>>230
ttp://php.s3.to/man/function.extract.html
ttp://php.s3.to/man/language.variables.predefined.html
0232nobodyさん2006/02/09(木) 11:59:04ID:???
>>230

ttp://php.net/extract

これを見て分からないなら諦めろ
0233nobodyさん2006/02/09(木) 11:59:35ID:???
>>231とかぶったww
0234nobodyさん2006/02/09(木) 12:10:28ID:???
>>230
脆弱性を作ってる
0235nobodyさん2006/02/09(木) 12:11:02ID:???
extract 超便利で大好きです。
ちゃんとサニタイズしてね。
0236nobodyさん2006/02/09(木) 12:25:04ID:???
>>234
確かにww
0237nobodyさん2006/02/09(木) 14:01:39ID:???
サニタイズ言うなキャンペーン
0238nobodyさん2006/02/09(木) 14:54:57ID:???
>>229
いやCは必ず関数が存在するけどphpて関数いらんっしょ
例えば、
<?php
なんか
この部分とか

function aa( )
{
}
?>
0239nobodyさん2006/02/09(木) 15:00:22ID:???
>>229がなにをいいたいのかさっぱり分からない
0240nobodyさん2006/02/09(木) 15:09:41ID:???
----a.php----
<?php
include ("b.php");
func();
?>
----b.php----
<?php
echo "test message";
function func() { echo "hello world.\n"; }
?>
----終了----
Cなら echo "test message";はエラー返される、とか
言い方が分からないけど、グローバルな部分で関数を呼び出したりifやwhileが使えないって事かな。
0241nobodyさん2006/02/09(木) 15:10:16ID:???
ちなみに>>240である俺は>>229では無いのであしからず。
02422292006/02/09(木) 15:25:09ID:???
223で聞いてる、関数分けをして呼ぶのに必要なのは、関数群を記述したファイルを
インクルードするだけって点ではCと同じじゃないかと書いたのですが、
どうやら私の方が227の文面を読み違えていたようでしつれしました。
0243nobodyさん2006/02/09(木) 15:25:14ID:???
>>235
この場合は変数の初期化を適切に行えばいい話しだ。
なんでもかんでもサニタイズ言うのは病気。
0244nobodyさん2006/02/09(木) 15:56:49ID:eu00qYyi
質問させて下さい。

ttp://www.xxxx.com/zzz/hello.php
のアドレスに
ttp://www.xxxx.com/zzz/hello
だけで行くのは出来ますか?

お願いします。

0245nobodyさん2006/02/09(木) 16:00:41ID:???
>>244
出来ます
0246nobodyさん2006/02/09(木) 16:05:12ID:???
<a href= 'http://www.yahoo.co.jp/'>;Yahoo!</a>
↑の文を

<form action="aaa.php" method="post">
<input type="hidden" name="name" value="write">
<textarea name="text" cols="20" rows="5" wrap="soft"></textarea>
<input type="sub" value="送信">
</form>
↑で送信して

if ($_POST['name']=='write'){
print $_POST['text'];
}
↑みたいな感じでで受け取ると、

<a href= \'http://www.yahoo.co.jp/\'>Yahoo!</a>
↑みたいに変化してしまいます。回避策あったら教えてください。
0247nobodyさん2006/02/09(木) 16:14:13ID:???
>>240
単にPHPの場合は各ファイルにmain()関数を置けるってだけだな。
Cとの最大の違いは「main()関数の中身を複数ファイルにバラバラに配置できる」ってとこか。
0248nobodyさん2006/02/09(木) 16:17:16ID:???
>>246
マジッククオート機能がONになってる可能性が高いからOFFにしれ
0249nobodyさん2006/02/09(木) 16:43:16ID:???
>>244
前スレの後半あたりで、その話題あった気がする。
0250nobodyさん2006/02/09(木) 16:58:06ID:???
>>244
Apacheのコンテントネゴシエーションが有効ならそのまま拡張子無しでアクセスできるかも
あとはmod_rewriteを使う
どっちにしてもPHP関係ねー
0251nobodyさん2006/02/09(木) 16:58:23ID:???
>>248
解決できました!!ありがとうございました!!
■ このスレッドは過去ログ倉庫に格納されています