【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等)・フレームワークは各該当スレへ
0332nobodyさん
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:???
それを質問者側が言うか。朝鮮人みたいな奴だな。
そうか夏休みだったのか
0397nobodyさん
2011/07/09(土) 19:47:05.76ID:???0398nobodyさん
2011/07/09(土) 19:54:02.72ID:???見てて痛々しい・・・
2chに顔だしてる暇があったらお気に入りの法律の勉強でもしてろよ。
0399nobodyさん
2011/07/09(土) 19:58:02.94ID:1XCXFVtD0400nobodyさん
2011/07/09(土) 19:59:59.91ID:1XCXFVtD0401nobodyさん
2011/07/09(土) 20:20:16.60ID:???世の中とか社会を語られると偉そうにされてると感じるとか、有利に話が進められるとか、
普段どんだけ底辺で生きてるの?
一般常識レベルの話だぞ。
なんというか、まぁ、頑張れ。
>>392
日本の一般的な企業や公務員なら年次で昇格・昇進していくし
外資系企業なら無能な奴は切られるのでそもそも万年平なんて概念は日本には存在しない。
社会人経験ないのがバレバレ。
0403nobodyさん
2011/07/09(土) 20:30:05.84ID:???0404nobodyさん
2011/07/09(土) 20:39:28.93ID:???想像で物言ってるでしょ?
公務員はキャリアと非キャリアでそもそも扱いが全然違うし、
競争もなしに昇格できるとか本気で言ってるなら頭に蛆が湧いてると思う。
外資系で無能なやつを切るってのも意味不明。そんなの外資系じゃなくても当たり前。
0405nobodyさん
2011/07/09(土) 20:44:52.38ID:???0406nobodyさん
2011/07/09(土) 20:56:10.69ID:???どう考えても質問者に非があるとは思えません。
0408nobodyさん
2011/07/09(土) 21:26:39.70ID:2urjE4w0横なんだけど、以前にログアウト処理を組んでいて、
「ログアウトしました」とechoで表示させたあとにsleep(3)とか処理を加えて、
(「ログアウトしました」の表示を3秒見せる)
トップページに飛ばそうとしたことがあるんだけど、
ログアウトしましたと表示されずに3秒停止してからトップページに飛んでしまって
うまくいかなかったんだけど。
>>374の0を表示させてから10秒後にループさせるってのが、sleep(10)でできるの?
0409nobodyさん
2011/07/09(土) 21:38:43.50ID:???そりゃ当たり前だ
flushしてやらんとブラウザには表示されない
まぁだいたいそういうトリックはrefreshヘッダでやるもんだぜ
<meta http-equiv="refresh" content="3;url=http://example.com/">
> >>374の0を表示させてから10秒後にループさせるってのが、sleep(10)でできるの?
できるがタイムアウトも考えないといけない
リトライ処理とかはsleepとループを組み合わせてやるのが普通
0410nobodyさん
2011/07/09(土) 22:00:04.78ID:???ブラウザではあんまりやるようなことじゃない
10秒後にクライアントが再度リクエストすればいい
Ajaxの出番
0412nobodyさん
2011/07/09(土) 23:13:50.85ID:2urjE4w0丁寧なレスありがとうございます。
大変勉強になりました。
0414nobodyさん
2011/07/10(日) 00:20:15.49ID:???flashの間違いだと思ってんなら自分の無知に顔を赤くしながら
マニュアルでflushって検索してこい
0415nobodyさん
2011/07/10(日) 01:04:53.34ID:???オートマ限定免許も持ってねぇクセしてww
笑わせんじゃねよwwww
0416nobodyさん
2011/07/10(日) 02:09:15.79ID:???間違えを認められずひどいごまかしよう(笑)
0417nobodyさん
2011/07/10(日) 05:38:26.40ID:???おはよう
さて、どんな質問が残ってるのかな?
今日は暇だから、お姉さんが丁寧に質問に答えちゃうよ!
0418nobodyさん
2011/07/10(日) 05:43:36.82ID:???whileループでファイルを一つづつ処理していて
ループ内で処理の進行に合わせてprint文で進捗を表示させたいのだが
なぜか表示がwhileループが終了した後にすべての処理ファイル分が一気に表示される。
これでは進捗状況の表示にならない。
どうしたらいいのですか。
0419nobodyさん
2011/07/10(日) 05:47:21.07ID:???なんだよwお前が俺の顔の色とかわかるわけないだろwww
適当なこと言ってごまかしてんじゃねぇよwwwww
0422nobodyさん
2011/07/10(日) 06:56:33.05ID:???aaa=bbb&ccc=dddって自分で書かなきゃダメだ
0423nobodyさん
2011/07/10(日) 06:57:05.10ID:MAnv3V4Bwhileループでファイルを一つづつ処理していて
ループ内で処理の進行に合わせてprint文で進捗を表示させたいのだが
なぜか表示がwhileループが終了した後にすべての処理ファイル分が一気に表示される。
これでは進捗状況の表示にならない。
どうしたらいいのですか。
0424422
2011/07/10(日) 06:58:47.02ID:???なんか原立ってきた
0425nobodyさん
2011/07/10(日) 06:59:02.71ID:MAnv3V4Bあー、そうだね。
0427nobodyさん
2011/07/10(日) 11:50:04.44ID:???コマンドラインで実行したらちゃんと進捗状況の表示になるだろ?
ってことはPHPの問題じゃなくてHTTPサーバーやブラウザの問題ってこと。
つまりスレ違い。
0429nobodyさん
2011/07/10(日) 12:44:57.12ID:???■ このスレッドは過去ログ倉庫に格納されています