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

【PHP】下らねぇ質問はここに書き込みやがれ 43

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2007/04/01(日) 04:21:50ID:VGqlLhlD
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0884nobodyさん2007/04/10(火) 23:47:39ID:???
>>882-883
糞ワロタwwwwwwww
0885nobodyさん2007/04/10(火) 23:48:46ID:+1UvK/Fa
???
例えば3を入力した場合
is_int($_GET["data"])の返す値はTRUEにならないのでしょうか?
0886nobodyさん2007/04/10(火) 23:52:21ID:???
is_int()の仕様読まずにカキコ
引数が整数値じゃないとfalseじゃないの?
$_POSTの値は数値でも文字列だよ
やるならctype_digit()で
0887nobodyさん2007/04/10(火) 23:59:59ID:???
入ってる値をint型にするのなかったっけ
0888nobodyさん2007/04/11(水) 00:01:03ID:???
if(preg_match("/[^0-9]+/",$_GET["data"])){
echo"エラー:入力されたデータは整数値ではありません。";
}

とかは?
0889nobodyさん2007/04/11(水) 00:03:29ID:???
なにそのゴージャスな正規表現オーバーヘッドを気にしない使い方
0890nobodyさん2007/04/11(水) 00:05:27ID:???
マニュアルみている間に書かれたけど

>>888
が一番いいんでね?
(int)あたりでキャストしてもphpだと"50abc"でも50と判断しちゃうじゃなかった?
正規表現で判断するのが無難かと。


bool is_int ( mixed var )
与えられた変数が整数かどうかを検査します。
注意: 変数が数値もしくは数値文字列の場合 (フォームからの入力の場合は 常に文字列となります) 、is_numeric() を使用する必要があります。
0891nobodyさん2007/04/11(水) 00:06:04ID:???
正規表現でオーバーヘッド気にしてんのか?
0892nobodyさん2007/04/11(水) 00:07:58ID:???
/^[0-9]+$/ じゃね?
0893nobodyさん2007/04/11(水) 00:19:57ID:ZmOxrGFo
すいませんis_intのページに
>フォームからの入力の場合は 常に文字列となります
と思いっきりかいてありましたね(´・д・`;)


もう一つ質問です
フォームに無記入で送信した時に「入力されてないよ」というエラーを出したくて

if( is_set($_GET["data"]) == FALSE )
echo"入力されてないよ";

としてみたら、データを無記入で送信したときでなく
フォームのあるページに初めてアクセスした時に既にエラーが表示されてしまいました
無記入送信した時のみに表示するにはどうしたらいいのでしょう?
0894nobodyさん2007/04/11(水) 00:27:22ID:???
>>893
if(!is_set($_GET["data"])||$_GET['Submit'])
echo"入力されてないよ";

送信ボタンの名前は何よ?
0895nobodyさん2007/04/11(水) 00:36:36ID:ZmOxrGFo
送信ボタンは<input type="submit" value="送信">としていたのですが
送信ボタンにもname属性記述できたのですか
0896nobodyさん2007/04/11(水) 00:53:01ID:???
>>893
if($_GET["data"] == "") {
  echo '変数が用意されてるかどうかと中身がカラかどうかは違うよ';
}

あと、isset()のような気がする。
0897nobodyさん2007/04/11(水) 01:53:36ID:???
issetは変数
emptyは中身
0898nobodyさん2007/04/11(水) 02:19:55ID:???
この辺は引っかかりやすいところだけどマニュアルをきちんと読めば解決するはず
0899nobodyさん2007/04/11(水) 02:45:59ID:wpqDaNbU
掲示板のログファイルの最終行のログのみを取り出したいんですが、
$file = file("bbs.log");
$count = count($file);
$count--;
$file[$count];

という流れが妥当でしょうか?
もっと効率のよいやり方がございましたらご教授お願いいたします。
0900nobodyさん2007/04/11(水) 03:19:04ID:???
逆ソートして1番目とる
0901nobodyさん2007/04/11(水) 03:39:18ID:???
メソッドの中から、自分の名前(メソッド名)を知るには
どうすればいいでしょうか?
0902nobodyさん2007/04/11(水) 03:45:38ID:???
>>901
ネタ乙。
ネタじゃないなら>>1とちょっと前のレスを読んでから質問してこい。

0903nobodyさん2007/04/11(水) 03:49:30ID:???
>>894
テキストボックスのエンターとかで送信されたときに
submit buttonの名前を送らないブラウザがあったと思う
0904nobodyさん2007/04/11(水) 03:52:55ID:???
submitをCSSで画像にすると画像のどの位置がクリックされかを
POST先のページでX軸とY軸で取得できるって皆知ってた?
0905nobodyさん2007/04/11(水) 04:02:52ID:???
「explode()で配列にし、そのn番目を返す」
これを一文で書く方法ないですか?

$a = explode('/',$str);
echo $a[1];
こういう風にテンポラリ変数を介するのではなく
explode('/',$str)[1]
のように書きたいんです
0906nobodyさん2007/04/11(水) 04:10:54ID:???
欲しかったのは最後の要素だったのでend()で出来ました
こんな関数はじめて使った
0907nobodyさん2007/04/11(水) 04:28:41ID:???
>>904
type="image"
09088992007/04/11(水) 04:32:56ID:???
>>905
おお〜それです。まさしく求めていた答えです。
905さんのやりかたに便乗します。発見してレスに残してくれてありがとうございます。
0909nobodyさん2007/04/11(水) 08:51:13ID:???
>>901
__FUNCTION__かな
0910nobodyさん2007/04/11(水) 10:47:54ID:KfKwGm7g
for ($i = 0; $i < n; $i++) {
do_action();
}

True/Falseを返すdo_action()をn回行います。
Trueが返ってきた数によって、処理を決めたいのですが、
その処理をどこにどのように書けばいいのでしょうか?
n回全部Trueが返ってきた場合の処理と、
1〜n-1回返ってきた場合の処理と、
n回全部Flaseが返ってきた処理を書きたいです。
0911nobodyさん2007/04/11(水) 10:59:41ID:???
$woofoo = 0;
for ($i = 0; $i < $n; $i++) { 
 if(do_action()) $woofoo++;

if($woofoo==$n){
}elseif(0<$woofoo and $woofoo<$n){
elseif($woofoo==0){
}
0912nobodyさん2007/04/11(水) 11:00:35ID:???
$t = 0;
for ($i = 0; $i < n; $i++) {
if(do_action()==true){$t++;}
}
if($t==0){
echo "ない";
}elseif($t<5){
echo "ある";
}else{
echo "すぎ";
}

ううう
09139102007/04/11(水) 11:14:53ID:KfKwGm7g
>>911-912
お二人方どうもありがとうございます。
見事にスクリプトが一緒ですねw
早速使わせていただきます。
0914nobodyさん2007/04/11(水) 11:30:55ID:???
一緒っていうか基本中の基本。
もっとえろい書き方もできるけどロジックに忠実に(バカ正直に)書いたらこんなものになるのが普通
0915nobodyさん2007/04/11(水) 12:52:10ID:ZybRpRjg
日付をindexにして他に4つぐらいのカラムをもたせたMySQLを,月単位で一括編集するphpを書いています.
今,編集したい月と年を受け取って,その月の各フィールドに対する情報を入れるためのフォームをphpで出力しようとしているのですが,
"SELECT * FROM schedule WHERE DATE_FORMAT('date', '%Y-%m') = " . 年 . "-" . 月;
というクエリを送って,その結果をmysql_fetch_assoc()しても
まだ何もデータを入れていないせいだと思いますが,FALSEを返します.
各フィールドにデータが入っていてもいなくても,その月の日数分だけ処理を実行するにはどうすればよいですか?
0916nobodyさん2007/04/11(水) 12:56:56ID:???
日本語でおk
0917nobodyさん2007/04/11(水) 13:03:31ID:???
>>915
まずどこまでできたのかコードを晒せ。1から聞きたいのなら丸投げスレへ
0918nobodyさん2007/04/11(水) 13:11:45ID:???
>>915
mysql_fetch_assoc()でfalseが戻ったら
目的の処理をするように
PHPで記述すればいいだろ。
0919nobodyさん2007/04/11(水) 13:15:29ID:???
なんという要領を得ない質問・・・この人は間違いなく初心者

まだデータはないけど動作確認のために編集処理したいってこと?
0件ならFALSEが返ってきて当然だけど、どう動作してほしいの?
サンプルデータを入れるなり、新規登録フォームを作って入れるなりすりゃいいじゃん
09209152007/04/11(水) 13:48:33ID:ZybRpRjg
仰る通り初心者です.MySQLとか初めてです.
昨日始めて,やっとまともに接続できるようになりました.
要領を得ない質問ですみません.

これは簡易スケジュール帳なんですが,なんでこんな処理をしたいかというと,
既にその日のスケジュールが定義されている場合は,フォームのvalueに既に入ってるスケジュールを表示して,
定義されてない場合でも,その日のスケジュールを編集するためのinputタグを出力したいからなのですが.
0921nobodyさん2007/04/11(水) 13:50:58ID:???
if(定義されてない場合でも){その日のスケジュールを編集するためのinputタグを出力したいからなのですが.}
if(mysql_fetch_assoc(なんたら) ==false){echo '<form>.................';}
それだけの話しだろ
0922nobodyさん2007/04/11(水) 13:53:34ID:???
うんやりたいことをそのままロジックに落とせばいいだけの話なんだけども。
その中で処理の仕方や書き方が分からなかったら質問してくれれば良い。
DBというよりプログラムの問題だよね。卒研かなんかですか?
0923nobodyさん2007/04/11(水) 13:56:10ID:???
>>920
言いたい事はわかるが上でみんながいっているようにphpで処理させるだけ。
問題はphpでどこまで出来ているのかということ
0924nobodyさん2007/04/11(水) 13:58:02ID:???
>>920
inputタグのvalueプロパティをDB格納値にするか、
空欄にするか、ってことでしょ?

>>922の言うように、
自分のやりたいことをナンバリングしながら
順を追って説明する文章を書けば、
90%くらいはできあがると思われ。
0925nobodyさん2007/04/11(水) 13:59:05ID:???
携帯サイトで掲示板を作っているんですが、
先にコメントなどを書かせて、
2ページ目でメールで画像を送ってもらう際、本文にIDをつけてDBと認証
投稿完了としたいんですがPHPで実現可能でしょうか?

ここみたいな感じです。
http://megaview.jp
0926nobodyさん2007/04/11(水) 14:01:36ID:???
IDだけで認証してええのん?
0927nobodyさん2007/04/11(水) 14:02:48ID:???
>>925
できる
0928nobodyさん2007/04/11(水) 14:12:36ID:aJnUgs6a
質問です。
外部に公開しているWebサーバでドキュメントルート以下に置いたスクリプトを
ローカルからのみアクセスできるようにするにはどうすればいいですか?
09299152007/04/11(水) 14:15:03ID:ZybRpRjg
素早いレスありがとうございます.
もうちょっと煮詰めます.卒研とかでは全くなく,サークルのサイトをリニュしろと言われて、、
0930nobodyさん2007/04/11(水) 14:15:03ID:yUjB1srR
プログってライブドアが最初に作ったのですか?
0931nobodyさん2007/04/11(水) 14:15:40ID:???
>>928
>ローカルからのみ
この意味が不明
ローカルホスト(たとえば127.0.0.1)でのみって言う意味か?
それともプライベートネットワーク経由という意味か?
0932nobodyさん2007/04/11(水) 14:16:36ID:???
>>928
ディレクトリのオーナーとPermission変えとけwww


>>930
んなわきゃない。
0933nobodyさん2007/04/11(水) 14:16:58ID:aJnUgs6a
ローカルホストからという意味です。
そのWebサーバが動いているPCからのみアクセスできたらと考えています。
0934nobodyさん2007/04/11(水) 14:19:39ID:???
>>928
192.168.*
三番目の*に当てはまる数字は環境によって違うからipconfigでデフォルトゲートウェイみて記入しろ

間違っても192.168.*.*と4つ数字はかくなよ
0935nobodyさん2007/04/11(水) 14:20:49ID:???
じゃあスクリプトの頭に
if($_SERVER["REMOTE_ADDR"]!='127.0.0.1') {die();}
つけときなさい。
httpd/.htaccessの設定で
deny from all
allow from 127.0.0.1
でもいいけど。
0936nobodyさん2007/04/11(水) 14:23:59ID:???
昼下がりに、こんにちは。

phpに任意のサイト丸ごとを保存させたいのですが
読み込んでも普通はhtmlソースだけですよね?

html内の画像のurlを拾って同じフォルダ構成にしてバイナリ保存して…
ではなくて何かmht的なスマートなものはあるんでしょうか?
0937nobodyさん2007/04/11(水) 14:28:12ID:???
なぜ PHP mht でグーぐるを検索しないのか
09389252007/04/11(水) 14:29:08ID:???
>>926-927さん
変レス有難うございます。

メールで送られたものを自動で取得
これはPHPでできるのでしょうか?
自動がどうやるのか思いつきません。
IDはハッシュ値かなんかで認証しようと考えています。
0939nobodyさん2007/04/11(水) 14:33:06ID:???
>>938
.forwardでphpスクリプト動かせばいいんじゃないの?
09409252007/04/11(水) 14:37:06ID:???
>>939さん
kwskお願いします!!
0941nobodyさん2007/04/11(水) 14:42:45ID:???
初回でIDださないやつに回答するの控えない?
0942nobodyさん2007/04/11(水) 14:43:03ID:???
>>940
PHP自体の話題じゃないから、.forward スクリプト とか mail alias スクリプトあたりで検索してみて。
ピント来ないのであれば、.forwardやメールaliasでよく使われるprocmailと一緒に検索。
.forward procmail とか。そこらへんからなにをやってるのか糸口をつかもう。
0943nobodyさん2007/04/11(水) 14:43:45ID:???
>>941
ああごめん。回答しちゃったw
09449252007/04/11(水) 14:48:34ID:???
>>942
ご丁寧にありがとうございますm(_ _)m
サーバーサイドは無知ですので書籍等も探してみたい思います。

>>941
マニュアル人間!
09459252007/04/11(水) 14:54:43ID:???
>>941
しねよカス。

>>943
えっと、ググってみましたがいまいちよくわかりません。
もう少し詳細に教えていただけませんでしょうか?

>>944
偽者やめてください・・・
09469252007/04/11(水) 15:06:45ID:???
偽者とかウザいのでもういいです。
0947nobodyさん2007/04/11(水) 15:19:11ID:???
|ω^)
0948nobodyさん2007/04/11(水) 15:30:56ID:???
お互い気持ちよく使うために質問者はID表示のご協力お願いします。
0949貴之2007/04/11(水) 16:07:05ID:1U3tdNyu
ルートディレクトリの下を定数"ROOT_DIR"に入れる場合は
define ("ROOT_DIR", realpath( dirname(__FILE__) . '/..' ).'/' );
となると思うのですが、
ルートディレクトリの上を定数にするにはどうしたらいいでしょうか?
0950nobodyさん2007/04/11(水) 16:11:42ID:???
貴之くんはぐぐるって言葉を覚えてからきてね
0951nobodyさん2007/04/11(水) 16:25:39ID:???
顔みたい '/..' ).'/' )
0952nobodyさん2007/04/11(水) 16:36:47ID:???
banzai("__FUUN__",ヽ(´ー`)ノ);
0953貴之2007/04/11(水) 16:50:59ID:1U3tdNyu
>>949
既にぐぐりました!
ID出すとかきちんとルールは守っていますので。
口が悪くてすみません。
でも教えてください!
0954nobodyさん2007/04/11(水) 16:52:36ID:???
何歳ですか?
0955nobodyさん2007/04/11(水) 17:14:42ID:aPlJaTQ1
PHP 4.3.9を利用しております。
os redhat es4 です

メールから受け取った文字列をPHPで処理してDBに格納するといったことをやりたいのですが、
mb_convert_encodingでのコード変換が上手くいきません。
いろんなサイトを見て回って教科書どおりだと思うんですが、なんで上手くいかないのでしょうか。

サンプルコード
==========================================================
#内部文字コードを表示
echo "internal=".mb_internal_encoding();
#受け取った文字列の文字コードを表示
echo "\n$mail['subject']=".mb_detect_encoding($mail['subject']);
#文字コードを変換
$test = mb_convert_encoding($mail['subject'],mb_internal_encoding(),mb_detect_encoding($mail['subject']));
#変換後の文字列の文字コードを表示
echo "\nafter convert=".mb_detect_encoding($test);


[結果]
internal=EUC-JP ⇒現在の文字コード
Array['subject']=JIS ⇒文字列の文字コード
after convert=SJIS ⇒変換後の文字コード
==========================================================
0956貴之2007/04/11(水) 17:23:27ID:1U3tdNyu
>>954
14です。
解答お願いします。
ググるワードでもいいのでお願いします。
ルートディレクトリ 上
くらいしか考えられなかったです。
0957nobodyさん2007/04/11(水) 17:48:00ID:???
>>956
define('ROOT_DIR', dirname(dirname(__FILE__)) . '/');
define('ROOT_DIR_UP1', dirname(ROOT_DIR) . '/');
0958nobodyさん2007/04/11(水) 18:11:00ID:???
>>955
mb_convert_encodingは正確に指示通りconvert出来るかどうか別だから、
mb_detect_orderをセットして優先順位を決めてからやってみたら?
0959貴之2007/04/11(水) 18:37:42ID:1U3tdNyu
>>957
できました!
ありがとう
0960nobodyさん2007/04/11(水) 19:24:32ID:zI9N6jIn
PHPで質問です

Aさん,10 Cさん,5 Bさん,-5 Dさん,-10
Dさん,8 Cさん,2 Eさん,-2 Fさん,-4
Bさん,9 Gさん,3 Hさん,-1 Cさん,-11

と、こんな感じで「名前,点数 (タブ区切り) 名前,点数 〜〜」
というデータが書かれたtsvファイルがあります。

これを

1位 Aさん 10点
2位 Bさん 4点
    ・
    ・
    ・

という具合に、順位とそれぞれの点数を全部加算して出力したいのですが、
よい実装方法が浮かびません。

あらかじめtsvファイルから名前だけを抜き出して重複チェックをし、
それを別のファイルに書き出しておく。
tsvファイルを開いてfileで配列にいれ、
foreachで回して、別ファイルに書き出した名前でひっかかった点数だけを抜き出して加算していく。
加算した点数と名前をまた別ファイルに書き出していく。
そして最終的にそれをソートし・・・

ってな具合かなと思ってるんですが、
もっとスマートな方法がありそうなので、質問してみました。
0961nobodyさん2007/04/11(水) 19:33:16ID:???
>>960
DBに突っ込んでSQLで集計。
0962nobodyさん2007/04/11(水) 19:38:44ID:???
>>960
ファイルを読みながら、名前をキー、点数を値にして配列を作る。
キーが既に存在したら点数を加算するだけ。
最後に配列をソート。
0963nobodyさん2007/04/11(水) 20:16:06ID:zNlK5rg/
質問です。
http://aaaaaaaa.ddo.jp:8080
などのWMEの配信が
今放送しているかどうかをチェックしたいのですが
どういう方法がいいんでしょうか?
お願いいたします。
0964nobodyさん2007/04/11(水) 20:17:27ID:???
includeして接続できるか0と1で返して判断するぐらいしか思いつかん
09659602007/04/11(水) 20:43:06ID:zI9N6jIn
>>961
レスありがとうございました。
確かにそうなんですけどね><
今回ちょっと使えないんです…

>>962
レスありがとうございました。
今ちょっとやってみたんですが、うまいことできそうです。
名前をキーにするっていう発想がなかったです…
0966nobodyさん2007/04/11(水) 21:00:20ID:zNlK5rg/
>>964
incやfopenでもFalseでした…
うーん
0967nobodyさん2007/04/11(水) 21:01:28ID:???
しかし960と962の文章を比べるとその差が歴然としてるな
09689602007/04/11(水) 21:06:34ID:zI9N6jIn
>>967
傷口を広げないで下さい><
0969nobodyさん2007/04/11(水) 22:07:13ID:???
PHPで質問です
<?php
$a = '?';
$b = 'か';
$c = 'し';
$d = 'ま';
$e = 'す';
$f = '週';
$g = '回';
$h = 'H';
$i = '何';
echo $f .$i .$g .$h .$c .$d .$e .$b .$a;
?>
0970nobodyさん2007/04/11(水) 22:12:47ID:???
>>969
7*3
0971nobodyさん2007/04/11(水) 22:20:59ID:???
>>969
echo mt_rand(10, 2000);
0972nobodyさん2007/04/11(水) 22:54:58ID:???
print empty($_GET['manko']);
0973nobodyさん2007/04/11(水) 23:04:55ID:???
>>29 とりあえず、こんなのでいいんじゃね?

12のPHP最適化テクニック
ttp://phpspot.org/blog/archives/2006/11/12php.html

01. staticメソッドが使えるなら使おう。速度は4倍になる
02. __get, __set, __autoload は使わない
03. require_once は重い
04. include, requireで読み込むファイルはフルパスにしよう
05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
10. $row['id'] は $row[id] より7倍速い
11. PHPのエラーメッセージは重い( noticeとかwarningとか)
12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。

(参考)
PHPの最適化は本当か?
ttp://jigen.aruko.net/archives/433/

PHPのパフォーマンス改善
ttp://selfkleptomaniac.org/archives/45

■最適化にまつわる神話
1. コメントをなくすと速くなる
2. ダブルクォート(”)はシングルクォート(’)より速い
3. 参照渡しの方がコードが速くなる
4. オブジェクトを使う方が速くなる
5. タナリ($a = 1 ? $b = $a : $b = 0;)はif(){}else{より速い
これらは全部嘘です。
0974nobodyさん2007/04/11(水) 23:39:07ID:???
正規表現で0〜100までと指定したい場合、どうすればいいでしょう?
これでは無理でした。
[0-100]
以下だとできるんですがスマートではないです。
100 | [1-9][0-9] | [1-9]
0975nobodyさん2007/04/11(水) 23:47:02ID:???
[0-9]{1,3}
0976nobodyさん2007/04/11(水) 23:50:28ID:???
>>973
ちなみにphp-5.2.1にて俺が取ったベンチだと
str_replaceが最速

ttp://www.uploda.org/uporg771139.gif.html
0977nobodyさん2007/04/11(水) 23:52:34ID:???
>>975
それだと101以上や0で始まる数字もマッチしちゃうんじゃないかな
てかintvalして普通に比較した方が
0978nobodyさん2007/04/11(水) 23:55:49ID:???
>>975
101〜999かかるんじゃない?
0979nobodyさん2007/04/12(木) 00:04:54ID:???
>>973
釣られておくけど、その記事のTIPSは
いくつかを除いて重箱の隅レベルのパフォーマンス改善だし
これを使えあれを使うな系はケースバイケースのものが多いし
正直あまり良くないと個人的には思う
初心者に誤った先入観を持たせるような気がする
0980nobodyさん2007/04/12(木) 00:07:58ID:???
>>976
うほっ!
原文読んだら、反対なのねん!
>str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4

>>979
俺も思う。だからテンプレに入れるべきじゃないと思うんだよね…。
0981nobodyさん2007/04/12(木) 00:12:30ID:???
初心者向けのこのスレのテンプレに入れるならこんな感じだよな。
「Q:処理が重いです A:コードを整理して無意味なコードやループを無くせ」
0982nobodyさん2007/04/12(木) 00:20:36ID:???
>>973
> 01. staticメソッドが使えるなら使おう。速度は4倍になる
そんなもんクラス設計によりけりだから
> 02. __get, __set, __autoload は使わない
使うと便利になるケースめちゃくちゃあるだろアフォかおまえは
> 03. require_once は重い
分かるけどコードキャッシュなりなんなりで解決すべきで
コーディングで対処するものではないのでは
> 04. include, requireで読み込むファイルはフルパスにしよう
これも誤解を招く書き方
> 05. スクリプト開始時のUNIXタイムを $_SERVER['REQUEST_TIME'] で取れる
ふんふん、それでそれで?
> 06. strncasecmp関数やstrpbrk関数を使えるケースはこれらを使い、正規表現は使わない
微妙
> 07. preg_replaceはstr_replaceより速い、しかし、strtrはpreg_replaceより4倍速い
これはまあベンチの話だし的は外してない
> 08. 引数を、単体か配列かで自動判別するようなコードは出来るだけ避ける
ケースバイケース
> 09. @ を使ったエラー制御はとても遅い。→ @fputs($fp, "?");
これは俺もあまりおすすめしない
> 10. $row['id'] は $row[id] より7倍速い
それnoticeちゃうんかと
> 11. PHPのエラーメッセージは重い( noticeとかwarningとか)
じゃあおまえはもうerror_reporting(0)でずっとコーディングしてろこのハゲ
> 12. for ($x=0; $x < count($array); $x) のように、forの中でcountを使うと毎回countが呼ばれるので使わない。
どっちでもいーよ死ね

こんな感じだろ?実際
0983nobodyさん2007/04/12(木) 00:23:33ID:???
>これはまあベンチの話だし的は外してない
>>980
レス数が950を超えています。1000を超えると書き込みができなくなります。