【PHP】下らねぇ質問はID出して書き込みやがれ 82
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/09(月) 02:14:28ID:HyrthkeE過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0170nobodyさん
2009/03/13(金) 16:00:26ID:XJCetXbHループ文で四六時中、time()関数を実行して、設定した時間になったら、ループを抜け出しスクリプトを実行する、
というやり方はありですか?
0171nobodyさん
2009/03/13(金) 16:06:22ID:???おぉ、その手があったか。是非、max_execution_timeの限界ってどのくらいか試してくれ。
でもそのスクリプト、ずーっと実行し続けられる保証がないよね?
そしたらそれを定期的に監視するするスクリプトもそれで動かせばいいね。うんうん。
0172nobodyさん
2009/03/13(金) 16:07:30ID:???0173nobodyさん
2009/03/13(金) 16:13:19ID:DZKgFtDbなるほど!
思いつきませんでした。ありがとうございます
>>170
ものすごく負荷がかかると思います。
レンタルサーバーなら、コンパネからcron使えないですかね
0175170
2009/03/13(金) 16:21:18ID:XJCetXbHまったくの入門者でwinで自鯖をやる予定です。
max_execution_timeというので、負荷がわかるわけですね、勉強になりました。
まだ、試してないんですが、cronだと細かい設定が出来ないですよね?
0176nobodyさん
2009/03/13(金) 16:37:25ID:???ignore_user_abortがある
>>175
工夫すれば負荷なんてそんなにかかんないよ。
1クライアント分消費するだけ。
max_execution_timeを無限設定して
ignore_user_abortで起動して、forループにSleepを巨大な秒数でセットしてやれば。
あとは、プロセスを一つに絞るのに、どっかにPIDファイル作るとか
0177質問させて下さい
2009/03/13(金) 21:45:58ID:75Yme90Vphpで下記を書いてます。
<?php
$mainrss = array (
'http://www.123.net/ ○○',
'http://456.net/ ○○'
);
?>
URLは取得できるようになるんですが、URLの後ろに短い紹介文を書きたいのですが、
カンマじゃなくて何を使ってあげるといいのでしょうか?
○○に短い紹介文を記入したいです
アドバイスをお願いします。
0178nobodyさん
2009/03/13(金) 21:48:38ID:???0179質問させて下さい
2009/03/13(金) 21:50:51ID:75Yme90Vレスありがとうございます。
下記のような感じで記入できたと思うんですが、思い出せなくて。
'http://www.123.net/','あいうえお',
0180nobodyさん
2009/03/13(金) 21:56:15ID:???0181質問させて下さい
2009/03/13(金) 22:06:25ID:75Yme90Vレス有り難うございます!
それでも無理でした
'http://www.123.net/, '123',
でもだめでした。
難しいですね。
0182nobodyさん
2009/03/13(金) 22:09:21ID:???0183質問させて下さい
2009/03/13(金) 22:15:49ID:75Yme90Vレスを有り難うございます。
本を買ってきて勉強したいと思います。
0184nobodyさん
2009/03/13(金) 22:25:13ID:???0185nobodyさん
2009/03/13(金) 23:25:30ID:???Unix/Linuxならcronだが、同じ事はWindowsではタスクスケジューラで実現する。
(Windows上で動くcronも存在するが)
無限ループを回すよりはこちらのほうがスマート。
「cronだと細かい設定が出来ない」の意味が良く分からんな。
1分以下の精度で実行タイミングを指定したい(12時30分15秒じゃないとダメなんだ!とか)とか言う意味ならcronの仕様上無理だが。
曜日指定とか時刻指定とかなら余裕で可能。cron覚えるのがダルいならスクリプト側で制御してもいいしな。
任意のスクリプトを動作させられるのだから、そのPC上で可能な事はなんだって出来る。
0186nobodyさん
2009/03/13(金) 23:57:37ID:???>max_execution_timeを無限設定して
笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
0187nobodyさん
2009/03/14(土) 00:00:05ID:???$ary = array(
array("url"=>"127.0.0.1","shoukai"=>"しょうかい1"),
array("url"=>"http://yahoo.co.jp/","shoukai"=>"しょうかい2"),
array("url"=>"http://2ch.net/","shoukai"=>"しょうかい3")
);
0188170
2009/03/14(土) 01:07:17ID:u9lyCe1cいまいちよくわからないので、もう少し勉強してからもう一度質問させて頂きます。
0189質問させて下さい
2009/03/14(土) 07:04:33ID:hOLVrRGNわああああああ!
レスありがとうございました。
このようにやりたかったです。
無事に出来ました!本当にありがとうございます。
phpの本は買って勉強をしておきます。
0192nobodyさん
2009/03/14(土) 11:44:37ID:sxFlkHR45000行くらいなら平気ですかね?もちろん文字数や処理にもよると思うのですが、
(適度に改行したとして)大体何行くらいに納めるみたいなのがあればよろしくおねがいします
0193nobodyさん
2009/03/14(土) 11:51:38ID:???0194nobodyさん
2009/03/14(土) 13:20:33ID:???俺の場合、1ファイル1クラスは死守。
1クラス500行上限が目安で、1メソッドは基本的にスクロールせずに全部見える分量に収める。
1ファイルが大きくなると、当然その分パフォーマンスに影響するし、保守もしづらい。
0195nobodyさん
2009/03/14(土) 13:25:01ID:???0197194
2009/03/14(土) 13:56:17ID:???毎回毎回すべての処理を呼び出すならその通り。
だが、呼び出しの9割は参照系へのアクセスで、そのうち8割はトップページだ。
つうか、パフォーマンスなんぞどうでもいいんだけどな。管理しづらい、読みづらいというのが最大の問題点。
0198nobodyさん
2009/03/14(土) 14:35:42ID:???0199質問させて下さい
2009/03/14(土) 19:52:27ID:hOLVrRGNfile_getについてアドバイスをお願いします。
下記にするとエラーが出ます。
<?php
echo mb_convert_encoding(file_get_contents("111.php"), "shift-jis", "auto");
?>
エラー内容
Warning: mb_convert_encoding() [function.mb-convert-encoding]:
Unable to detect character encoding in 111.php on line 59
下記にするとエラーは出ません。
<?php
echo mb_convert_encoding(file_get_contents("111.php"), "shift-jis", "shift-jis");
?>
"shift-jis", "shift-jis"と2重にしたんですが、おかしな書き方になるのでしょうか?
別の書き方がありましたら教えて下さい。
0201nobodyさん
2009/03/14(土) 20:37:03ID:qjtwBjoLarray('a','b','c')
のように値の羅列の形式で代入された配列の正式名称って何ですか?
0203nobodyさん
2009/03/14(土) 20:48:34ID:???file_get_contentsに設定するパラメータは以下だけです
filename
flags flags
context
offset
maxlen
よって君は何か勘違いをしている
マニュアルをよく読みましょう
0204nobodyさん
2009/03/14(土) 21:06:31ID:???0205nobodyさん
2009/03/14(土) 21:10:32ID:???111.phpのエンコードが事前に分かっているなら後者の書き方のほうが望ましい。
前者だと、間違ったエンコード判定がされた場合文字化けの原因になるしな。
Shift_JISからShift_JISに変換しているわけで、ヘンっちゃあヘン、というか無駄だな。
状況によっては100%無意味というわけでもないが…
echo file_get_contents("111.php");
とほぼ同じ意味だ、というのは理解してるのかな。
0206nobodyさん
2009/03/14(土) 21:36:24ID:???var_dump($hoge);
echo "<br>";
function hogehoge(){
$hogehoge = "hogehoge";
echo $hogehoge;
}
var_dump(hogehoge());
echo "<br>";
function hogehogehoge(){
return "hogehogehoge";
}
var_dump(hogehogehoge());
の結果が、上から順に
string(4) "hoge"
hogehogeNULL
string(12) "hogehogehoge"
このNULLってどうしてでてくるんですか?><
0207nobodyさん
2009/03/14(土) 21:41:55ID:???0208nobodyさん
2009/03/14(土) 21:44:54ID:???$a = hogehoge();
$b = hogehogehoge();
として、$aと$bの中身をvar_dumpで見てみろ。
0209nobodyさん
2009/03/14(土) 22:01:33ID:fYsVSce/hogehoge()の中にreturnをいれて、
function hogehoge(){
$hogehoge = "hogehoge";
echo $hogehoge;
return "ho";
}
にしたらNULLなくなりました><
ありがとうございました
>>208
こうでしょうか><
$a = hogehoge();
$b = hogehogehoge();
var_dump($a);
echo "<br>";
var_dump($b);
結果、
hogehogeNULL
string(12) "hogehogehoge"
になりました><
0210nobodyさん
2009/03/14(土) 22:20:14ID:S24jNTMx<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
<input type="checkbox" name="bbb[]" value="かきくけこ">
あいうえお<br>
<input type="submit" value="選択">
</form>
<?PHP
if(isset($_POST['bbb'])){
foreach ($_POST['bbb'] as $a){
print ($a);
print "<br>";
}
}
?>
</body>
</html>
これで、ローカルで試すと問題なく動くのですが、
レンタルサーバーにアップロードして試すと
文字化けになります。なんででしょうか?
0211nobodyさん
2009/03/14(土) 22:33:52ID:???自己レス
サーバーのphp.ini の
mbstring.internal_encoding = UTF-8を設定して
上書きしてファイルを再読み込みしてリトライしたらできた。
サーバーのデフォルトではEUCになってた。氏ね。
0212質問させて下さい
2009/03/14(土) 22:37:16ID:hOLVrRGNそういうことについては全然勉強足りていないので頑張って覚えてみます。
アドバイス有り難うございます。
>>205
詳しい解説有り難うございます。
おかげでよく理解出来ました!
感謝しております。
>>200
意味がわかりませんでした。
失礼致しました。
0215nobodyさん
2009/03/14(土) 23:52:54ID:da46lvzdもし既存のライブラリがございましたら教えてください
0218nobodyさん
2009/03/15(日) 00:05:25ID:yySd7NKePHP 5.2.6-2ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli)
<?php
$DB = pg_connect("host=$DbIp dbname=$DbName user=$DbUser password=$DbPass");
?>
これはうちの環境の問題なのか、誰か教えて欲しい。
0220nobodyさん
2009/03/15(日) 06:06:20ID:???方法をご存じの方がいらっしゃいましたら教えてください。
0221nobodyさん
2009/03/15(日) 06:06:51ID:+CIxhGml0222nobodyさん
2009/03/15(日) 06:23:33ID:???0224nobodyさん
2009/03/15(日) 08:14:23ID:yySd7NKe書き方が悪かった。
実際の変数部分には正しい値が入る。
ちなみに接続も成功するしSQLの結果もかえってくる。
apacheで実行した時は何も問題ない。
でもcliの時だけfaultが最後に出るから悩んでる。
0225nobodyさん
2009/03/15(日) 08:41:14ID:???使ってるphp.iniが違うとかはないの?
それで落ちるかといえば疑問だけど。
とりあえずphpinfo() で使ってるphp.ini確認してみたら。
あとバージョンが違うライブラリにパスが通ってるとか。
0226nobodyさん
2009/03/15(日) 08:44:40ID:???・ログに書けないよエラー
・そのエラーログを書こうとしてエラー
・そのエラーログのエラーログを書こうとしてエラー
・その・・・・
とか。
0227nobodyさん
2009/03/15(日) 09:24:05ID:???前の子が来てる
0228nobodyさん
2009/03/15(日) 09:58:53ID:qN1+xeFs教えてください
0229nobodyさん
2009/03/15(日) 10:10:56ID:???いい方法かはわからないけど、
$i = 0;
foreach(){
$i++;
}
みたいなやり方はだめなのかな
count()を使えば配列の要素の数も得られるから、それで最後かどうかもわかるのでは
0230nobodyさん
2009/03/15(日) 10:44:14ID:???ubuntuなんで、php.iniは別なんだけど設定は同じ。
ライブラリ系もまったく同じ。
今思ったけど、linux板で聞いたほうがいいのかも。
ちょっと移動してきます。
ありがとう。
0231nobodyさん
2009/03/15(日) 11:14:01ID:???無い。
ループの何巡目かが処理に影響するような場合はforを使え。
0232nobodyさん
2009/03/15(日) 11:18:55ID:Ok7zsTbrじゃあ、クッキーが無い時代はどうやってたの?
0236nobodyさん
2009/03/15(日) 11:47:29ID:???どっちも平文で送信されるから似たようなもんだ
0238nobodyさん
2009/03/15(日) 14:33:41ID:???よくみるんだけど、数行程度でも?
0239238
2009/03/15(日) 14:40:11ID:???エラー見つけやすいから分けるのか
とりあえず小分けにしておくわ
0240nobodyさん
2009/03/15(日) 14:45:54ID:L+gdJUIE数行程度のクラスがわんさかあってもウザイと思うが
0241nobodyさん
2009/03/15(日) 14:46:54ID:L+gdJUIEクッキーの無い時代もあったんじゃね?
それよか、フォームすらなかった時代もあったんじゃね?
ネットスケープ社が頑張って実装したんじゃね?
0243nobodyさん
2009/03/15(日) 16:35:04ID:L+gdJUIEお前の方が大丈夫か?最初のHTMLは画像すら使えなかったって知ってるか?
0244nobodyさん
2009/03/15(日) 18:44:14ID:???0245nobodyさん
2009/03/15(日) 18:46:33ID:tXlRktlTそれをmysqlのtext型としてinsertしました
それをselectクエリで取り出して表示してみた所、改行されずに
表示されてしまうんですが、入力の時と同じように表示させる
ためにはどうすればいいんですか?
0247nobodyさん
2009/03/15(日) 19:05:30ID:???0249nobodyさん
2009/03/15(日) 19:25:38ID:tXlRktlT>>248
できました! こんな便利なものがあるなんて知らなかったです
まだまだ勉強不足ですね がんばります
ありがとうございました!
0250nobodyさん
2009/03/15(日) 19:29:36ID:???無料のジオシティーズでもPHPが使えるみたいです。
金を払ってサーバをレンタルするとどういういいことがあるのですか?
ttp://help.yahoo.co.jp/help/jp/geo/perl/perl-02.html
0252nobodyさん
2009/03/15(日) 19:33:13ID:???(1)
MySQLでPDOが使える(無料のところはPDO使えないことが多い)
(2)
強制挿入される広告が消える
(3)
場合によっては有料のところでは独自ドメインが使えるかも
(無料でも一部使えるところはある)
0253nobodyさん
2009/03/15(日) 19:34:26ID:???sendomailが使える
(無料のところではsendmailは無効化されていることがおおい)
sendmailが使えないとメールが送れない。
PHPのmail関数は、サーバーのsendmailに仕事を
丸投げしているだけなので、sendmailが動いていないと
何も起きない
0255nobodyさん
2009/03/15(日) 19:40:38ID:???ありがとうございました。
0256nobodyさん
2009/03/15(日) 19:44:18ID:???0257nobodyさん
2009/03/15(日) 19:50:20ID:???少数のサーバーに人を大量に詰め込むからな。
(そうしないと初期投資を回収できないので仕方ないが)
0258nobodyさん
2009/03/15(日) 19:50:22ID:???<?php
$i = 3;
switch($i){
case 0:
case 1:
case 2:
case 3:
case 4:
echo "iは0〜4";
break;
default:
echo "iは不明";
break;
}
?>
これがもし、case 0:〜case 4:の部分で、
case 0:〜case 100:までを判断したいとき
どういう風に記述すればいいのでしょうか。
0259nobodyさん
2009/03/15(日) 19:53:05ID:???0260nobodyさん
2009/03/15(日) 19:53:58ID:???0261nobodyさん
2009/03/15(日) 20:19:50ID:???0262nobodyさん
2009/03/15(日) 20:25:12ID:???if ($i >= 0 && $i <= 100) {
echo "iは0〜100";
} else {
echo "iは不明";
}
でいいのでは?
0264nobodyさん
2009/03/15(日) 20:33:50ID:???switchでcaseが大量になる場合は配列をうまく利用することをおすすめする
function func1() {
}
・
・
・
$case = array(func1(),func2(),func3(),・・・・・func999),
$case[0];
0267261
2009/03/15(日) 22:54:26ID:???せめて
$case = array('func1', 'func2', 'func3');
call_user_func($case[0]); // $case[0]();でも多分動く
にしとけ。
とりあえずそのコードは実行効率、可読性、保守性などあらゆる観点で最低だ。
後者2つについてはこのコードも大差ないが。
0268nobodyさん
2009/03/16(月) 01:35:07ID:???改行いっぱい使って、
$hoge = "hoge1"
. "hoge2"
. "hoge3"
;
こうしたのと、単に
$hoge="hoge1hoge2hoge3";
ってしたのとでは、
上のような改行いっぱい使った場合のが
積み重なってくると、改行使ってないものよりも
読み込みが遅くなる?
改行やスペースは無視になるとはきくけどなんか不安なのです。
0269nobodyさん
2009/03/16(月) 02:37:08ID:???文字列の結合の分遅くなるな、理論上は。
改行も、確かに理屈の上では遅くなる。人間に知覚できる差じゃないけどな。
仮に10000行空行があったとしても、目に見える応答速度差は出ない。
1MB分改行があっても気づかないと思う。
つうか、お前は、ペーパー代を惜しんでウンコした後ケツを拭かなかったりするのか?
ゴミみたいな高速化と可読性を天秤にかけるなら、どう考えても可読性を優先すべきだ。
■ このスレッドは過去ログ倉庫に格納されています