【PHP】下らねぇ質問はここに書き込みやがれpart16
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2006/02/05(日) 22:35:34ID:sf8bx52Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【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
0838nobodyさん
2006/02/22(水) 10:55:15ID:???個人的に、話の最初から「安く」と言ってくる仕事で
クライアントが期待する金額が妥当な価格であった試しがない。
話の中で優先度の高い条件のひとつに、
予算(安く)が出てくる事は当たり前だが。
0839nobodyさん
2006/02/22(水) 11:02:10ID:???SOHO系のスレッドにでもいって、
そこで頼んでみたほうがいいと思うよ。
仕事がない暇だーって言ってる人もいたし。
あとそういった用途にはちょっとPHPは不向きかもね。
0840nobodyさん
2006/02/22(水) 11:07:33ID:???システム参考とのサイトがなぁ…ネタッぽ杉
「求人情報サイト」とかいって作ったら、
いつの間にかカスタマイズされて
出会い系サイトに流用されそうなオカン
>>839
「そういった用途」って何?
0841nobodyさん
2006/02/22(水) 11:26:07ID:???PHPは処理速度が遅いから、
たくさんのリクエストを同時に抱えると極端に遅くなる可能性がある。
っていうこと。
0843nobodyさん
2006/02/22(水) 11:31:04ID:???0844nobodyさん
2006/02/22(水) 11:31:17ID:???0846nobodyさん
2006/02/22(水) 11:41:56ID:???処理速度にこだわるだけならCとかもいいんでね?
インタプリタだからPHPの処理が遅いのは仕方がない。
ってここなんのスレだっけ?
0847nobodyさん
2006/02/22(水) 11:42:28ID:???epsってただのテキストファイルじゃなかったっけ?
epsを出力するエンジンがあるのか?って質問かもしれんが…
0850nobodyさん
2006/02/22(水) 11:49:46ID:???<?for(〜){?>
<tr>
<td>〜</td>
<?for(〜){
処理a?>
<td></td>
<?}?>
</tr>
<?}?>
とか書いているのですがもっと綺麗に書く方法はありますか?
で、こういう場合上みたいにtdの頭をそろえた方がいいのか?
<td>と<?の頭をそろえた方がどちらが良いのでしょうか?
0852nobodyさん
2006/02/22(水) 11:55:37ID:???0854nobodyさん
2006/02/22(水) 12:02:42ID:???<table>
<?php
for (;;) {
echo "<tr><td>" . 〜 . "</td>";
for (;;) {
処理a
echo "<td></td>";
}
echo "</tr>";
}
?>
</table>
そもそもそこまで入れ子にしない方がいい。
だけど気になるので分かる人俺にもついでにおせーて。
0855nobodyさん
2006/02/22(水) 12:03:53ID:???中間コードコンパイル後の実行処理もJavaやPerlに比べて結構遅いよ。
1回目がめちゃ遅いんであって、2回目以降でも決して速くはない。
0856nobodyさん
2006/02/22(水) 12:09:48ID:???デザイナーと分業してるんなら、>>852 じゃ無いが、テンプレートエンジン使えば?
Flexy とかもあるぞ。
0857nobodyさん
2006/02/22(水) 12:20:58ID:???これが俺のデザインなんです。
って言ってみようぜ。
俺はお前のデザイン分からんように、お前も俺の知的フィールドは理解できんだろ。って
クビは覚悟だな。
0859850
2006/02/22(水) 12:53:19ID:???>>856 テンプレートエンジンか・・使ったことないんでちょっと調べてみます。
>>857 それじゃ進歩しないじゃんw
0860nobodyさん
2006/02/22(水) 13:10:35ID:???extractを使うと初期化しないで使っている変数がある場合や、
extract以前に処理した変数の値が任意に設定できるため、
XSSやSQLインジェクションなどわかりやすい物だけではなく、
もっとわかりにくい論理的破綻すら招く。
デバッグはしにくいし、どこでどう転んで脆弱性を生み出すか検討するのも大変になる。
ならば、extractを乱用するのは避けるべきであるってことだ。
見通しの悪いコードは書かないのは基本。
0861nobodyさん
2006/02/22(水) 13:25:58ID:???こっちが進歩するだけが世界じゃない、
向こうが進歩する事もまた世界の一つだ。
>>860
昔から気になってたんだけど、Let's PHP
あれはどうなん?
extract使ってるけど。
0864nobodyさん
2006/02/22(水) 13:55:20ID:???> >>861
> 諸悪の根元
(・ω・;)ω・;)・;) )...マヂ??
レッツPHP!を参考に、つい先日から勉強を始めたばかりなのですが・・・。
ええextractも「これが基本かっ!」てな感じで使ってました・・・。
0865nobodyさん
2006/02/22(水) 14:05:25ID:YzTdS2ndwindows 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を表示させるにはどうすればよいのでしょうか?
今までは表示用の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:???スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1140027592/145
0868nobodyさん
2006/02/22(水) 14:13:45ID:???あそこは凄いね。ある意味勉強になるよ。
SQLインジェクションとかがやり放題なスクリプトとか放置されてるし
(確かここで指摘されて知ったんだが)
0869nobodyさん
2006/02/22(水) 14:16:36ID:???スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1118799352/
0870nobodyさん
2006/02/22(水) 16:51:33ID:25ErppZdprint関数内の変数名の全てを htmlspecialchars($hoge) のように変更すれば良いのですが、
それだとコードが汚くなってしまうので・・・。
よろしくお願いします。
0871nobodyさん
2006/02/22(水) 16:54:39ID:???それで正常に動作しているのですが、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:???ソース内の「print」を一括置換で、
「$tempdata .=」に変えておいて、
処理の最後で
print htmlspecialchars($tempdata);
0873nobodyさん
2006/02/22(水) 17:02:31ID:???ob_start()で出力内容を全部バッファに格納しちゃって
プログラムの最後でprint htmlspecialchars(ob_get_contents())ってのはどう?
0874nobodyさん
2006/02/22(水) 17:03:03ID:???print htmlspecialchars($str);
}
とか作って
hoge($str)で読み込ますのは駄目?
0875nobodyさん
2006/02/22(水) 17:10:54ID:???高木さんも、あのサイト批判したらいいのに。
個人サイトだけど、公開してGoogleランクが非常に高いのは責任あるだろって。
(責任云々は無茶だけど。効果の問題として)
0876nobodyさん
2006/02/22(水) 17:14:56ID:???print $a,$b,$c; とか,でパラメータが渡されてるパターンの話だから、
それだと無理。,→.を追加ってのもスマートじゃないので、無しにしようよ
0877nobodyさん
2006/02/22(水) 17:17:52ID:???お前は、>>870か?それともエスパーか?
>>870のどこに
>print $a,$b,$c; とか,でパラメータが渡されてるパターンの話
なんて記述があるんだ?
0879870
2006/02/22(水) 17:22:39ID:???>>876は私ではありません。
条件が不足していて申し訳ありませんでした。
「print関数内の変数を全て htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」ではなく、
「print関数内の変数全てのみを htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」です。
つまり、
print "<strong>貴方のIPアドレスは" . $hoge . "です。</strong>"; となっている場合に
変数以外の部分の <strong> はエスケープせずに、変数である $hoge をエスケープしたいと考えています。
0881nobodyさん
2006/02/22(水) 17:31:04ID:???make clean は
make時に作成された一時ファイルの削除でしょ、全然違うと思うけど。
# make deinstall
# make uninstall
などが提供されている場合もあるけど、phpだとそれがない。
従って手動でファイル消すしかないっしょ
0882nobodyさん
2006/02/22(水) 17:57:21ID:???知らないだけかもしれんし、突っ込みどころ大杉で
やらないだけかもね。
>SQLインジェクションとかがやり放題なスクリプト
なんて、たいていの入門書がそうなってるし。
0883nobodyさん
2006/02/22(水) 18:20:14ID:???PHPのレッツPHP
0884nobodyさん
2006/02/22(水) 18:21:19ID:???0885nobodyさん
2006/02/22(水) 18:21:30ID:???0886nobodyさん
2006/02/22(水) 18:25:01ID:???今となってはかなり古くて、汚いコードに見えるね・・・。
0888nobodyさん
2006/02/22(水) 18:29:24ID:???よくあるように、
「既にその役目を終えたと判断し、閉鎖させていただきます」
みたいな潔い幕引き出来んもんかね・・・
0890900
2006/02/22(水) 18:49:20ID:???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");
0891900
2006/02/22(水) 18:50:02ID:???$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>
0892890
2006/02/22(水) 18:51:03ID:???0893nobodyさん
2006/02/22(水) 19:32:14ID:???みなさんにお聞きしたいのですが、どうやってプログラム勉強されたのですか?
PHPが初のプログラム言語(って言っていいのかな?)なんで戸惑ってます。
ひたすらサンプルとか拾ってきて勉強したりするんでしょうか?
○日で覚える系の参考書を一通り手打ちして、連想配列ってのがあるんだぁ
など知ったレベルです。
デザイナーなので、職業プログラマになるつもりは無いのですが
最近PHPに触れる機会があり、興味を持ったので勉強しています。
助言を頂けたらうれしいです。
よろしくお願いします。
0894nobodyさん
2006/02/22(水) 19:48:54ID:???ローカルに環境を作り、自分で書いてみるのが一番です。
サンプルを真似して書いてみるのもいい勉強になると思います。
(簡単なチャットや、レス無掲示板などいい勉強になると思います)
慣れてきたら、ただ書き写すだけではなく、
値を変えてみるとか、自分なりに色々いじってみるといいでしょう。
サンプルでわからない単語・関数が出てきたら、
公式のマニュアルを参照するのが良いでしょう。
それを読んでわからなければここで質問すればいいだけです。
サンプルに慣れてきたならば、
今度は一から自分で作ってみたいと思うようになります(多分)
簡単なプログラム(チャットとかでなくてもいいと思います)を
作れるようになる頃には、
自分なりの勉強方法が確立できていると思いますよ。
環境だけはローカルに作りましょう。
(Googleで検索するとインストールの方法がいろいろ出てきます)
レンタルサーバーなどで実験するのはただの迷惑なので。
以上、個人的な見解でした。
(個人差はあると思います)
0895nobodyさん
2006/02/22(水) 19:58:03ID:???ありがとうございます。
一応ローカルにapache入れて環境は作ってあります。
いろんな所からサンプル拾って真似てみます。
とりあえずチャットに決めました。
また書込み機会があればよろしくお願いします。
それでは失礼します。
0896nobodyさん
2006/02/22(水) 20:04:00ID:???今のはどうか知らんけど。
0898890
2006/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:???AccessKeyってファンクションキー(F1とか)は設定できないのでしょうか。
別にAccessKeyでなくてもよいのですが、他に方法を思いつかないので・・。
0902900
2006/02/22(水) 21:44:40ID:???サヨウナラ・・
0903nobodyさん
2006/02/22(水) 22:00:00ID:???print htmlspecialchars($str);
}
HOGE("htmlspecialchars+printしたい文字");
0904nobodyさん
2006/02/22(水) 23:15:23ID:???それだと
HOGE('<strong>ここは<強調>したいんです</strong>');
はダメだからわけるしか無い
0905nobodyさん
2006/02/23(木) 01:36:14ID:???そこらへんは評価してあげないと。
今となっては穴だらけのスクリプトでも、
当時は感動したもんだ。
0906nobodyさん
2006/02/23(木) 02:01:43ID:???chmodコマンドは、借りている鯖側の処理で禁止されているのかな?
ファイル生成段階で属性って決めて保存ってできるか教えてください。
0907nobodyさん
2006/02/23(木) 03:07:02ID:???普通、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:???定数を "" で括って使う事自体定数の使い方がおかしい。
定数はその内容を意識しないで使うモンだ。
fopen( "example.dat", LOCK_EX ); の LOCK_EX みたいに普通は引数に使うだけ。
ライブラリや組み込み関数で使う定数の内容なんか意識しないで使うだろ?
そういう使い方をするものは変数が適している。
0910909
2006/02/23(木) 10:48:11ID:???flock( $resource, LOCK_EX ) と思ってくれ
0911nobodyさん
2006/02/23(木) 10:52:40ID:???0912nobodyさん
2006/02/23(木) 11:01:07ID:HLa5KG/+{ ? ? ? ( ) などを置換したくて[{???()]と書いてもパースエラー
[\{???\(\)]と書いても同様にパースエラーがでます。
Parse error: parse error, unexpected '[', expecting ')'
たぶん ) がエスケープできていないと思うのですがどうすれば ) を
エスケープできるのでしょうか。
0913nobodyさん
2006/02/23(木) 11:02:30ID:HLa5KG/+そこは気にしないでください。
0917nobodyさん
2006/02/23(木) 13:22:18ID:???phpの他のスレを関連として書いとくとかFAQとか
0919nobodyさん
2006/02/23(木) 14:11:48ID:HLa5KG/+だめみたいです。
勘違いしているだけかもしれませんが、
$text = '(abc)'
$text = mb_ereg_replace("[\(\)]*","",$text));
というふうに原因追及のため簡単に書き直して試してみましたが
やっぱりパースエラーが出ちゃいます。
parse error, unexpected ')'
var_dump($text)でabcと出したいのですが、
どこを間違えているのでしょうか。
PHP Version 4.4.1です。
0922nobodyさん
2006/02/23(木) 14:36:59ID:???助かりました、マジでありがとうございます。
こんなことに何時間も悩んで、
なんかすごくバカらしくて涙が出てきました。
0923nobodyさん
2006/02/23(木) 15:30:20ID:???mb_ereg_replace errorとか関数名がきちんと出てくるしな。
>>922
そうやって成長してくもんさ。
オメデトウ。
0926nobodyさん
2006/02/23(木) 16:08:03ID:???自ホストを取得するには
どうしたらよいでしょうか?
0927nobodyさん
2006/02/23(木) 16:13:05ID:???PHPeclipse
CVSとエディタしか使ってないから使いこなせてるとは言い難いんだけどね('A`)
ロースペックマシンだと動作の重さで涙が増えるかも。
統合開発環境スレだともっといろいろ教えてくれるんでないでしょか。
0928nobodyさん
2006/02/23(木) 16:49:23ID:???個人的にあるとうれしいのはHTMLのタグ間ジャンプ。
閉じタグを確認するというより編集範囲を探し出すのに重宝するって感じだけどね。
0929nobodyさん
2006/02/23(木) 17:00:38ID:???0931nobodyさん
2006/02/23(木) 17:12:12ID:???<form action="index.php">
<input type="text" name="moji" size="40" value="<?echo "<a href="database.cgi?keys2=" . $moji . "">" . $moji . "</a>" ?>">
<input type=submit value=sub>
</form>
こんな感じでフォームに文字を入れてsubmitすると
$moji の部分が置き換わるようにしてるんですが、
これを
<input type="text" name="moji" size="40" value="<?echo "<a href="database.cgi?keys2=" . $moji . "">" . $moji2 . "</a>" ?>">
として、
「$moji」は入力した通りの文字, 「$moji2」は全角カナがある場合は半角カナに置き換えて表示するようにしたいのですが。
0932nobodyさん
2006/02/23(木) 17:17:40ID:???<?echo "&lt;A href=&quot;database.cgi?keys2=" . $moji . "&quot;&gt;" . $moji . "&lt;/A&gt;" ?>">
↓
<?echo "&lt;A href=&quot;database.cgi?keys2=" . $moji . "&quot;&gt;" . $moji2 . "&lt;/A&gt;" ?>">
0933nobodyさん
2006/02/23(木) 17:22:24ID:???まぁカタカナなんて50種類ぐらいしかないんだから、
悩むより全通りやったほうがはやいとおもう^^;
0934nobodyさん
2006/02/23(木) 17:22:32ID:???preg_replaceで地道に
$zenkaku = array ("ア", "イ", "ウ"...);
$hankaku = array ("ア", "イ", "ウ"...);
とやる。
0937nobodyさん
2006/02/23(木) 18:00:27ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。