【PHP】くだらねぇ質問はここに書き込みやがれpart5
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/04/30(土) 00:12:53ID:OJfc9xBuここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
0376nobodyさん
2005/05/14(土) 22:45:42ID:???処理結果を気にしない場合は、プログラム実行関数 + 各OSでのバックグラウンド実行。
処理結果を気にする(シグナルをどうにかする)場合は、プロセス制御関数。
>>375
mod_rewriteやPATH_INFO
0378nobodyさん
2005/05/14(土) 23:01:48ID:???おおぅ。。。なるほど、「l50」も引数!? 今までディレクトリ名だと思ってた。
でもどうやんだろ?
mod_rewriteはちょっとググったけど相当難しそうだ。。。
サーバーに関する知識がないと実現できなそうね。
あと、これってphpと直接関係ない話。だよね?
0379nobodyさん
2005/05/15(日) 00:27:28ID:???環境変数で取得。
0380nobodyさん
2005/05/15(日) 04:13:16ID:???PHP4とどう違うのかわからないんですけど、PHP4の方にしといた方がよさそうですか
0381nobodyさん
2005/05/15(日) 04:19:22ID:???369も書いてるように、普通の環境で引数が「?」抜きだと
PATH_INFOでも引数の部分がディレクトリ名だとみなされるよね?
たとえば「http://hoge.com/?引数」ならいいけど、
「http://hoge.com/引数」だと最後にスラッシュが足されて
「http://hoge.com/引数/(index.htm)」って感じになるよね。
0382nobodyさん
2005/05/15(日) 08:27:34ID:???http://hoge.com/で呼び出されるindex.htmlを
.htaccessでindex.phpに指定する。
index.phpでPATH_INFOを取得し、URL以降部分を
引数として処理すればいい。
0383nobodyさん
2005/05/15(日) 09:58:55ID:???PHP5とPHP4ではオブジェクト指向の書き方が違う
まあネットで検索したときの情報量はPHP4の方が多いけど
迷うなら4の方が無難
0384nobodyさん
2005/05/15(日) 12:06:12ID:???0385nobodyさん
2005/05/15(日) 12:13:59ID:???0386nobodyさん
2005/05/15(日) 12:34:05ID:???0387nobodyさん
2005/05/15(日) 12:54:17ID:???ごめんなさい
0388nobodyさん
2005/05/15(日) 14:51:14ID:???0389nobodyさん
2005/05/15(日) 15:02:44ID:???隣の浮江お姉さんが優しく教えてくれました。
0390nobodyさん
2005/05/15(日) 19:17:15ID:SkLBQSTLa.phpだと
session_name("abcdef");
session_start();
$_SESSION['test'] = 'abcdef';
b.phpだと
session_name("123456");
session_start();
$_SESSION['test'] = '123456';
で、$_SESSION['test']がどちらかのデータに上書きされてしまいます。
どうすれば同一サーバ内で2つのセッションを保持できるのでしょうか?
0391nobodyさん
2005/05/15(日) 19:24:38ID:???0392390
2005/05/15(日) 19:56:40ID:SkLBQSTL僕の勉強不足でした orz
えーと、ということはセッション(session_start())で、複数のスクリプトで
$_SESSION['test']の変数を2種類使い分けるのは無理ということですか?
0393nobodyさん
2005/05/15(日) 20:17:01ID:???複数のスクリプトの間で引き継ぐか、引き継がないか
0394nobodyさん
2005/05/15(日) 20:23:43ID:???そういうのはしたことないけど、多分標準のセッション関数じゃ出来ないんじゃないの。
1つのセッションを名前で分けて使うか($_SESSION['sess1'][test] $_SESSION['sess2'][test)、
pearのライブラリにそういうのがないか探すか、自前でセッションを実装するか。
0395nobodyさん
2005/05/15(日) 22:14:41ID:???"hoge2.com/"を得るためにPATH_INFOでやってみましたが
index.phpで取得しようとすると↓のように"/"を余分につけないと取得できません
http://hoge.com//hoge2.com/
なにか良い案があれば教えてください
0396390
2005/05/15(日) 22:32:13ID:???にしたら出来たっぽいです。
0397nobodyさん
2005/05/15(日) 22:33:51ID:???WindowsXP上でMySQLとApacheを動かそうと思っているのですが
日本語の取り扱いは、
php.iniの
default_charset = "Shift_JIS"
mbstring.language = Japanese
mbstring.func_overload = 7
extension=php_mbstring.dll
でよろしいんでしょうか?
0398nobodyさん
2005/05/15(日) 23:13:48ID:dziYZJyDa -> b
c -> d
e -> f
のように複数の変換はできないのでしょうか。
…正規表現はマッチした/しないの2通りしかないから無理かなぁ
0399nobodyさん
2005/05/15(日) 23:19:35ID:???ereg_replaceを使わずにstr_replaceで。
$arr1 = array('a','c','e');
$arr2 = array('b','d','f');
echo str_replace ($arr1,$arr2, $string);
0401398
2005/05/15(日) 23:37:30ID:dziYZJyDありがとうございます
0402nobodyさん
2005/05/15(日) 23:52:16ID:???preg_replace() のところに配列の例があるよ
http://jp2.php.net/manual/ja/function.preg-replace.php
0404nobodyさん
2005/05/16(月) 00:16:27ID:???0406nobodyさん
2005/05/16(月) 00:55:18ID:???どうしたらよいでしょうか
0407nobodyさん
2005/05/16(月) 01:09:56ID:1b4tK92/どっちが推奨なんですかね?
0408nobodyさん
2005/05/16(月) 01:14:25ID:???0409nobodyさん
2005/05/16(月) 01:27:27ID:???どこまで自分でできたのか、ちょいと書いてごらん。
>>407
困った時のハンガリアン。
ム板に、クラス名・変数名に迷ったら書き込むスレもあり。
http://pc8.2ch.net/test/read.cgi/tech/1109330204/
0410406
2005/05/16(月) 01:37:39ID:???<BODY>foreach($text as $str){ echo $text; }</BODY>
みたいな感じで出力してて
echo文の後ろで flush(); 読んでみたけどダメでした
$textの前に、無駄なスペース256バイトとか入れてもダメでした
0411nobodyさん
2005/05/16(月) 01:37:42ID:???助言ください
0412406
2005/05/16(月) 01:39:24ID:???ここを読んでやっているのですが
悪いのがブラウザなのかApacheなのかPHPなのか
切り分けが出来ませんです
切り分ける方法のヒントをください
0415406
2005/05/16(月) 02:12:24ID:???ob_start()とかつかってるとだめみたいでした
<?
mb_http_output('SJIS');
ob_start('mb_output_handler');
$str=array("あ","い","う");
foreach($str as $text){
echo $text;
ob_end_flush();
sleep(5);
ob_start();
}
?>
あいう がひとつずつ5秒おきに出力されるようにしたいです
0416nobodyさん
2005/05/16(月) 02:38:24ID:???JavaScriptかFLASHでどうぞ。
0418nobodyさん
2005/05/16(月) 04:26:22ID:???0419406
2005/05/16(月) 04:33:11ID:???IE,Opera,Firefoxで確認したのでたぶん大丈夫だと思います
0420nobodyさん
2005/05/16(月) 06:24:36ID:Mf9AQ7/Cどんな感じなんでしょう
0421nobodyさん
2005/05/16(月) 07:35:21ID:???0422421
2005/05/16(月) 07:42:35ID:???0423nobodyさん
2005/05/16(月) 07:43:12ID:???0424nobodyさん
2005/05/16(月) 08:18:07ID:WsRbPHFD例えば、abc.phpってファイルが20kb以上になったときに異常な動きになるとか。
DB操作のところのコードは変更していないにも関わらず、
abc.phpのサイズが25kb過ぎたあたりから、DB操作のところでエラーが起きるようになりました。
試しにファイルを分けてみたら、正しく動作するようになりました。
ひとつのファイルで済ませたいのですが、対処法があれば教えてください。
環境:Apache2、PHP5、Mysql3.23.58、WinXP
0425nobodyさん
2005/05/16(月) 10:10:00ID:???$result = mysql_query("SELECT フィールド FROM テーブル名 WHERE フィールド = $_POST['hogehoge']";
な感じで、$_POSTを使うと何も結果が出てきません。
SQL文で使う場合は、一度変数に入れなければならないのでしょうか?
0426nobodyさん
2005/05/16(月) 10:38:20ID:???0428425
2005/05/16(月) 10:57:41ID:???POSTで取ってきたデータを変数に入れて、
$hogehoge = $_POST["hogehoge"];
$result = mysql_query("SELECT フィールド FROM テーブル名 WHERE フィールド = $hogehoge)";
しか頭に浮かびません。
これでもダメなコードなのでしょうか?
0429nobodyさん
2005/05/16(月) 11:08:32ID:???0430nobodyさん
2005/05/16(月) 11:16:02ID:???とりあえず以下で。
mysql_query("SELECT フィールド FROM テーブル名 WHERE フィールド = " . $_POST['hogehoge']);
>>427 が指摘しているように、$_POSTや$_GETみたいに外部からくる値をチェックせずに、そのまま
使用するのはやめたほうがいい。
SELECTでデータベースが破壊できるかどうかはさておき、外部から来る値は「汚れている」可能性を
考えておかないと危険。
SQLインジェクションあたいりでググってみそ。
0431nobodyさん
2005/05/16(月) 11:17:27ID:???$result = mysql_query($query, $this->Connect) or die ("error:$query");
ってやったらどうだぼけぇ
0432425
2005/05/16(月) 11:22:44ID:???>>430
・・・ググって見て寒気がしました。
こんなやり方があるのですね。
掲示板等にタグ防御があるように、SQLを扱うフォームデータは、
厳重に不要なものを取り除いたり、注意深く扱わなくてはだめなのですね。
勉強になりました、ありがとうございます。
0433nobodyさん
2005/05/16(月) 12:21:00ID:???0435nobodyさん
2005/05/16(月) 15:05:55ID:???データを受け取ったブラウザはそのHTML部をどうやってパースしているか。を考えればおのずと分かること。
0436nobodyさん
2005/05/16(月) 15:41:23ID:2P24wsbpアドバイスあればください。
0438nobodyさん
2005/05/16(月) 15:49:38ID:2P24wsbp0439nobodyさん
2005/05/16(月) 16:11:48ID:???PHPやJavaよりもまず社会人のマナーを学んでこい。
0440nobodyさん
2005/05/16(月) 17:20:52ID:2P24wsbp>>わかる人を雇う。まともな請負に頼む。自分で努力する。
他いろいろ…
アドバイスありがとうございます。ですが、JavaとPHPという側面では
どんなもんでしょうか?
0441nobodyさん
2005/05/16(月) 17:41:38ID:???真面目レスすると、言語だけではなんともいえない。
まずは、そのシステムの規模。
お金はどれぐらい掛けられるのか。(サーバも含む)
周囲(社内や良く使っている外注)などにJavaやPHPの技術者がどれだけいるか。
などなど、色々な要素が絡みます。
例えば客が「絶対にPHP」とか「絶対にJava」と言えば、それで開発するしかないのです。
言語という側面だけで見た場合、中規模までであればどちらでもOK。
小規模ならJavaを使うまでも無いのでPHP。(別にJavaでもいいけど)
大規模ならJava。PHPの技術者が多く、技術力も高いならPHPでもOK。
結局の所、言語レベルでは判断がつきません。
周囲の技術者が多い方。
担当者が得意な方。
そういったもので全然OKです。
技術者が多いとか得意というのはそれだけで強みです。
0442437
2005/05/16(月) 17:59:07ID:???>>437は、物凄いマジレスだったんだけどね。
PHPとJavaの、特徴すら理解できてないんだから、自分を磨くか、人雇うかしかないでしょ。
しかも、その自分を磨くってのを2chに頼るってのは、プロとして確実に問題だぜ。
例えば、上司にどう報告するんだい?
2chで、こう言われたから、PHPでやることにします。とかか?冗談だろ。
付け焼刃じゃなく、実力をつけるしかないんだぞ。
>>441が親切に言ってくれてるが、これも一般論にしかすぎない。
実務になれば、自ずと異なった視点が必要になるんだが、それすら理解できてないんだろ?
こんなとこで時間つぶしてる暇に、やることあるだろ。
0443nobodyさん
2005/05/16(月) 19:20:19ID:???おまけにイイ奴だ。
0444nobodyさん
2005/05/16(月) 23:33:53ID:???http://oshiete1.goo.ne.jp/kotaeru.php3?q=1349669
こちらの方法を参考に
<?php
$file = "http://heeha.ws/cgi-bin/index.html";
$fp = @fopen($file,"r");
print "$fp";
?>
としてみましたが読み込み続けてしまって表示できませんでした・・
こんなレベルですいません!
0445nobodyさん
2005/05/16(月) 23:34:50ID:???0446444
2005/05/16(月) 23:40:45ID:???$fp = @fopen($file,"r");
fpassthru($fp);
で出来ましたなんか文字化けしてますが・・
0447nobodyさん
2005/05/16(月) 23:45:09ID:???というかやはり表示結果を取得したほうが楽そうですね・・。
0448nobodyさん
2005/05/16(月) 23:53:07ID:???等を変えてみるなど。
0449nobodyさん
2005/05/17(火) 00:27:04ID:???を取得するhtmlの文字エンコードに合わせたら表示できました。
ありがとうございます!
$encoding = mb_internal_encoding(shift_jis);
$file = "http://www.f7.dion.ne.jp/~moorend/news/2005040201.html";
$fp = @fopen($file,"r");
fpassthru($fp);
としたらいい感じにはなったんですが
何故か
Notice: Use of undefined constant shift_jis - assumed 'shift_jis' in /home/ryota/httpd/php_work/first.php on line 6
と怒られます。
なにかセットで定義する必要があるのでしょうか。
0450nobodyさん
2005/05/17(火) 00:38:40ID:???注意: 未定義の定数 shift_jis が使われています。'shift_jis' だと想定します。
mb_internal_encodingの引数は、文字列 あるいは 定義済みの定数。
0451nobodyさん
2005/05/17(火) 00:45:53ID:???0452nobodyさん
2005/05/17(火) 00:59:34ID:???ありがとうございます
なぜか
$encoding = mb_internal_encoding(shift_jis);
でも怒られながらも表示されていたのが不可解でした。
shift_jisを消すと文字エンコードがおかしくてまともに表示出来なかったです。
また
("shift_jis")
( "SJIS" )
どちらでもエラーを吐かずに表示できました。
0453nobodyさん
2005/05/17(火) 01:13:02ID:???マニュアルの定数の部分にも書いてありますが、
> 未定義の定数を使用した場合、ちょうどstringとしてコールしたかのように(CONSTANT vs "CONSTANT")、
> PHPはその定数自体の名前を使用したと仮定します。 この際、E_NOTICE が発生します。
今回の場合は、定数shift_jisが存在しなかったので文字列(string)'shift_jis'を指定したと仮定されます。
notice:の出力部分は、上記の事を英語で簡単に書いてあります。
ほんとうにそうなのかを確認するには、$encoding = mb_internal〜 の前後で
print mb_internal_encoding(); を実行してみれば分かるかと。
0454nobodyさん
2005/05/17(火) 01:35:52ID:???未定義のものを使ったので、文字列を勝手に入れてくれたのかな・・
まだ私には難しい表現なのでゆっくり噛み砕いてみます。
指定した語句を含む行を抜き出す関数というものはあるでしょうか?
出来ればそのHTMLから該当する語句を含む行を全て抜き出したいのです。
またはある語句からある語句の範囲を削除するというのでも解決出来そうです。
とにかく無駄な部分のほうが多いので・・
0455nobodyさん
2005/05/17(火) 02:42:54ID:???色々とありがとうございました
<(_ _)>
0456nobodyさん
2005/05/17(火) 07:36:39ID:???そこでPHPは、おばかなプログラマが文字列に引用符をつけ忘れたんだなと判断して文字列として扱ってくれる
0457nobodyさん
2005/05/17(火) 07:42:05ID:Ph4M31UZ0460軟式PHP
2005/05/17(火) 10:07:12ID:???リファレンス本て勿体ない。PHPマニュアルで十分やろ。
かなり分かりやすいと思うよ>PHPのマニュアル
本を買うならもっと別の本にしたほうがいいと思われ。
0461nobodyさん
2005/05/17(火) 11:33:51ID:wrsgSSonfor($ii=0;$ii<5;$ii++){
}
}
PHPに限ったことではないのですが、ループが2重になる時、
内側のインクリメント変数はなんて名前にするのがいいですか?
0462軟式PHP
2005/05/17(火) 11:42:59ID:???0463nobodyさん
2005/05/17(火) 11:48:34ID:???最近、老眼で $i $j $l の区別がつきにくい…
マジな話をすると、それぞれのループには意味があるだろうから
外側のループも $i にこだわらず、意味のある名前にしたら?
0464461
2005/05/17(火) 11:51:38ID:???ありがとうございました。
0465nobodyさん
2005/05/17(火) 12:04:08ID:???I, J, K, L, M, N で始まる変数 -> 整数型
A〜H, O〜Z で始まる変数 -> 実数型
になるってやつだね。
ttp://www.hatena.ne.jp/1086523013 あたりに似たような話題が出ていたので参考にどうぞ。
0466nobodyさん
2005/05/17(火) 12:23:25ID:???でも3重のループ構造なんて作ったこと無いからnまでだな。
0468nobodyさん
2005/05/17(火) 13:00:55ID:???for i = 0 to 9 : for j = 1 to 100
みたいな感じだったから今でもループカウンタは i j だ
0469nobodyさん
2005/05/17(火) 13:34:27ID:Apwp1iicpreg_replaceでマッチした結果を、連想配列の添え字に使用できないかな?
----------------------------------------------------
<?php
$hash = array(
"100" => "100_text",
"101" => "101_text",
);
$str = "string101";
echo preg_replace("/.+?([0-9]+)/", $hash['$1'], $str);
exit;
?>
----------------------------------------------------
101_textを期待してるんだけどまったく駄目です。
/eを使うのかと思うんだけどいまいち理解できません。
よろしくお願いします。
0471470
2005/05/17(火) 14:20:01ID:???か
preg_replace_callback + function
0472nobodyさん
2005/05/17(火) 14:48:23ID:???どのメソッドを使えばよいでしょうか?
開くターゲットはhtmlファイルなのですが、
クッキーなどのいくつかのヘッダも出力してやりたいので、
fopenではない専用のAPIがあれば助かります。
よろしくお願いします。
0473nobodyさん
2005/05/17(火) 14:54:33ID:???> /e修飾子は、 preg_replace()が replacementパラメータを
> 適当な置換を行った後、PHP コードとして処理するようにします。
echo preg_replace("/.+?([0-9]+)/e", '$hash["$1"]', $str);
■ このスレッドは過去ログ倉庫に格納されています