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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
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
0814nobodyさん2006/02/21(火) 22:06:17ID:???
>>812
ここはお前のメモ帳じゃないんだ。
ちゃんとAN HTTPDやApacheとPHPを入れて自分で実践してくれ。
0815nobodyさん2006/02/21(火) 22:06:37ID:???
>>812
そんなに $_POST['action'] や $_POST['id'] を嫌ってあげなくてもいいと思うのよ
0816nobodyさん2006/02/21(火) 22:07:53ID:y3MPaFDb
なぜ堀江もんが送ったとされるメールの、ヘッダを調べないでうだうだやってるんですか?
0817nobodyさん2006/02/21(火) 22:07:59ID:???
extract($_REQUEST)最強伝説
0818nobodyさん2006/02/21(火) 22:14:50ID:???
>>814
ごめん
何度か自鯖でためしてたんですが、参考にしてたサイトのやりかたが古かったようで。
いまいち使い方がわかってなかったようです。

>>813
thx
0819nobodyさん2006/02/21(火) 22:37:20ID:???
サンプルスクリプト眺めてるとPOSTやGETを展開してるのが多いけど、そのまま使っても問題ないですよね?
0820nobodyさん2006/02/21(火) 22:44:30ID:???
展開ってのはextractって事?
0821nobodyさん2006/02/21(火) 23:28:23ID:???
extractしてるのは脆弱性だいすきっ子だから。
0822nobodyさん2006/02/21(火) 23:29:02ID:???
>>820
それもありますけど

$user_id = $_POST['id']

みたいなかんじで別の変数に入れてたり。
0823nobodyさん2006/02/21(火) 23:30:08ID:???
例えばどういった問題が発生すると思うの?
0824nobodyさん2006/02/21(火) 23:38:46ID:???
>>823
特にそういうのは無いんですが何となく気になったので。
0825nobodyさん2006/02/21(火) 23:41:49ID:???
>>818
参考にするサイトは公式マニュアルが一番。
0826nobodyさん2006/02/21(火) 23:59:45ID:???
extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

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

extract($_GET)

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

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

それを避けるために

extract($_GET, EXTR_SKIP)

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

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0827nobodyさん2006/02/22(水) 00:42:12ID:???
>>826
それコピペ?
0828nobodyさん2006/02/22(水) 00:58:05ID:???
>>826
次スレのテンプレに採用
0829nobodyさん2006/02/22(水) 03:10:45ID:???
よーは、XSSとか、SQLインジェクションとかを気にしてるんだろ。
みんな分かってるくせに。

どんな時でも値チェックは基本。
時には正規表現も使う。これでいいか?
0830nobodyさん2006/02/22(水) 06:28:29ID:???
値チェックの例あげてもらっていいですか?
htmlspecialcharsに通すだけにしてるんですけど、
それだけじゃ足りないでしょうか?
0831nobodyさん2006/02/22(水) 07:41:49ID:???
>>830
足りるケースもあるが、そのデータの入力の自由度が高い場合は足りない。
0832nobodyさん2006/02/22(水) 08:42:33ID:???
>>830
値チェックにもいろいろあると思うが・・。
数字チェックや全角チェック、SQLに入れる場合のチェック等
0833nobodyさん2006/02/22(水) 09:13:49ID:???
特にWEBプログラム,PHPに特化した話じゃないと思うんだよな、値の妥当性チェックって。
やってて当たり前っつーか。
0834nobodyさん2006/02/22(水) 09:40:06ID:???
値の妥当性チェックはだいたいわかるけど、
どういうことを入力されたらXSSやSQLインジェクションに繋がるかがわからない・・・
赤マンモス本しか読んでないから、セキュリティ関係の本も読んだほうがいいのかな。
0835nobodyさん2006/02/22(水) 10:39:33ID:???
>>834
ttp://64.233.179.104/search?q=cache:LgahQDd3smIJ:www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html+sql+%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&hl=ja&gl=jp&ct=clnk&cd=1
ググればいくらでもあるだろ
0836nobodyさん2006/02/22(水) 10:40:13ID:OxTvy2cr
PHPでepsファイルを生成するのは可能ですか?
0837nobodyさん2006/02/22(水) 10:49:53ID:/RILhY7o
はじめまして。
個人的に携帯専用の求人情報サイトを作りたいと
思っていますが、
PHPの知識は皆無ですので、
システムが構築できません。
システムの参考HPはhttp://www.jwpc.jp/
です。
どなたか、安く作成してくれる方、
または安く作成してもらえるところはないでしょうか?

メールを記載しますので
onm_2006@mail.goo.ne.jp
お返事ください。
システムの機能に関しては詳しくお返事しますので
どうかよろしくお願いします。
0838nobodyさん2006/02/22(水) 10:55:15ID:???
>>837
個人的に、話の最初から「安く」と言ってくる仕事で
クライアントが期待する金額が妥当な価格であった試しがない。
話の中で優先度の高い条件のひとつに、
予算(安く)が出てくる事は当たり前だが。
0839nobodyさん2006/02/22(水) 11:02:10ID:???
>>837
SOHO系のスレッドにでもいって、
そこで頼んでみたほうがいいと思うよ。
仕事がない暇だーって言ってる人もいたし。
あとそういった用途にはちょっとPHPは不向きかもね。
0840nobodyさん2006/02/22(水) 11:07:33ID:???
>>837
システム参考とのサイトがなぁ…ネタッぽ杉
「求人情報サイト」とかいって作ったら、
いつの間にかカスタマイズされて
出会い系サイトに流用されそうなオカン

>>839
「そういった用途」って何?
0841nobodyさん2006/02/22(水) 11:26:07ID:???
>>840
PHPは処理速度が遅いから、
たくさんのリクエストを同時に抱えると極端に遅くなる可能性がある。
っていうこと。
0842nobodyさん2006/02/22(水) 11:27:20ID:???
>>840
たくさんてどれくらい?
だいたいの目安とか。
0843nobodyさん2006/02/22(水) 11:31:04ID:???
phpの知識ないのになぜここにきたのか理由がわからん
0844nobodyさん2006/02/22(水) 11:31:17ID:???
PHPって処理速度遅いんだ。何と比べてるんだろ。
0845nobodyさん2006/02/22(水) 11:34:15ID:???
>>841
では、どんな言語を使ったら良いのでしょう?
0846nobodyさん2006/02/22(水) 11:41:56ID:???
Java最強
処理速度にこだわるだけならCとかもいいんでね?
インタプリタだからPHPの処理が遅いのは仕方がない。
ってここなんのスレだっけ?
0847nobodyさん2006/02/22(水) 11:42:28ID:???
>>836
epsってただのテキストファイルじゃなかったっけ?
epsを出力するエンジンがあるのか?って質問かもしれんが…
0848nobodyさん2006/02/22(水) 11:44:19ID:???
>>846
> インタプリタだからPHPの処理が遅いのは仕方がない。

2回目以降は遅くないって聞いたことある。
0849nobodyさん2006/02/22(水) 11:44:35ID:???
>>843
おまいのメール欄も理由がわからん
0850nobodyさん2006/02/22(水) 11:49:46ID:???
例えば以下の場合
<?for(〜){?>
 <tr>
  <td>〜</td>
 <?for(〜){
  処理a?>
  <td></td>
 <?}?>
 </tr>
<?}?>
とか書いているのですがもっと綺麗に書く方法はありますか?
で、こういう場合上みたいにtdの頭をそろえた方がいいのか?
<td>と<?の頭をそろえた方がどちらが良いのでしょうか?
0851nobodyさん2006/02/22(水) 11:51:11ID:???
>>850
printとかは使わないポリシー?
0852nobodyさん2006/02/22(水) 11:55:37ID:???
Smarty を使うとか
08538502006/02/22(水) 12:01:03ID:???
>>851
前echo使いまくってたらデザイナーの方に
見にくいって怒られたwので
使い分けしています。
0854nobodyさん2006/02/22(水) 12:02:42ID:???
>>850
<table>
<?php
for (;;) {
 echo "<tr><td>" . 〜 . "</td>";
 for (;;) {
  処理a
  echo "<td></td>";
 }
 echo "</tr>";
}
?>
</table>

そもそもそこまで入れ子にしない方がいい。
だけど気になるので分かる人俺にもついでにおせーて。
0855nobodyさん2006/02/22(水) 12:03:53ID:???
>>848
中間コードコンパイル後の実行処理もJavaやPerlに比べて結構遅いよ。
1回目がめちゃ遅いんであって、2回目以降でも決して速くはない。
0856nobodyさん2006/02/22(水) 12:09:48ID:???
>>853
デザイナーと分業してるんなら、>>852 じゃ無いが、テンプレートエンジン使えば?
Flexy とかもあるぞ。
0857nobodyさん2006/02/22(水) 12:20:58ID:???
>>853
これが俺のデザインなんです。
って言ってみようぜ。
俺はお前のデザイン分からんように、お前も俺の知的フィールドは理解できんだろ。って

クビは覚悟だな。
0858nobodyさん2006/02/22(水) 12:27:45ID:???
>>853
ってか、それ以前にメ欄なんとかしろ
08598502006/02/22(水) 12:53:19ID:???
>>854 ありがと。
>>856 テンプレートエンジンか・・使ったことないんでちょっと調べてみます。
>>857 それじゃ進歩しないじゃんw
0860nobodyさん2006/02/22(水) 13:10:35ID:???
>>829
extractを使うと初期化しないで使っている変数がある場合や、
extract以前に処理した変数の値が任意に設定できるため、
XSSやSQLインジェクションなどわかりやすい物だけではなく、
もっとわかりにくい論理的破綻すら招く。
デバッグはしにくいし、どこでどう転んで脆弱性を生み出すか検討するのも大変になる。
ならば、extractを乱用するのは避けるべきであるってことだ。
見通しの悪いコードは書かないのは基本。
0861nobodyさん2006/02/22(水) 13:25:58ID:???
>>859
こっちが進歩するだけが世界じゃない、
向こうが進歩する事もまた世界の一つだ。

>>860
昔から気になってたんだけど、Let's PHP
あれはどうなん?
extract使ってるけど。
0862nobodyさん2006/02/22(水) 13:31:17ID:???
>>861
register globals問題にとりあえず対応するためにやってそのまんまだな <LetsPHP
0863nobodyさん2006/02/22(水) 13:32:54ID:???
>>861
諸悪の根元
0864nobodyさん2006/02/22(水) 13:55:20ID:???
>>863
> >>861
> 諸悪の根元

(・ω・;)ω・;)・;) )...マヂ??
レッツPHP!を参考に、つい先日から勉強を始めたばかりなのですが・・・。

ええextractも「これが基本かっ!」てな感じで使ってました・・・。
0865nobodyさん2006/02/22(水) 14:05:25ID:YzTdS2nd
スレ違いだったらごめんなさい。

windows server 2003でIIS6.0を使用してます。
PHP4.4.2をインストールし、nucleusでblogを作成したところ、
「エラー発生アプリケーション w3wp.exe、バージョン 6.0.3790.1830、エラー発生モジュール php4isapi.dll、バージョン 0.0.0.0、エラー発生アドレス 0x00002443」
とアプリケーションログに記録され、表示できなくなりました。
どうやら、PHP4.4.2のバクのようで、STABLE版の使用で解決するらしいのですが、STABLE版はIISで使用できるのでしょうか?
また、設定方法等、解説しているサイトをご存知でしたら、ご教授願えませんでしょうか?

よろしくお願いします。
0866nobodyさん2006/02/22(水) 14:07:18ID:???
各種処理の結果を表示するhtmlのテンプレートを_template.htmlとして用意し、
それを利用してブラウザに情報を挿入したhtmlを表示させるにはどうすればよいのでしょうか?
今までは表示用のhtmlを、あとから情報を挿入したい部分毎に細切れにしたものを変数に入れておき、
情報を挟みつつ順番につなげてからechoで出力していたのですが、
デザイン面の変更にかなり手間がかかっていました。

そこで次に試してみたのは、
_template.htmlの情報を挿入したい部分に{$hoge}と入れておき、
$hoge = "output test";
$output = file_get_content("_template.html");
echo $output;
としてみたのですが、ブラウザにも「{$hoge}」とそのまま表示され、$hogeに格納した文字列は表示されませんでした。
たとえば$output = "テスト{$hoge}";とやると$hogeの内容が表示されます。
どうすれば_template.html中の{$hoge}のような部分に変数の内容を表示させることが出来るのでしょうか?
よろしくお願いします。
0867nobodyさん2006/02/22(水) 14:09:36ID:???
>>865
スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1140027592/145
0868nobodyさん2006/02/22(水) 14:13:45ID:???
>>864
あそこは凄いね。ある意味勉強になるよ。
SQLインジェクションとかがやり放題なスクリプトとか放置されてるし
(確かここで指摘されて知ったんだが)
0869nobodyさん2006/02/22(水) 14:16:36ID:???
>>866
スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1118799352/
0870nobodyさん2006/02/22(水) 16:51:33ID:25ErppZd
print関数内の変数を全て htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?

print関数内の変数名の全てを htmlspecialchars($hoge) のように変更すれば良いのですが、
それだとコードが汚くなってしまうので・・・。

よろしくお願いします。
0871nobodyさん2006/02/22(水) 16:54:39ID:???
apacheの最新版と PHP 5.1.2 の最新版をソースをDLしてコンパイルしてインストールしました。(OSはLinuxです)

それで正常に動作しているのですが、make uninstall には対応していないようですので、
例えば新たに PHP 5.1.3 が公開された場合には、どうやってアップグレードするのがよいのでしょうか?

1. Apacheの設定ファイル httpd.conf から 「LoadModule php5_module modules/libphp5.so」 を削除
2. Apacheの再起動
3. make install 時に作成されたファイルを全部手動で削除(rm, rmdirコマンド)
4. 新しいバージョンを落としてきてコンパイル、make install
5. Apacheの再起動

といった手順で問題ないでしょうか。
0872nobodyさん2006/02/22(水) 16:58:14ID:???
>>870
ソース内の「print」を一括置換で、
「$tempdata .=」に変えておいて、
処理の最後で
print htmlspecialchars($tempdata);
0873nobodyさん2006/02/22(水) 17:02:31ID:???
>>870
ob_start()で出力内容を全部バッファに格納しちゃって
プログラムの最後でprint htmlspecialchars(ob_get_contents())ってのはどう?
0874nobodyさん2006/02/22(水) 17:03:03ID:???
function hoge($str){
print htmlspecialchars($str);
}
とか作って
hoge($str)で読み込ますのは駄目?
0875nobodyさん2006/02/22(水) 17:10:54ID:???
>>868
高木さんも、あのサイト批判したらいいのに。
個人サイトだけど、公開してGoogleランクが非常に高いのは責任あるだろって。
(責任云々は無茶だけど。効果の問題として)
0876nobodyさん2006/02/22(水) 17:14:56ID:???
>>872
print $a,$b,$c; とか,でパラメータが渡されてるパターンの話だから、
それだと無理。,→.を追加ってのもスマートじゃないので、無しにしようよ
0877nobodyさん2006/02/22(水) 17:17:52ID:???
>>876
お前は、>>870か?それともエスパーか?

>>870のどこに
>print $a,$b,$c; とか,でパラメータが渡されてるパターンの話
なんて記述があるんだ?
0878nobodyさん2006/02/22(水) 17:20:59ID:???
>>871
make cleanしてから新しくinstallする
08798702006/02/22(水) 17:22:39ID:???
皆様ご回答ありがとうございます。

>>876は私ではありません。

条件が不足していて申し訳ありませんでした。
「print関数内の変数を全て htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」ではなく、
「print関数内の変数全てのみを htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」です。

つまり、
print "<strong>貴方のIPアドレスは" . $hoge . "です。</strong>"; となっている場合に
変数以外の部分の <strong> はエスケープせずに、変数である $hoge をエスケープしたいと考えています。
0880nobodyさん2006/02/22(水) 17:29:38ID:???
>>879
ま、普通は出力用変数$hogeに値を代入する時点でやっちゃうね

0881nobodyさん2006/02/22(水) 17:31:04ID:???
>>878
make clean は
make時に作成された一時ファイルの削除でしょ、全然違うと思うけど。

# make deinstall
# make uninstall
などが提供されている場合もあるけど、phpだとそれがない。

従って手動でファイル消すしかないっしょ
0882nobodyさん2006/02/22(水) 17:57:21ID:???
>>875
知らないだけかもしれんし、突っ込みどころ大杉で
やらないだけかもね。

>SQLインジェクションとかがやり放題なスクリプト

なんて、たいていの入門書がそうなってるし。
0883nobodyさん2006/02/22(水) 18:20:14ID:???
PerlのKENT WEB
PHPのレッツPHP
0884nobodyさん2006/02/22(水) 18:21:19ID:???
$c = array_map( null, $a, $b ) の逆関数ってそれぞれarray_filterするのがベストでしょうか?
0885nobodyさん2006/02/22(水) 18:21:30ID:???
いちいち消さなくていいじゃん
0886nobodyさん2006/02/22(水) 18:25:01ID:???
レッツPHPは、PHP初期の普及には役立ったが、
今となってはかなり古くて、汚いコードに見えるね・・・。
0887nobodyさん2006/02/22(水) 18:25:14ID:???
>>871
checkinstallでパッケージ作ってアンインストール
0888nobodyさん2006/02/22(水) 18:29:24ID:???
>>886
よくあるように、
「既にその役目を終えたと判断し、閉鎖させていただきます」
みたいな潔い幕引き出来んもんかね・・・
08898712006/02/22(水) 18:30:04ID:???
>>887
なるほど。
それは便利ですね。
ありがとうございます。
08909002006/02/22(水) 18:49:20ID:???
XML-RPC API を使い、Movabletype への エントリークライアントを作っています。
metaWeblog.newMediaObject でフォームから画像をアップロードしたいのですが、
アップロードされたファイルのサイズが1.5倍程に膨らんでしまいます。
以下、ソースになります。よろしくお願いします。PHP 4.3.11

<?php
require_once("XML/RPC.php");
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
$mt_host = "host名";
$mt_xmlrpc_path = "Movabletypeの mt-xmlrpc.cgi へのパス";
$mt_user = 'user';
$password = 'pass';
$c = new XML_RPC_client($mt_xmlrpc_path, $mt_host, 80);
$appkey = new XML_RPC_Value('', "string");
$username = new XML_RPC_Value($mt_user, "string");
$password = new XML_RPC_Value($password, "string");
$blogid = new XML_RPC_Value("1", "string");
08919002006/02/22(水) 18:50:02ID:???
if($Myfile){
$UPLOAD = fopen($Myfile, "r");
$image = fread($UPLOAD, $Myfile_size);
fclose($UPLOAD);
$image64 = new XML_RPC_Value(chunk_split(base64_encode($image)),'base64');
$imageName = new XML_RPC_Value($Myfile_name, "string");
$Params = new XML_RPC_Value(array('bits' => $image64, 'name' => $imageName), 'struct');
$message = new XML_RPC_Message('metaWeblog.newMediaObject', array($blogid, $username, $password, $Params));
$result = $c->send($message);
$filepath = XML_RPC_decode($result->value());
echo $filepath{'url'};
exit();
}
?>
<html><body>
<form method="post" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">
<input type="file" name="Myfile">
<input type="submit" value="SEND">
</form>
</body></html>
08928902006/02/22(水) 18:51:03ID:???
すみません、900ではなく890でした。
0893nobodyさん2006/02/22(水) 19:32:14ID:???
PHP勉強始めて2週間の駆け出しです。
みなさんにお聞きしたいのですが、どうやってプログラム勉強されたのですか?
PHPが初のプログラム言語(って言っていいのかな?)なんで戸惑ってます。
ひたすらサンプルとか拾ってきて勉強したりするんでしょうか?

○日で覚える系の参考書を一通り手打ちして、連想配列ってのがあるんだぁ
など知ったレベルです。
デザイナーなので、職業プログラマになるつもりは無いのですが
最近PHPに触れる機会があり、興味を持ったので勉強しています。

助言を頂けたらうれしいです。
よろしくお願いします。
0894nobodyさん2006/02/22(水) 19:48:54ID:???
>>893
ローカルに環境を作り、自分で書いてみるのが一番です。

サンプルを真似して書いてみるのもいい勉強になると思います。
(簡単なチャットや、レス無掲示板などいい勉強になると思います)
慣れてきたら、ただ書き写すだけではなく、
値を変えてみるとか、自分なりに色々いじってみるといいでしょう。

サンプルでわからない単語・関数が出てきたら、
公式のマニュアルを参照するのが良いでしょう。
それを読んでわからなければここで質問すればいいだけです。

サンプルに慣れてきたならば、
今度は一から自分で作ってみたいと思うようになります(多分)
簡単なプログラム(チャットとかでなくてもいいと思います)を
作れるようになる頃には、
自分なりの勉強方法が確立できていると思いますよ。

環境だけはローカルに作りましょう。
(Googleで検索するとインストールの方法がいろいろ出てきます)
レンタルサーバーなどで実験するのはただの迷惑なので。

以上、個人的な見解でした。
(個人差はあると思います)
0895nobodyさん2006/02/22(水) 19:58:03ID:???
>>894
ありがとうございます。
一応ローカルにapache入れて環境は作ってあります。
いろんな所からサンプル拾って真似てみます。
とりあえずチャットに決めました。

また書込み機会があればよろしくお願いします。
それでは失礼します。
0896nobodyさん2006/02/22(水) 20:04:00ID:???
KENT WEBのYYBBSだっけ?あれのソース酷かったよなぁ。
今のはどうか知らんけど。
0897nobodyさん2006/02/22(水) 20:05:37ID:???
>>893
書き込もうとしたら、同じようなことを>>894に先に言われたw
08988902006/02/22(水) 20:35:09ID:???
解決しました。
ファイルサイズが増えた時点で気付くべきでしたが、
バイナリエディタで覗いてみたところデコードされていませんでした。
MT に Base64.pm が無かったので、extlib/MIME に
Base64.pm(MIME-Base64-2.23)を追加し、以下にソースを修正。

$image64 = new XML_RPC_Value(chunk_split(base64_encode($image)),'base64');


$image64 = new XML_RPC_Value($image,'base64');


MIME-Base64
http://www.perl.com/CPAN/modules/by-authors/id/GAAS/

どうみてもPHPと関係ないスレ汚しです。
本当にありがとうございました。
0899nobodyさん2006/02/22(水) 20:37:12ID:???
スレ違いだが、報告乙
0900nobodyさん2006/02/22(水) 21:26:13ID:???
Webアプリのボタンにショートカットキーを割り当てたいのですが、
AccessKeyってファンクションキー(F1とか)は設定できないのでしょうか。
別にAccessKeyでなくてもよいのですが、他に方法を思いつかないので・・。
0901nobodyさん2006/02/22(水) 21:42:08ID:???
>>900
このスレなんだか知ってる?
09029002006/02/22(水) 21:44:40ID:???
今知りましたw
サヨウナラ・・
0903nobodyさん2006/02/22(水) 22:00:00ID:???
function HOGE($str) {
print htmlspecialchars($str);
}

HOGE("htmlspecialchars+printしたい文字");
0904nobodyさん2006/02/22(水) 23:15:23ID:???
>>903
それだと
HOGE('<strong>ここは<強調>したいんです</strong>');
はダメだからわけるしか無い
0905nobodyさん2006/02/23(木) 01:36:14ID:???
レッツPHPは日本での普及のきっかけにもなったんだから、
そこらへんは評価してあげないと。
今となっては穴だらけのスクリプトでも、
当時は感動したもんだ。
0906nobodyさん2006/02/23(木) 02:01:43ID:???
phpで作成したhoge.dataファイルに再度書き込みをしたい時にパーミッションの関係で書き込みできません。
chmodコマンドは、借りている鯖側の処理で禁止されているのかな?
ファイル生成段階で属性って決めて保存ってできるか教えてください。
0907nobodyさん2006/02/23(木) 03:07:02ID:???
>>906
普通、PHPで出力したものは自分自身がそのオーナーなんだから
特にパーミッションなんて変更しなくても再読み書きできるもんだが、
そこのサーバーで何かおかしな真似されてるんじゃないか?

で、chmod以外でパーミッション設定は無理かと。
0908nobodyさん2006/02/23(木) 10:25:22ID:???
定数を""で囲った中で出力する場合どうしたらいいのでしょうか?
マニュアル見ても
define ("CONSTANT", "Hello");
echo CONSTANT; // "Hello"を出力します。
としか書いてないんですけど、
echo CONSTANT World!!;
といれたらエラーが出ますし、
echo "CONSTANT World!!";としたらそのままの文字列が出力されてしまいます。
変数の場合は、
echo $a;でもecho "$a";でもecho "{$a}";とかでも出力されますよね?
定数もecho "{CONSTANT}"みたいに何かで囲むことで、
出力されるようになるということはないですか?
それともこういう使い方の場合は変数を使えということでしょうか?
0909nobodyさん2006/02/23(木) 10:44:59ID:???
>>908
定数を "" で括って使う事自体定数の使い方がおかしい。
定数はその内容を意識しないで使うモンだ。

fopen( "example.dat", LOCK_EX ); の LOCK_EX みたいに普通は引数に使うだけ。
ライブラリや組み込み関数で使う定数の内容なんか意識しないで使うだろ?

そういう使い方をするものは変数が適している。
09109092006/02/23(木) 10:48:11ID:???
ちょっと例に出した fopen 関数の引数が激しく間違っているが
flock( $resource, LOCK_EX ) と思ってくれ
0911nobodyさん2006/02/23(木) 10:52:40ID:???
echo CONSTANT."World!!";
0912nobodyさん2006/02/23(木) 11:01:07ID:HLa5KG/+
mb_ereg_replaceで
{ ? ? ? ( ) などを置換したくて[{???()]と書いてもパースエラー
[\{???\(\)]と書いても同様にパースエラーがでます。
Parse error: parse error, unexpected '[', expecting ')'

たぶん ) がエスケープできていないと思うのですがどうすれば ) を
エスケープできるのでしょうか。
0913nobodyさん2006/02/23(木) 11:02:30ID:HLa5KG/+
うあ、特殊な文字が?に化けてる。
そこは気にしないでください。
レス数が900を超えています。1000を超えると表示できなくなるよ。