【PHP】下らねぇ質問はID出して書き込みやがれ 108
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/07/02(土) 18:37:53.12ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0296290
2011/07/07(木) 00:57:54.60ID:???・・・すみません自分でも読み返して何言ってるか不明でした
処理A(失敗時に投げられる例外はException)
処理B(失敗時に投げられる例外はTestException)
こういう順番にして
例外キャッチの順番を
Exception→TestExceptionの順番にすると
処理BでつまづいたときでもExceptionブロックに行ってしまうんですね
なのでExceptionブロックは一番最後にかかないといけない仕様なのかなーと
0301nobodyさん
2011/07/07(木) 01:28:32.14ID:???マニュアル嫁よ・・・と言いたいところだけど、
当たり前な仕様すぎてPHPマニュアルには詳しく書いてない。
JavaとかC#とかの解説でも読んできて。
0302nobodyさん
2011/07/07(木) 01:33:54.45ID:???OOPの入門書じゃないからなw
0303nobodyさん
2011/07/07(木) 01:47:47.86ID:???0304nobodyさん
2011/07/07(木) 01:59:08.52ID:???ほんと役立たずだな
そんなレスはいらねえんだよ
0305nobodyさん
2011/07/07(木) 02:20:52.96ID:???わしゃわからんべ(´・ω・`)
0306nobodyさん
2011/07/07(木) 02:21:39.30ID:???0307nobodyさん
2011/07/07(木) 02:22:55.36ID:???0308nobodyさん
2011/07/07(木) 02:35:59.80ID:???0310nobodyさん
2011/07/07(木) 03:21:42.08ID:???つまりソースを出して始めて反論になる
じゃないとその反論は無意味なオナニーで終わる
0311nobodyさん
2011/07/07(木) 03:35:27.17ID:???例外を出すメソッド毎に try を入れ子にしてやる
http://php.net/manual/ja/language.exceptions.php#example-244
0314nobodyさん
2011/07/07(木) 06:22:55.29ID:???しかし「有る」と主張する場合は根拠を示す必要があるのに、「無い」と主張する場合はその必要がないのは
不公平ではないでしょうか。
0316nobodyさん
2011/07/07(木) 06:35:26.66ID:???おはよう
さて、どんな質問が残ってるのかな?
今日は暇だから、お姉さんが丁寧に質問に答えちゃうよ!
0319nobodyさん
2011/07/07(木) 06:39:46.61ID:???0320patagonia
2011/07/07(木) 07:57:28.23ID:???mainのPHPから処理の流れに応じてPHPを実行させるのに、PHPらしい方法はどんなんでしょうか。下記を考えました。
main.php{
exec('/usr/local/bin/php ./1.php');
exec('/usr/local/bin/php ./2.php');
exec('/usr/local/bin/php ./3.php');
・
・
exec('/usr/local/bin/php ./n.php');
}
どんなもんでしょうか。
0322nobodyさん
2011/07/07(木) 08:16:32.26ID:???書き込み欄があるので入力してみたら名前欄に表示されたが。
0323263
2011/07/07(木) 09:13:18.64ID:VhwIm5mM0324nobodyさん
2011/07/07(木) 09:15:50.48ID:???1は不可
2は可
0325nobodyさん
2011/07/07(木) 09:22:54.53ID:VhwIm5mM回答ありがとうございます
2の方法についてですがどのような方法でしょうか?
detect_orderやhttp_inputに"eucJP-win,SJIS-win"のように指定してみましたが思うような効果は得られませんでした
0326nobodyさん
2011/07/07(木) 09:27:33.38ID:hOX3MgUD0327nobodyさん
2011/07/07(木) 09:28:19.33ID:hOX3MgUDmainのPHPから処理の流れに応じてPHPを実行させるのに、PHPらしい方法はどんなんでしょうか。下記を考えました。
main.php{
exec('/usr/local/bin/php ./1.php');
exec('/usr/local/bin/php ./2.php');
exec('/usr/local/bin/php ./3.php');
・
・
exec('/usr/local/bin/php ./n.php');
}
どんなもんでしょうか。
0329nobodyさん
2011/07/07(木) 09:41:08.44ID:hOX3MgUD0332nobodyさん
2011/07/07(木) 10:52:59.10ID:VhwIm5mM再度実験してみたら希望通りの動作をしてくれました
http_inputの記述順に問題があったようで、
↓をベースに
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_value mbstring.detect_order SJIS-win,eucJP-win,UTF-8
php_flag mbstring.encoding_translation On
php_value mbstring.http_input SJIS-win,eucJP-win,UTF-8
php_flag output_buffering On
php_value output_handler mb_output_handler
php_value default_charset EUC-JP
php_value mbstring.http_output eucJP-win
php_value mbstring.substitute_character None
↓の項目を書き換えた所、希望通りの動作となりました
php_value mbstring.http_input eucJP-win,SJIS-win,UTF-8
php_value default_charset Shift_JIS
php_value mbstring.http_output SJIS-win
0333nobodyさん
2011/07/07(木) 11:36:55.43ID:Ch5hchcU--------------------
テスト01
<?PHP
$a=1
if($a==1){
echo"aは1です";
}Else{
exit("処理終了");
}
?>
テスト文字02
------------------
見たいに書いて
PHPの処理中断した時に
その後のhhmlを表示させる場合どうすればいいのかな?
exitだとその後のhtmlとかすべて表示されない
0335nobodyさん
2011/07/07(木) 11:50:07.37ID:???}else{
a();
exit;
}
function a(){htmlを書く}
0336nobodyさん
2011/07/07(木) 12:07:04.50ID:Ch5hchcUそのままhtmlに戻りたいので
<?PHP ?>の処理を途中終了して
その後のhtmlを表示させるような関数ってありますか?
0337nobodyさん
2011/07/07(木) 12:11:52.89ID:???exit書いたらそこで試合終了
0338nobodyさん
2011/07/07(木) 12:12:00.44ID:???0339nobodyさん
2011/07/07(木) 12:12:33.57ID:???0340nobodyさん
2011/07/07(木) 12:28:57.53ID:???0341nobodyさん
2011/07/07(木) 12:31:59.39ID:Ch5hchcUgoto調べてみたらぴったしの機能でしたが
レンタルサーバーのPHPが5.2でつかえずorz
自作関数はまだ使いこなせない(´・ω・`)
0342nobodyさん
2011/07/07(木) 12:43:15.97ID:???<?PHP
try {
$a=2;
if($a==1){
echo"aは1です";
}Else{
throw new Exception("処理終了");
}
}
catch(Exception $ex) {
}
?>
<?PHP
while(true) {
$a=2;
if($a==1){
echo"aは1です";
}Else{
echo("処理終了");
break;
}
break;
}
?>
テスト文字02
0343nobodyさん
2011/07/07(木) 13:01:36.62ID:???$a = 1;
if ($a == 1) {
echo "$aは1です";
$end = 1;
}
if (!$end) {
処理2
}
処理終了
0344nobodyさん
2011/07/07(木) 13:02:24.23ID:???echo "$aは1です";
} else {
$end = 1;
}
の間違い
フラグでもいれれば簡単じゃろ
0345nobodyさん
2011/07/07(木) 13:24:17.41ID:Ch5hchcU条件によって何十箇所も飛ばしたいところが複雑にあるから
gotoのような単純にジャンプできる機能がほしいところ
レスしてくれた皆様ありがとうございますm(__)m
0346nobodyさん
2011/07/08(金) 03:56:00.80ID:hPQ7klvO$fp = fopen("history.txt", 'c+b');
while (!feof($fp)) {
$line = str_replace(array("\r\n","\n","\r"), '', fgets($fp, 1024));
if ($line !== '') { $historys[] = $line; }
}
array_unshift($historys, "何かの値");
if (count($historys) > 30) {
array_pop($historys);
reset($historys);
}
ftruncate($fp, 0);
fputs($fp, implode("\n", $historys) . "\n");
fclose($fp);
配列を30行に抑えたいのですが、どこが間違っていますか?
同じ行が積み重なって16MBとかになってしまいます。。
0348nobodyさん
2011/07/08(金) 06:47:24.41ID:???蛇足だけどarray_popの後にresetは要らないよ。
history.txtを全行読み込んでから30行に削るのは合理的じゃない。
history.txtが馬鹿デカかったら時間が掛かるしメモリーがあふれるかも知れない。
$historysに読み込むときに29行に制限しておく。
あと"何かの値"を必ず入れるのならarray_unshiftなんて使わずに最初に入れておけ。
-----
$historys = array();
$fp = fopen("history.txt", 'c+b');
$header = "何かの値";
$historys[] = $header;
$limit = 30;
$count = 0;
while (!feof($fp) && $count < $limit - 1) {
$line = str_replace(array("\r\n","\n","\r"), '', fgets($fp, 1024));
if ($line !== '') {
$historys[] = $line;
$count++;
}
}
ftruncate($fp, 0);
for($i = 0; $i < $limit; $i++){
fputs($fp, $historys[$i]."\n";
}
fclose($fp);
-----
0349nobodyさん
2011/07/08(金) 06:50:01.42ID:???0350nobodyさん
2011/07/08(金) 06:58:15.45ID:???if (count($historys) > 30) {
array_pop($historys);
reset($historys);
}
↑これだと30以上のときに最後の1個を取り除いただけで、30行に抑えていない。
繰り返さないと。
0351nobodyさん
2011/07/08(金) 07:04:40.49ID:hPQ7klvOありがとうこざいます
読み込み時にしとけばよかったんですね。勉強になりましたm(__)m
0352nobodyさん
2011/07/08(金) 07:18:45.62ID:hPQ7klvO0から初めて履歴は30分に1個ずつ増えてく仕様だったので
大丈夫だと思ってました ; ;
未だに原因が分かりませんが1日で3000行以上になっててΣ(´∀`;)です
0353nobodyさん
2011/07/08(金) 07:34:37.06ID:???0354nobodyさん
2011/07/08(金) 07:39:16.64ID:???普通a+だろ
0357nobodyさん
2011/07/08(金) 08:20:27.71ID:???もしくはfile()で取得してwで書き込んだほうがいい
c+とシークは不具合がある
0358nobodyさん
2011/07/08(金) 10:53:33.22ID:k6JkJfUYファイル名が$nameに入っていて、そのファイルの中身を$bodyに代入するにはどうしたらいいでしょうか。
exec ('cat $name > $body');
ではうまくいきませんので。
0359nobodyさん
2011/07/08(金) 11:09:45.22ID:???http://www.php.net/manual/ja/function.file-get-contents.php
http://www.php.net/manual/ja/function.file.php
$body = file_get_contents($name);
0360nobodyさん
2011/07/08(金) 11:23:54.66ID:???ありがとう。うまくいった。PHPは便利だ。
perlで書くしかないかと思い悩んでいたのだ。
0361nobodyさん
2011/07/08(金) 13:37:24.44ID:???PHPで出来ることはAjaxでも出来る。
0362nobodyさん
2011/07/08(金) 15:23:36.52ID:TLiNIkWsデータベースへ検索を行うプログラムを作るとして、
検索画面入力 検索(リクエスト)処理 結果表示 という工程を挟むとします。
検索画面入力→処理へGET→処理内容をセッション変数に格納→表示画面へ飛ばして表示
検索画面入力→処理へGET→処理は表示画面を兼ねてるのでそのまま表示
今こんな2通りの実装方法を試してますが、
前者のほうがオーバヘッドの関係上当然ながら遅いです。(微々たるものですが)
しかし整理されてる感じがするのは前者のほうです。
後者は検索処理を書いた後、そのままhtmlを書くのでviewと分離できておらず汚いです。
改善策として、処理部分を他のファイルに関数として書いて、includeして関数に$_GETを渡すとかありますが、
ファイルを分けただけで本質的にあんま変わりません。
みなさんはどういう方法を採用していますか?
何か他にいい方法があったら教えてください。
0363nobodyさん
2011/07/08(金) 15:27:18.76ID:???0364nobodyさん
2011/07/08(金) 16:55:29.06ID:???あるサーバでは
PHP Parse error: syntax error, unexpected '?' in a.php on line 7
Errors parsing a.php
というようにファイル名と行番号まで表示してくれるのですが、別のサーバでは
Errors parsing a.php
しか表示されません。設定を変えて前者のようにすることは可能でしょうか?
0365nobodyさん
2011/07/08(金) 17:56:57.50ID:???0367nobodyさん
2011/07/08(金) 20:15:31.50ID:???できましたありがとうございます。
ただ、行番号等が表示されるサーバでphp -d error_reporting=4177 a.php
とすると表示されなくなるのに対し、
もともと表示されないサーバでphp -d error_reporting=6143 a.php
としてもダメでした。
0368nobodyさん
2011/07/08(金) 20:22:49.64ID:???その回答の一つがMVC
Symfony、CakePHP、Zend Framework 辺りが参考になる
0369362
2011/07/08(金) 22:35:24.64ID:TLiNIkWsありがとうございます。
一度ちゃんとフレームワークのソースを読んだり使ってみないとだめですが、
まだその域に達してないのでもう少し色々考えてみます。
0370nobodyさん
2011/07/09(土) 02:05:30.36ID:NiQ7H+AZ参考になるサイトはありますでしょうか?
0371nobodyさん
2011/07/09(土) 06:07:11.29ID:???http://php.net/manual/ja/book.curl.php
0372nobodyさん
2011/07/09(土) 11:30:19.39ID:???for($i=0; $i<10; i++) {
echo $i;
}
0を表示してから10秒後にループって感じで。
0374nobodyさん
2011/07/09(土) 11:47:03.20ID:D+k+KmfY10秒ごとにforループを実行することってできますか?
for($i=0; $i<10; i++) {
echo $i;
}
0を表示してから10秒後にループって感じで。
0376nobodyさん
2011/07/09(土) 12:04:55.57ID:???>>374
0377nobodyさん
2011/07/09(土) 12:31:58.83ID:???少しは自分で調べろ
だが>>375みたいなあほなレスするやつはksだ
気持ちはわからんでもないが
0380nobodyさん
2011/07/09(土) 14:14:42.44ID:???って昔なら一言さらっと答えが出てたんだが
ここのところ変なのが多いな
もう2chでの活動やめちゃいますよ
0382nobodyさん
2011/07/09(土) 14:39:22.89ID:???回答があればラッキー程度な気持ちで利用してくれや
0383nobodyさん
2011/07/09(土) 14:59:14.56ID:???無能な人間は他人を蹴落とすしか手がないのですよ
0384nobodyさん
2011/07/09(土) 15:18:18.03ID:???0385nobodyさん
2011/07/09(土) 15:34:29.59ID:???とりあえず、仕組みを理解して、なぜそういうプログラムが気持ち悪いのかを理解してる奴なら、こんな質問相手しないと思うんだが。
0386nobodyさん
2011/07/09(土) 15:44:09.00ID:???>>374の質問からなぜそこまで深読みしなくちゃならんの?
単にfor文を10秒ごとに実行できるかどうかの技術的な質問だろ?
お前の方がよっぽど気持ち悪いよ。
0387nobodyさん
2011/07/09(土) 16:19:22.72ID:???なんで、その程度で深読みなんだ?
マニュアル読めばすぐ分かるようなsleep程度でそんなにかみつくお前の方がよっぽど気持ち悪いよw
0388nobodyさん
2011/07/09(土) 16:31:53.52ID:???はぁ?自分で実装方法を考えるのが好きで、、可能か不可能だけ知りたい人かもしれないだろ?
そんな人に答え教えちゃうのは小説や映画のスレでネタバレを教えるようなもんだ。
要件以上のことをすることを、余計なおせっかいと言う。
0390nobodyさん
2011/07/09(土) 17:16:03.20ID:???0391nobodyさん
2011/07/09(土) 17:17:50.12ID:???契約、手続き、司法、政治、人との約束、etc・・・世の中みんなそうなってるんだよ。
少しは社会と関わろうな。
今回落ち度があったのは質問者側。
0392nobodyさん
2011/07/09(土) 17:45:49.20ID:???そんなんだから万年平なんですよ
0393nobodyさん
2011/07/09(土) 19:13:06.67ID:???0394nobodyさん
2011/07/09(土) 19:15:48.24ID:???0395nobodyさん
2011/07/09(土) 19:16:39.16ID:???0396nobodyさん
2011/07/09(土) 19:44:47.80ID:???それを質問者側が言うか。朝鮮人みたいな奴だな。
393 名前:nobodyさん[sage] 投稿日:2011/07/09(土) 19:13:06.67 ID:???
それを質問者側が言うか。朝鮮人みたいな奴だな。
393 名前:nobodyさん[sage] 投稿日:2011/07/09(土) 19:13:06.67 ID:???
それを質問者側が言うか。朝鮮人みたいな奴だな。
そうか夏休みだったのか
■ このスレッドは過去ログ倉庫に格納されています