【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/
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);
0476nobodyさん
2005/05/17(火) 15:12:01ID:???タグの部分は置き換えで出来るのですが、予期しない文章部分等への対応をどうしたら良いのか困っています。
0478nobodyさん
2005/05/17(火) 16:02:43ID:???$this->hogehoge()使うのと
CLASS::hogehoge()使うのと
どっちが正しいとか早いとかってある?
0479nobodyさん
2005/05/17(火) 16:04:59ID:???だってクラス名変わったらアウトじゃん。
0480nobodyさん
2005/05/17(火) 16:06:23ID:???0481nobodyさん
2005/05/17(火) 16:12:50ID:???再帰ループとかに使うんで自分のクラスです。
親メソッドだったらparent::hogehoge()で呼ぶのが正解だと思っとりますが。
0482nobodyさん
2005/05/17(火) 16:15:28ID:???クラスの作成意図による。
class test {
function hoge(){ echo 'hoge'; }
function hoge1(){ $this->hoge(); }
function hoge2(){ test::hoge(); }
}
test::hoge1(); // fatal errorになる。インスタンスが無いのでhoge1での$this自体が無い。
test::hoge2(); // hogeを出力
0483nobodyさん
2005/05/17(火) 16:30:25ID:???なるほど・・・
インスタンスを必要としないように組んでれば$thisじゃなくても良いわけですな。
とりあえず、>479の言うとおりクラス名変わったら面倒になりそうなので
$thisを使う事にします。
さんくす。
0484nobodyさん
2005/05/17(火) 16:32:22ID:???function hoge(){ echo 'hoge2';}
}
ってしたくなると困るね。
Javaとかでは、なんかセオリーみたいなのあるの?
0485nobodyさん
2005/05/17(火) 16:33:33ID:???class test {
function hoge(){ echo 'hoge'; }
function hoge2(){ test::hoge(); }
function hoge3(){ self::hoge(); }
}
test::hoge2(); // hogeを出力
test::hoge3(); // hogeを出力
っちゅう手もある
0486nobodyさん
2005/05/17(火) 16:38:56ID:???明示的にはなっているのですが、それをどう抜き出したら良いのか分かりませぬ・・
抜き出したい行には固有の文字列がありますから、テキストから取り出す方法が分かれば可能だと思いますが、その方法自体が分かってないのです・・。
http://itbtech.itboost.co.jp/man/php_man/manual.html
とかのどこ見ろや!でいいのでおながいします
0488nobodyさん
2005/05/17(火) 18:44:35ID:ceDjCL+B出品途中ではなく終わった出品物の場合、URLデータを引っこ抜く時に
ログインしろ!ときます。
ログインをPHPのスクリプトで行い、ページデータを引っこ抜く手段はあるでしょうか?
お願いします。
0489488
2005/05/17(火) 19:15:06ID:ceDjCL+BURLデータ>ページデータです。
0490nobodyさん
2005/05/17(火) 19:18:06ID:???T_STRINGとか…
0491nobodyさん
2005/05/17(火) 19:30:55ID:???シェルスクリプトでw3mのマクロを書いたほうが簡単なような気が。
0492nobodyさん
2005/05/17(火) 19:46:12ID:???0493nobodyさん
2005/05/17(火) 19:54:12ID:???実際にソースをHPにあげてみたら上手く動かなかった、、
おそらく$_SERVERのところの記述ミスなのですが、検索して調べてみたのですがわからずここで聞くことにしました。
ご教授おねがいします。
ソースファイル↓
http://www.uploda.org/file/uporg101239.zip.html
0494nobodyさん
2005/05/17(火) 20:02:21ID:???0496nobodyさん
2005/05/17(火) 21:34:02ID:???直接 fuga.php にアクセスされたときに
「ぬるぽ」
と表示したいのですが、どの変数があるなしで判断したらいいでしょうか?
GETさせたく無い方法を教えてください。
0497nobodyさん
2005/05/17(火) 21:43:11ID:???0498nobodyさん
2005/05/17(火) 21:43:25ID:???postデータがない場合、引数がない場合、getデータがある場合はぬるぽ。
0499nobodyさん
2005/05/17(火) 21:58:03ID:???if (isset($_SERVER['HTTP_REFERER'])
&& strpos($_SERVER['HTTP_REFERER'], 'hoge.html') !== FALSE) {
//何か処理
} else {
echo 'ぬるぽ';
}
0500nobodyさん
2005/05/17(火) 22:01:32ID:???ユーザー名が入るテキストフィールド(name = username)があるとして、
<?
if (!$_POST["username"]){
print ぬるぽ
}
?>
これだと、ユーザー名を未入力でボタンを押しても「ぬるぽ」と表示されてしまいます。
アクセスされた人が「ぬるぽって何?」って思われたり、または脊髄反射的に「ガッ」っと言う人が言うかもしれません。
$_POST は 連想配列である、とマニュアルに書いていますが、
そもそも $_POST という配列が無いという分岐はできるのでしょうか?
0503nobodyさん
2005/05/17(火) 22:19:42ID:???0504nobodyさん
2005/05/17(火) 22:24:33ID:???0505nobodyさん
2005/05/17(火) 22:31:21ID:???その際、普通は
<img src = "graph.php?param1=<?php echo $param1; ?>">
などのようにimgタグの中からgraph.phpを呼んでついでに引数を渡すのですが、
グラフのデータそのもの(大きい配列)を引数として渡したいので、この方法だとうまくいきません
どうしたら大きい配列を渡すことができるでしょうか?
0506nobodyさん
2005/05/17(火) 22:32:43ID:???0508nobodyさん
2005/05/17(火) 23:15:01ID:???0509505
2005/05/18(水) 00:20:12ID:???うまくいかないというか、サイズが不確定な配列をうまく渡す方法がわからないんです
>>508
serialize()を使う場合、どう記述すればいいでしょうか?
0510nobodyさん
2005/05/18(水) 00:24:58ID:???エラーが出るのですが、いい方法ないですか?
0511nobodyさん
2005/05/18(水) 01:12:05ID:???ほしい機能としては、
1.各携帯から見ることができる
2.RSSを出力できる
こういうものはありますかね?
もし知ってる方いらっしゃいましたらよろしくお願いします。
0512nobodyさん
2005/05/18(水) 01:24:46ID:???graph.php?data=<?php echo serialize($array_data); ?>
--
$array_data = unserialize($_GET['data']);
>>510
Shift_JISだと気をつけないといけない事が多々あるのでEUCで書いてあるのでしょう。
Shift_JISで動くように気をつけて書き直すしかありません。
■ このスレッドは過去ログ倉庫に格納されています