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

【PHP】下らねぇ質問はID出して書き込みやがれ 108

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/07/02(土) 18:37:53.12ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
02962902011/07/07(木) 00:57:54.60ID:???
僕の思考回路についてこれないようですね?
・・・すみません自分でも読み返して何言ってるか不明でした

処理A(失敗時に投げられる例外はException)
処理B(失敗時に投げられる例外はTestException)

こういう順番にして

例外キャッチの順番を

Exception→TestExceptionの順番にすると
処理BでつまづいたときでもExceptionブロックに行ってしまうんですね

なのでExceptionブロックは一番最後にかかないといけない仕様なのかなーと
0297nobodyさん2011/07/07(木) 01:03:33.12ID:???
>>296
で、何に困っているの?
0298nobodyさん2011/07/07(木) 01:05:49.51ID:???
>>296
まずIDは?
0299nobodyさん2011/07/07(木) 01:06:18.87ID:???
>>298
非公開です
0300nobodyさん2011/07/07(木) 01:07:01.88ID:???
>>287
curl_multi_exec
0301nobodyさん2011/07/07(木) 01:28:32.14ID:???
>>296
マニュアル嫁よ・・・と言いたいところだけど、
当たり前な仕様すぎてPHPマニュアルには詳しく書いてない。
JavaとかC#とかの解説でも読んできて。
0302nobodyさん2011/07/07(木) 01:33:54.45ID:???
PHPのマニュアルであって
OOPの入門書じゃないからなw
0303nobodyさん2011/07/07(木) 01:47:47.86ID:???
いやPHPのマニュアルにもちゃんと書いてあるから。
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:???
それで自分の馬鹿を晒して更なる馬鹿にもっと馬鹿にされるのですね
0309nobodyさん2011/07/07(木) 02:37:51.97ID:???
>>304
マニュアルに書いてないと断言するなら、書いていないことを示すのが先でしょう。
0310nobodyさん2011/07/07(木) 03:21:42.08ID:???
示すってのは根拠がなければならない
つまりソースを出して始めて反論になる
じゃないとその反論は無意味なオナニーで終わる
0311nobodyさん2011/07/07(木) 03:35:27.17ID:???
>>290
例外を出すメソッド毎に try を入れ子にしてやる
http://php.net/manual/ja/language.exceptions.php#example-244
0312nobodyさん2011/07/07(木) 05:14:48.73ID:???
>>310
ですから、マニュアルに書いていないという根拠を示してください。
0313nobodyさん2011/07/07(木) 06:16:59.74ID:???
>>312
悪魔の証明
0314nobodyさん2011/07/07(木) 06:22:55.29ID:???
>>313
しかし「有る」と主張する場合は根拠を示す必要があるのに、「無い」と主張する場合はその必要がないのは
不公平ではないでしょうか。
0315nobodyさん2011/07/07(木) 06:28:04.93ID:???
>>314
出来ないことを要求するのは不公平じゃないの?
0316nobodyさん2011/07/07(木) 06:35:26.66ID:???

おはよう

さて、どんな質問が残ってるのかな?
今日は暇だから、お姉さんが丁寧に質問に答えちゃうよ!

0317nobodyさん2011/07/07(木) 06:37:06.93ID:???
>>316
今日のおパンツの色を教えてください
0318nobodyさん2011/07/07(木) 06:38:16.43ID:???
>>317
質問はIDを出してネっ
0319nobodyさん2011/07/07(木) 06:39:46.61ID:???
うんこいろ
0320patagonia2011/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');
}

どんなもんでしょうか。
0321nobodyさん2011/07/07(木) 08:01:38.28ID:???
>>320
2つ前のレスすら読めないのかよ・・・・
0322nobodyさん2011/07/07(木) 08:16:32.26ID:???
JDという2chブザウザを使っているのだが、IDをだすとはどうするのだ?
書き込み欄があるので入力してみたら名前欄に表示されたが。
03232632011/07/07(木) 09:13:18.64ID:VhwIm5mM
>>263は両方不可能でしょうか?
0324nobodyさん2011/07/07(木) 09:15:50.48ID:???
はい
1は不可
2は可
0325nobodyさん2011/07/07(木) 09:22:54.53ID:VhwIm5mM
>>324
回答ありがとうございます
2の方法についてですがどのような方法でしょうか?
detect_orderやhttp_inputに"eucJP-win,SJIS-win"のように指定してみましたが思うような効果は得られませんでした
0326nobodyさん2011/07/07(木) 09:27:33.38ID:hOX3MgUD
IDの出し方 テスト
0327nobodyさん2011/07/07(木) 09:28:19.33ID:hOX3MgUD
完全な初心者です。
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');
}

どんなもんでしょうか。
0328nobodyさん2011/07/07(木) 09:30:59.25ID:???
>>327
include
0329nobodyさん2011/07/07(木) 09:41:08.44ID:hOX3MgUD
ありがとう
0330nobodyさん2011/07/07(木) 10:37:26.58ID:???
>>325
php.iniの文字コードの設定ぐらいさらしてから聞けや
0331nobodyさん2011/07/07(木) 10:52:11.46ID:???
>>330
言葉遣いが悪いですよ!
0332nobodyさん2011/07/07(木) 10:52:59.10ID:VhwIm5mM
PHPマニュアルを見直した所、どう見ても複数設定出来るようなので
再度実験してみたら希望通りの動作をしてくれました

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
index.htmlに
--------------------
テスト01
<?PHP
$a=1
if($a==1){
echo"aは1です";
}Else{
exit("処理終了");
}
?>
テスト文字02
------------------
見たいに書いて
PHPの処理中断した時に
その後のhhmlを表示させる場合どうすればいいのかな?
exitだとその後のhtmlとかすべて表示されない
0334nobodyさん2011/07/07(木) 11:45:06.36ID:???
>>333
try-catchでくくってthrow
0335nobodyさん2011/07/07(木) 11:50:07.37ID:???
if(){

}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:???
return
0339nobodyさん2011/07/07(木) 12:12:33.57ID:???
もしくはgotoや関数内でreturnでも使え
0340nobodyさん2011/07/07(木) 12:28:57.53ID:???
htmlの処理中にPHP書くから悪い
0341nobodyさん2011/07/07(木) 12:31:59.39ID:Ch5hchcU
>>339
goto調べてみたらぴったしの機能でしたが
レンタルサーバーのPHPが5.2でつかえずorz

自作関数はまだ使いこなせない(´・ω・`)


0342nobodyさん2011/07/07(木) 12:43:15.97ID:???
テスト01
<?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:???
$end = 0;
$a = 1;
if ($a == 1) {
echo "$aは1です";
$end = 1;
}
if (!$end) {
処理2
}
処理終了
0344nobodyさん2011/07/07(木) 13:02:24.23ID:???
if ($a == 1) {
echo "$aは1です";
} else {
$end = 1;
}
の間違い

フラグでもいれれば簡単じゃろ
0345nobodyさん2011/07/07(木) 13:24:17.41ID:Ch5hchcU
ifで括って行くしかないのかな
条件によって何十箇所も飛ばしたいところが複雑にあるから
gotoのような単純にジャンプできる機能がほしいところ

レスしてくれた皆様ありがとうございますm(__)m
0346nobodyさん2011/07/08(金) 03:56:00.80ID:hPQ7klvO
$historys = array();
$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とかになってしまいます。。
0347nobodyさん2011/07/08(金) 06:18:25.79ID:???
>>346
historyの複数形はhistoriesだからです。
0348nobodyさん2011/07/08(金) 06:47:24.41ID:???
>>346
蛇足だけど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:???
fputsの最後に閉じカッコ付けるの忘れた
0350nobodyさん2011/07/08(金) 06:58:15.45ID:???
>>346
if (count($historys) > 30) {
 array_pop($historys);
 reset($historys);
}

↑これだと30以上のときに最後の1個を取り除いただけで、30行に抑えていない。
繰り返さないと。
0351nobodyさん2011/07/08(金) 07:04:40.49ID:hPQ7klvO
>>348
ありがとうこざいます
読み込み時にしとけばよかったんですね。勉強になりましたm(__)m
0352nobodyさん2011/07/08(金) 07:18:45.62ID:hPQ7klvO
>>350
0から初めて履歴は30分に1個ずつ増えてく仕様だったので
大丈夫だと思ってました ; ;
未だに原因が分かりませんが1日で3000行以上になっててΣ(´∀`;)です

0353nobodyさん2011/07/08(金) 07:34:37.06ID:???
30分に1回実行してんのか?
0354nobodyさん2011/07/08(金) 07:39:16.64ID:???
c+なんて使ってる人初めて見たw
普通a+だろ
0355nobodyさん2011/07/08(金) 07:44:07.06ID:hPQ7klvO
>>353
はい cronで実行してました

>>354
a+だと先頭にseekできないようなので。。

0356nobodyさん2011/07/08(金) 08:03:40.38ID:???
>>355
じゃ書いてたけど実行されてなかったんだな
0357nobodyさん2011/07/08(金) 08:20:27.71ID:???
c+やめて手動でファイル作ってr+にした方がいいよ
もしくは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:???
>>358
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:???
>359
ありがとう。うまくいった。PHPは便利だ。
perlで書くしかないかと思い悩んでいたのだ。
0361nobodyさん2011/07/08(金) 13:37:24.44ID:???
perlで出来ることはPHPでも出来る。
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 -l(lint)なのですが、
あるサーバでは

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:???
どうせ弱小サイトなんだから気にするんじゃねえよ
0366nobodyさん2011/07/08(金) 19:32:18.41ID:???
>>364
php.iniでerror_reportingの設定
0367nobodyさん2011/07/08(金) 20:15:31.50ID:???
>>366
できましたありがとうございます。
ただ、行番号等が表示されるサーバでphp -d error_reporting=4177 a.php
とすると表示されなくなるのに対し、
もともと表示されないサーバでphp -d error_reporting=6143 a.php
としてもダメでした。
0368nobodyさん2011/07/08(金) 20:22:49.64ID:???
>>362
その回答の一つがMVC
Symfony、CakePHP、Zend Framework 辺りが参考になる
03693622011/07/08(金) 22:35:24.64ID:TLiNIkWs
>>368
ありがとうございます。
一度ちゃんとフレームワークのソースを読んだり使ってみないとだめですが、
まだその域に達してないのでもう少し色々考えてみます。
0370nobodyさん2011/07/09(土) 02:05:30.36ID:NiQ7H+AZ
curlでサイトへのログインして、他ページのボタンを押したいのですが
参考になるサイトはありますでしょうか?
0371nobodyさん2011/07/09(土) 06:07:11.29ID:???
ほれ
http://php.net/manual/ja/book.curl.php
0372nobodyさん2011/07/09(土) 11:30:19.39ID:???
10秒ごとにforループを実行することってできますか?

for($i=0; $i<10; i++) {
echo $i;
}

0を表示してから10秒後にループって感じで。
0373nobodyさん2011/07/09(土) 11:37:23.30ID:???
>>372
>>1
0374nobodyさん2011/07/09(土) 11:47:03.20ID:D+k+KmfY
失礼しました。

10秒ごとにforループを実行することってできますか?

for($i=0; $i<10; i++) {
echo $i;
}

0を表示してから10秒後にループって感じで。
0375nobodyさん2011/07/09(土) 11:54:10.06ID:???
>>374
できる
0376nobodyさん2011/07/09(土) 12:04:55.57ID:???
http://www.google.co.jp/search?hl=ja&q=php+sleep&aq=f&aqi=&aql=&oq=
>>374
0377nobodyさん2011/07/09(土) 12:31:58.83ID:???
ちょっとググればわかることだろ
少しは自分で調べろ
だが>>375みたいなあほなレスするやつはksだ
気持ちはわからんでもないが
0378nobodyさん2011/07/09(土) 12:58:17.02ID:???
でも>>377みたいな誰の役にも立たないレスをする奴はクズだ
そんな奴の気持ちなどわかろうとも思わない
0379nobodyさん2011/07/09(土) 13:19:15.94ID:???
でも>>378みたいな誰の役にも立たないレスにレスをする奴はクズだ
そんな奴の気持ちなどわかろうとも思わない
0380nobodyさん2011/07/09(土) 14:14:42.44ID:???
sleep(10)

って昔なら一言さらっと答えが出てたんだが
ここのところ変なのが多いな
もう2chでの活動やめちゃいますよ
0381nobodyさん2011/07/09(土) 14:36:53.79ID:???
>>380
あなたのような人がいるから2chが荒廃するんです。
早く辞めてもらったほうが世の中の為です。
0382nobodyさん2011/07/09(土) 14:39:22.89ID:???
2chなんて便所の落書きなんで
回答があればラッキー程度な気持ちで利用してくれや
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:???
>>385
>>374の質問からなぜそこまで深読みしなくちゃならんの?
単にfor文を10秒ごとに実行できるかどうかの技術的な質問だろ?
お前の方がよっぽど気持ち悪いよ。
0387nobodyさん2011/07/09(土) 16:19:22.72ID:???
>>386
なんで、その程度で深読みなんだ?
マニュアル読めばすぐ分かるようなsleep程度でそんなにかみつくお前の方がよっぽど気持ち悪いよw
0388nobodyさん2011/07/09(土) 16:31:53.52ID:???
>>377
はぁ?自分で実装方法を考えるのが好きで、、可能か不可能だけ知りたい人かもしれないだろ?
そんな人に答え教えちゃうのは小説や映画のスレでネタバレを教えるようなもんだ。
要件以上のことをすることを、余計なおせっかいと言う。
0389nobodyさん2011/07/09(土) 17:10:45.22ID:???
>>388
プログラマ脳とでもいうべきか
0390nobodyさん2011/07/09(土) 17:16:03.20ID:???
世界人類が幸せでありますように。
0391nobodyさん2011/07/09(土) 17:17:50.12ID:???
>>389
契約、手続き、司法、政治、人との約束、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:???
それを質問者側が言うか。朝鮮人みたいな奴だな。
393 名前:nobodyさん[sage] 投稿日:2011/07/09(土) 19:13:06.67 ID:???
それを質問者側が言うか。朝鮮人みたいな奴だな。

そうか夏休みだったのか
■ このスレッドは過去ログ倉庫に格納されています