13/05/26 23:01:58.78
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 127
スレリンク(php板)
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2:nobodyさん
13/05/26 23:02:30.33
関連リンク
■本家マニュアル URLリンク(www.php.net)
■日本PHPユーザ会 URLリンク(www.php.gr.jp)
■PEARマニュアル URLリンク(pear.php.net)
■メーリングリスト URLリンク(ns1.php.gr.jp)
■ZFマニュアル URLリンク(framework.zend.com)
■Smartyマニュアル URLリンク(www.smarty.net)
(以下英語)
■Zend本家 URLリンク(www.zend.com)
■Zend Framework URLリンク(framework.zend.com)
■php | architect URLリンク(www.phparch.com)
■Smarty URLリンク(www.smarty.net)<)
■PECL本家(英語) URLリンク(pecl.php.net)
3:nobodyさん
13/05/26 23:03:00.97
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ URLリンク(example.com)が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「~.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
4:nobodyさん
13/05/26 23:03:31.47
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_~()が手軽。複雑なパターンはpreg_~()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
URLリンク(www.faqts.com)
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://~とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
5:nobodyさん
13/05/26 23:04:25.16
☆初心者必読☆
URLリンク(ameblo.jp)
>数々の糞仕様の発見で驚きを提供してくれる人気プログラム言語PHP
URLリンク(usamimi.info)
>「初心者にもWebアプリケーションが書ける」という幻想を与えることで、 バグだらけで、メンテナンス性が低く、
>セキュリティ問題を抱えた Webアプリケーションを乱造することになっているのではないだろうか。
URLリンク(qarc.info)
>PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。
URLリンク(www.tiobe.com)
PHPは順位を維持しているものの-0.16%、
一方のRubyはというとPHPより順位は低いものの+0.34%、
このままいけば必ず逆転する
URLリンク(www.anlyznews.com)
>5. PHPなどのスクリプト言語しか知らないのに、プログラミング言語の優劣を語る。
>6. PHPの遅さを知らないのに「最近のマシンは速いからプログラミング言語に速度は求められていない」と言い切る。
>11. 仕様が曖昧で急激に変化するPHPで、テストファーストとか言い出す。
>13. ブログで自らの無知をさらけ出す。
URLリンク(creeper.no-ip.info)
>■ 変数名を間違えると新しい変数が作られる
>■ 文字列の変数展開がクソ
6:nobodyさん
13/05/26 23:05:04.28
テンプレここまで。前スレ>>1000を踏んでも次スレが見つからなかったので建てました。
7:nobodyさん
13/05/26 23:09:53.91
勝手にテンプレにすんなボケ
8:nobodyさん
13/05/26 23:10:20.06
死ねカス
9:nobodyさん
13/05/27 00:34:12.76 QfhA6lTw
フレームワーク?ってなにが美味しいんですか?
人の書いたのってなんか中身がわかんないから心配だし、フレームワークとか余計に面倒臭いんですけど…
10:nobodyさん
13/05/27 01:03:09.11
sohoとかクラウドワークスとか見ててもphpの案件ばっかりだな
perlとかrubyとかやってたってしょうがないよ
11:nobodyさん
13/05/27 11:41:16.08
【OS名】Debian 7
【PHPのバージョン】5.4.4
【連携ソフトウェア】特になし
【質問内容】
Debian 7 で、apt-get で普通に Apache や PHP を入れただけの環境なんですが、
phpinfo() の結果を見ると、_SERVER["REQUEST_TIME"] が -472361226 のような
負の数になっています。
_SERVER["REQUEST_TIME_FLOAT"] のほうは正常に 1369622206198 などという数値を示します。
Debian 6 のころとバージョンが変わって、
何か設定しなければならないことが増えたのでしょうか。
それとも、何らかのバグでしょうか。
同じような現象に遭遇された方がいらっしゃったら、情報をいただきたいです・・・。
12:11
13/05/27 13:24:05.88
11 です。
自己解決しました。
libapache2-mod-php5 ではなくて、
libapache2-mod-php5filter がインストールされていたのが原因でした。
libapache2-mod-php5 をインストールしなおしたら解決しました。
libapache2-mod-php5filter なんて、いつ入ったんだろ・・・。
どうもお騒がせしました。
13:nobodyさん
13/05/27 15:23:20.56
>>9
自分で作ればいいんじゃない?
14:nobodyさん
13/05/27 18:23:54.08
>>9
あれは奴隷製造機だからな あれをちゃんと使えないと立派な奴隷になれないぞ!
15:nobodyさん
13/05/27 18:40:37.66 QfhA6lTw
あの、場違いな真面目な質問(悩み?)です。
以前はWindowsネイティブなアプリも請け負ってましたが、最近は全くありません。もうほとんどWebアプリだけです。
クライアントは全て中小零細企業ですが。
FORTRAN77からプログラムを初めてCの開発実績が一番長いのですが、現在はPHPとSQLがメインです。SQLはオラクルシルバー持ってます。
一番重要なのはデータベース設計なんで、プロフラム言語は別になんでもいいんですが、ほんとにPHPは将来性がないんですか?
まさかpythonでやれとかRubyに行けとか、家族を抱えた職業人の私に言わないですよね?
Javaとか無理ですよ、現実。
だって、受注後0.5~1ヶ月くらいで実運用求められる案件ばっかですから。
有識者のご意見下さい。
16:nobodyさん
13/05/27 18:55:05.57
>>15
Java人間雇えば? 仕事もらえるネットワークが財産であり武器である
17:nobodyさん
13/05/27 19:01:43.49
>>16
ぜんぜん分かってねぇな、こいつ
18:nobodyさん
13/05/27 20:10:40.42
>>15
PHPの何を心配してんの?
19:nobodyさん
13/05/27 21:36:01.20
>>15
PHPに将来性があるかどうかを心配しているようだが、
言語の有用性の推移に関する未来予測を行う方法は数多く提案されていて、
予測不可能だとする従来の学説と真っ向から対立する形になった。
肯定派と否定派の合同の研究班が結成され、
いくつかの推測方法を検証したところ、
全くのでたらめと言うべき結果も数多くあった一方で、
統計学的に有意とされる結果も数例ほど報告された。
その比率は優位な方法が全体のわずか5%という微々たるものではあったが、
追跡調査ではそのうち約半数がやはり有意な結果であった。
研究班はこの推測方法でプログラミング言語の将来の有用性を測ることが
不可能であるとは断言できる理論は今のところ確立されていないという結論に達した。
20:nobodyさん
13/05/27 21:38:37.26
その推測方法をPHPのコードとして実現したものがこちら
<p>PHPには将来性が
<?php
echo array_rand(array('ある', 'ない'));
?>
</p>
21:nobodyさん
13/05/27 21:43:31.36
あのー、array_randが返すのは配列のキーですが
22:nobodyさん
13/05/27 21:54:44.95
わろた
23:nobodyさん
13/05/27 22:15:29.80 BO/BVLbf
静的クラスを明示する方法って、
コンストラクタをprivateにするくらいですか?
24:nobodyさん
13/05/27 22:28:17.24
何言ってるかわからない
25:nobodyさん
13/05/27 23:56:42.17 BO/BVLbf
URLリンク(msdn.microsoft.com)(v=vs.80).aspx
C#では
static class CompanyInfo{
}
のように静的クラスを宣言できますが、
PHPで
static class Hoge {
}
と記述したらエラーになりますよね
だから静的にしか使って欲しくないクラスは、
newした時点でエラーになるように、
コンストラクタをprivateにするとか、コンストラクタで例外を投げるとか、
あまりスマートではないけれど、それくらいの方法しかないのでしょうか?
ということです
26:nobodyさん
13/05/28 00:12:03.68
静的プロパティを保証できないんじゃない?
27:nobodyさん
13/05/28 09:13:21.58
>>15
何歳?Web系は言語よりhttpの知識の方が必要だよ。
スマホのネイティブアプリやれば?
28:nobodyさん
13/05/28 12:42:57.98
【OS名】Ubuntu12.03
【PHPのバージョン】5.3.10
【連携ソフトウェア】MySQL
【質問内容】
whileからのmysqli_fetch_rowやassocを使った際、最後の一行が読み込まない状態で困っています。
例えば「v,w,x,y,z」の5つを入れて参照すると、v,w,x,yのみ表示されzが読み込まれない状態です。
ぐぐってもそれらしいコメントが見つからなかったため質問しますが、わかる方いらっしゃいますか?
29:nobodyさん
13/05/28 12:46:22.24
12.04でした。
30:nobodyさん
13/05/28 13:35:45.94
どうやって読んでる?
一回足りないだけのような
31:nobodyさん
13/05/28 15:16:24.29 3sZRAxgy
>>27
ありがとうございます。
えっと、30代です。
HTMLの知識ってなんですか?
全然煽るつもりも喧嘩売るつもりもないんですけど、
「知識」ってほどのものなんかなんにもないですよ、HTML
ちょっと意味がわからないです。
あと、スマホのネイティブアプリとか言いますけど、趣味でやってる学生じゃないのでご理解ください。
作る「だけ」なら、もちろん作れますよ、当たり前だけど。
やっぱ色々考えてみると、当面零細企業相手の仕事ではPHPと各種データベースの組み合わせしか選択肢がないですね、現状。
アカデミック()な分野はべつとして
32:nobodyさん
13/05/28 15:23:37.70
DBやってるならDBの設計終われば言語何でもいいのはわかるべ
それに複数言語扱うのも大したことは無い、phpやりながらjava慣れとけばいい
環境作る方が大変だけどな。
httpはやればやるだけできること広がるから何でも手をつけておいた方がいいよ。
33:nobodyさん
13/05/28 15:40:16.32
痛々しい30代ですことw
34:nobodyさん
13/05/28 15:55:19.72
>>31
> HTMLの知識ってなんですか?
10年以上前の、超しょぼいページ遷移しかしないWebアプリしか作らないなら、それほどHTMLの知識は要らない。
サーバ側で静的ページを生成して戻すだけだし。
そこそこ見栄えが良く使い勝手が良いWebアプリを作るなら、CSS, HTML, Javascriptの知識が最低必要。
35:nobodyさん
13/05/28 15:59:24.99 3sZRAxgy
>>34
いやいや(苦笑)
>CSS, HTML, Javascriptの知識が最低必要
そんなの分かってるから
36:nobodyさん
13/05/28 16:00:07.20 3sZRAxgy
ごめん、ここで聞いた俺が馬鹿だった
謝る m(__)m
37:nobodyさん
13/05/28 16:01:04.33
HTMLじゃなくてhttpと書いたのは、SOAPを始めとするプロトコル関連も含んでるんじゃないのか
38:nobodyさん
13/05/28 16:01:21.84
こういうおっさんに限ってHTML4.01 CSS2.1止まりなんだよなww
39:nobodyさん
13/05/28 16:02:34.53
30代越えるとhttp=インターネット=HTMLだから赦してやってくれ
40:nobodyさん
13/05/28 16:03:21.97 3sZRAxgy
>>37
うん、それならまだ分かるね
ありがと
41:nobodyさん
13/05/28 16:03:51.27 3sZRAxgy
>>38
自己紹介乙
42:nobodyさん
13/05/28 16:05:58.18
>>36
貴方や会社の将来設のことを
たかが言語に求められても困るでしょう。
PHPなんてのは ただの道具ですよ。
43:nobodyさん
13/05/28 16:08:00.03
>>42
謝ってんだからもういいじゃん
44:nobodyさん
13/05/28 16:13:57.60
謝ってるってもしかしてだけど>>36のこと?
45:nobodyさん
13/05/28 16:27:43.76
phpの質問スレだからな、たしかに聞く場所間違ってるw
46:nobodyさん
13/05/28 17:42:44.97
>>35
> そんなの分かってるから
いや、わかってないと思うよ。だってサーバサイドの話しかしてないじゃん。
47:nobodyさん
13/05/28 18:03:18.41
人の行く 道に裏あり 花の山
いずれを行くも 散らぬ間に行け
48:nobodyさん
13/05/28 18:11:02.84
>>30
足りないだけなのでしょうか。
以前も同じような構文で作ったんですがその時は最後までループして吐き出してくれたので大丈夫だと思ったんですが・・・
49:nobodyさん
13/05/28 18:24:18.73
>>31
いや、HTMLじゃなくて、HTTPプロトコルのこと。
パケットを見るとかじゃなく、単純にどうやってWebは動いているかって知識。
ノウハウと言い換えても言いけど。言語仕様なんてたいしてハードルじゃない。
まぁ、メールの問い合わせフォームとかならそうでもないけどね。
ネイティブアプリ作れるなら、そっちの方が需要あるよ。
50:nobodyさん
13/05/28 20:10:53.94
>>48
ID
51:nobodyさん
13/05/28 20:44:35.96 02y4dFlJ
HTTPS抜きでやるつもりかよ
PHP厨はやっぱダメだな
52:nobodyさん
13/05/29 09:57:21.09
意味わかんね
知ったかで文句付けてみただけのようなw
53:nobodyさん
13/05/29 10:38:34.32
<?php
$moji = array(
'iti' => '<html>',
'ni' => '<body>'
);
?>
<html>
<head>
<meta>
<title>ソース変換</title>
</head>
<body>
<form>
<div class="container">
<label for="sosu">ソースを表示</label><br />
<textarea rows="5" cols="30" ID="memo" name="memo">
<?php print($moji['iti']); ?>
<?php print($moji['ni']); ?>
</textarea>
</div>
</form>
</body>
</html>
テキストエリアで改行するにはどうすればいいですか?
やりたいことは、htmlやphpのコードをテキストエリアに貼り、
htmlspecialcharsで文字列を置き換えるということです。
54:nobodyさん
13/05/29 11:02:28.95
>>53
IDが出ていないので、お答えしないことになっています。
55:nobodyさん
13/05/29 11:03:57.58
>>51
自分は分かってるつもり乙
56:nobodyさん
13/05/29 11:08:36.90
phpというよりほとんどhtmlの話だけど、ID出してね
57:nobodyさん
13/05/29 11:49:17.19
ID出す前に一言言わせてくれ。
得体のしれないブログ記事をつまみ食いして質問してくんな。
参考にしてるソースが古過ぎる。
古いソースは問題が多い。
新しい記事を参考にして書いたんだったらその参考にしてる記事がクソ。
記事の信憑性を見極めるのにはそれなりの知識が必要だから、
最初は新し目の書籍を一冊買ってとりあえずそれだけでやるといい。
58:nobodyさん
13/05/29 11:57:13.93
\n
59:nobodyさん
13/05/29 12:10:44.61
これは、PHPの閉じタグ直後の改行コードの扱いの仕様の問題
60:nobodyさん
13/05/29 12:17:09.28
俺がやりたいことをやってるサイトがあるんだが人のサイトだからここに
貼るわけにもいかず・・・
61:nobodyさん
13/05/29 12:20:27.72
WWWの原則としてリンクは自由であるべきだ
62:nobodyさん
13/05/29 12:34:39.92
>>59
閉じタグの後に改行しなくちゃいけないとでも思ってるのかよ
63:nobodyさん
13/05/29 12:37:04.24
>>62
*PHPの*閉じタグの直後の改行コードは、無効にされますので、
<?php print($moji['iti']); ?>
<?php print($moji['ni']); ?>
だと、?>のあとの改行は出力されず <html><body> と出力されます。
<html>
<body>
としたければ、 1行目と2行目の間で2回改行するとか、そういうことです。
64:nobodyさん
13/05/29 12:39:54.49
なんだ質問者かよ、ID出さなきゃ答えられないって言ってるだろ
65:nobodyさん
13/05/29 13:12:38.05 16tE3DEI
>>63
phpじゃなくhtmlでの<br>改行とかならわかるんだけど
テキストエリアなので困ってます。
66:nobodyさん
13/05/29 13:22:54.89
>>65
テキストエリアですので、 <textarea>タグ直後でなければ、
htmlソースの改行コードで改行されます。
<?php print($moji['iti']) ."\n"; ?>
とするか、
<?php print($moji['iti']); ?>
<?php print($moji['ni']); ?>
とやってみてください。
67:nobodyさん
13/05/29 13:30:33.99
\r\n
68:nobodyさん
13/05/29 14:49:16.39
親切に回答してるなぁ。>>59の人だろか。乙
69:カミカゼ
13/05/29 22:53:50.60 RY40XdSy
●じゃあのさん来た!●
71:カミカゼ[]
2013/05/29(水) 22:14:04.77 ID:2XhNblnz0
ようおまいらwwww元気ぃ?wwww
よろしくやってたかい?www
久々に遊びに来たぜwwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
スレリンク(news4vip板)
70:nobodyさん
13/05/30 01:46:13.16
関数、クラスをfunction.phpにまとめています
この読み込みの挙動について聞きたいです
function.phpに大量の関数、クラスがある場合は、includeに時間がかかるのでしょうか
それとも呼び出した関数、クラスのみ探して読み込んでくれるのでしょうか
クラスの挙動についても聞きたいです
30つ以上メソッドがあるクラスをインスタンス化して、5行程度の1つメソッドの使う場合の
負荷はどのようなものになるのでしょうか?
71:nobodyさん
13/05/30 01:46:56.46 MG1e5+Bh
すみませんID忘れていました
72:nobodyさん
13/05/30 02:41:01.79 EYpF140+
すみませんID忘れていました
73:nobodyさん
13/05/30 07:11:45.94
>>70
全部読み込む
74:nobodyさん
13/05/30 07:49:43.25
クラスは一つずつ別ファイルにして
オートロード機能を使うと良いよ
75:nobodyさん
13/05/30 09:36:45.67
>>66
確認しましたm(_ _)m
76:nobodyさん
13/05/30 12:59:25.56
>>74
オートロードってパフォーマンス的に駄目駄目じゃない?
OSのメモリ上にファイルのキャッシュが残ってればそうでもないのかな?
77:nobodyさん
13/05/30 13:09:24.65
APCでキャッシュしちゃえば全然問題ない。
78:nobodyさん
13/05/30 18:07:25.88 MG1e5+Bh
>>73
>>74
ありがとうございます
79:nobodyさん
13/05/30 19:59:55.00
>>76
質問はID出せよ知能障害
お前みたいに好き勝手やってるゴミは社会の迷惑
80:nobodyさん
13/05/30 20:25:17.82
>>76
使いもしないファイルを読み込むほうが・・・
って話とどっちが上か下かは状況次第じゃん
81:nobodyさん
13/05/30 20:34:40.45
>>76
includeの可能性があるファイルが10個あるとして
全てロードだとコスト10固定、
autoloadにしているとコスト0~10だと思うけど、
オートロードでダメな理由って何なの?
82:nobodyさん
13/05/31 03:30:57.93 0pyQKPZl
掲示板の投稿で
本文の70%が半角の場合は投稿拒否をしたいです
半角判定の方法はわかったのですが
~%で拒否の部分のコードをどう書けばいいのかわかりません
ヒントだけでもいいので助言ください
83:nobodyさん
13/05/31 03:39:27.57
$lenOfOriginal = mb_strlen($src);
$hankaku = preg_replace('/[^\x{FF65}-\x{FF95}]/u', '', $src);
$lenOfHankaku = mb_strlen($hankaku);
$ratioOfHankaku = $lenOfHankaku / $lenOfOriginal;
84:nobodyさん
13/05/31 03:43:39.41
if ($ratioOfHankak > 0.7) { throw new HogeHogeException(); }
85:nobodyさん
13/05/31 05:05:18.35 Vx9Hevlv
すみません、ドットインストールのCakePHPの講座をやっているのですが、
よくわからないバグが生じております。
ブログにコメントを付けるものなのですが、endforeachが不正と表示されて、
処理が進まないエラーが生じました。
一応、書き加えたソースは以下のものです。
<ul>
<?php foreach ($post['Comment'] as $comment); ?>
<li><?php echo h($comment['body']) ?> by <?php echo h($comment['commenter']);?></li>
<?php endforeach; ?>
</ul>
エラーが生じるのは、この<?php endforeach; ?>です。
ただ、他のソースでも、この部分はきちんと処理が実行でき、それをコピッてきたので、
スペルミスの可能性は少ないかと思います。
何卒、お願いします。
86:nobodyさん
13/05/31 05:08:09.36
なんだコレフレームワークってほんと別言語だな
87:nobodyさん
13/05/31 06:02:21.89
viewは大体こういう書き方のが多いね
モデルやコントローラーは普通のPHPクラスで書かれてる
88:nobodyさん
13/05/31 07:28:50.07
ここでID出せID出せっていってるやつは何目的でこのスレにいるんだ?
たいしたスキルもなく教えることもできないがIDだけにはこだわって
言い続けてる。お前は自閉症児かw
>>79
こういうやつなw何が目的なのか答えろよ引きこもりニートが
まっとうな言動をしてるようでお前の方こそ人を不愉快にしてることに
気づかないのか?
ようつべのコメントでもまともなコメをしてるようで相手をただ単に攻めてるだけ
ってのよくあるけどまさにそんな感じだな
お前みたいに自分の言動が人にどう思われるのかわからないで好き勝手にやってる
ゴミは社会の迷惑だから早く北朝鮮の炭鉱へ行って
89:nobodyさん
13/05/31 08:17:29.55
>>85
foreach();
じゃなくて
foreach():
でしょ
90:nobodyさん
13/05/31 09:52:51.73 Vx9Hevlv
>>89
わかりました、ありがとうございます。
foreach():
~~
endforeach;
ですね。
91:nobodyさん
13/05/31 10:55:23.57
>>88
言い回しはともかく、IDを表示するのがルールなんだから答える必要はないと思うよ。
君の言動?も相当人を不愉快にさせてると思うけどね。
92:76
13/05/31 11:53:17.47 2B6R5nZc
話の流れで疑問が出たときもID必要なのね。
>>81
> オートロードでダメな理由って何なの?
一発でパスを確定できるファイル名でPHPファイルを置いているなら問題ないけど、
ロード候補ディレクトリが複数になる場合は、ファイルの存在チェックが必要になる。
そのオーバーヘッド分が馬鹿にならないんじゃないかと思った。
SPRに準拠したnamespaceを定義していて、きれいにPHPファイルを配置してるなら
問題ないけど。
93:76
13/05/31 17:18:33.14
時間ができたのでちょっとだけ実験してみた。
一つのクラスをnewするだけのコードを、"ab -c 32 -n 10000"でrequire_onceとautoloadを比較。
PHP 5.4.10。APC有効。開発用Macで実行。
require_once版:
Requests per second: 8452.75 [#/sec] (mean)
Time per request: 3.786 [ms] (mean)
Time per request: 0.118 [ms] (mean, across all concurrent requests)
autoload版:
Requests per second: 6625.91 [#/sec] (mean)
Time per request: 4.830 [ms] (mean)
Time per request: 0.151 [ms] (mean, across all concurrent requests)
autoloadの方が20%程度くらい遅いけど、そこそこぬるい環境だったら問題ないのかな。
94:nobodyさん
13/05/31 17:31:36.61
自分でできるんなら、最初から自分でやれアホ
95:nobodyさん
13/05/31 17:43:27.30
必要なファイルの数 = N1
無駄なファイルの数 = N2
ファイルロードのコスト = L
オートローダによる1ファイルあたりのオーバーヘッド = A
(オートローダのファイルロードコスト = L+A)
とした場合のファイルロード全体のコスト C
通常のファイルロードコスト C1
C1 = (N1+N2) * L
オートローダ使用時のコスト C2
C2 = N1 * (L+A)
オートローダ使用時の差分 C2-C1
N1*A - N2*L
96:nobodyさん
13/05/31 17:44:32.16
現状のフレームワークでプラグイン多用した構成の場合は
ファイルの存在チェックのほうがはるかにコストが低い場合が多いと思うけどな。
素で書き起こした機能限定のシステムじゃなければオートローダ使わない手はないと思うけど。
97:76
13/05/31 17:56:07.06
>>95
うーん、そもそもその「無駄なファイルの数」というのが何なのかわからないんだ。どういうこと?
ひょっとして、ロードする必要が無いファイルもrequireしてるってこと?
98:76
13/05/31 18:04:22.71
あ、こういうことか。
Foo.php:
<?php
class Foo {
public function hoge() { $o = new Bar(); }
public function fuga() { $o = new Baz(); }
Bar.php:
<?php
class Bar {}
Baz.php:
<?php
class Baz {}
index.php:
<?php
require_once 'Foo.php';
require_once 'Bar.php';
require_once 'Baz.php';
$o = new Foo();
$o->hoge();
としたとき、Baz.phpのロードがいらないってことか。
99:95
13/05/31 18:04:47.74
え、だからオートローダが有利な場面があるんじゃないの?
おかしい?
100:76
13/05/31 18:09:16.63 2B6R5nZc
ところで、>>98のような場合、autoloadを使わないとき、requireはどうやるのがいいのかな。
ケース1:Fooを使う人は内部のことなんかしったこっちゃないからFoo.phpでrequireしろ派
Foo.php:
<?php
require_once 'Bar.php';
require_once 'Baz.php';
ケース2:呼び出し側でやる派
index.php:
<?php
require_once 'Foo.php';
require_once 'Bar.php';
俺の場合は、最初はケース1派だったんだけど、理由は忘れたがケース2派になり、今はautoload派になった。
101:nobodyさん
13/05/31 18:13:00.31 2B6R5nZc
ケース1しかありえない
102:nobodyさん
13/05/31 18:13:21.01 2B6R5nZc
途中で送った。
ケース1しかありえない気がしてきた。
103:nobodyさん
13/05/31 18:25:19.05
正しい作法としてはケース1でしょ。
とはいえ、ファイル間の結合度や依存度によってケースバイケース。
たとえばフレームワークのルーティンにおいて bootstrap で基本ファイルを呼び出すっていうのはお決まりのパタン。
104:nobodyさん
13/05/31 18:27:37.83
autoloadが解決する問題は、複雑な依存性が存在した場合のrequire/includeであって、速度に関しては
副次的な物だと思う。
確かに、autoloadはnewのエラーをフックしてファイルをロードするので、無駄なロードは発生しない。
しかし、数千req/secもあるようなシビアな場合ではないのであれば、autoloadあるいはrequire/includeが
一度に付きms未満の差しかないのだから、速度に関してはあまり気にする必要は無い。
クラス名やファイル名、ファイルの配置については、PSR-0に従うのが現状ではベストでは無いかと思う。
そうすれば、autoloadにも対応しやすい。
105:nobodyさん
13/05/31 18:28:37.70
あと、include_once や require_once は結構コストかかるから出来たら使わないほうがいいんだって
ラードフさんが仰ってたよ
106:nobodyさん
13/05/31 18:29:30.28
includeの方がいいのか
107:nobodyさん
13/05/31 20:25:05.53
>>92
SPRってよくしらないんだけど、これ?
URLリンク(github.com)
108:nobodyさん
13/05/31 20:28:46.16
あ、PSRか、ゴメヌ
109:nobodyさん
13/05/31 20:47:34.66
>>92
きれいにPHPファイルを配置してautoload使いましょう、
で終了じゃないか
110:nobodyさん
13/05/31 21:08:07.40 0pyQKPZl
>>83
>>84
お礼遅れて申し訳ない
ありがとうございます
111:nobodyさん
13/05/31 22:00:54.96
最近phpでCLI処理を書いています
今までrubyやpythonを使ったりしてましたが、
PHPは実に使いやすい
いちいち何をincludeして~とか調べなくてもいいし、オブジェクト指向的にも問題ない
web以外にもPHP使うの最高じゃないですか?
なんでCLIではいまいち不人気なんでしょうか
みんなかっこつけてるんですか?
112:nobodyさん
13/05/31 22:08:35.93
便利だから使ってるし、みんな使ってるんじゃない?
113:nobodyさん
13/05/31 22:38:24.89 TNUtMHtE
エラーハンドラで受け取ったファイル名や行数から、その部分のソースコードを取得したいのですが、
それにはファイルを読み直さないといけないですか?
ソースコード自体はメモリに載っているはずなので、
ファイルを読まなくても取得する方法があるような気もするのですが…
114:nobodyさん
13/05/31 23:14:39.26
>>111
LinuxではPerlやPythonはデフォルトで使えることがほとんどだが、PHPはそうじゃないからじゃないかな。
あと、複数のバージョンを簡単に切り替える仕組みがない。
それに、CLIなのに/etc/php.iniを見に行くのがいけてない。
スレッドが使えないとか。
サーバアプリが書きにくいとか。
コマンドラインで使うときのライブラリが充実してないとか。
DB読むツール書くのは楽なんだけどね。
115:nobodyさん
13/05/31 23:57:29.92
>>114
-c オプションで好きなphp.ini見に行けるでしょ?
116:nobodyさん
13/06/01 00:04:17.77
>>115
shebangで/usr/bin/env使いたいときとか、cronと相性悪い。
117:nobodyさん
13/06/01 00:07:19.59
#!/usr/bin/env php
とかできるんだ。知らんかったわ。
118:nobodyさん
13/06/01 00:12:44.55
つか、もともとコマンドラインツール出身のperl, python, rubyと、それほどCLIに力を入れてないPHPじゃ
どっちが使いやすいか明白じゃん。
まあpharがもっと流行れば、もう少しはCLIにも脚光が当たるかもだけど。
119:nobodyさん
13/06/01 00:14:15.52
>>113
PHP自体はCで書かれてるので自由にカスタマイズすれ
120:nobodyさん
13/06/01 00:18:32.89
発想を変えて、独自エラーハンドラ定義して、エディタのtag jump に対応した形式でエラー出力して、
エディタでtag jumpするのはどうかな。
121:nobodyさん
13/06/01 00:27:44.17
PHPは元々の名前の由来自体が Personal Home Page Tools だからね。
それに最初は Perl で書かれてたんでしょ? PHP自体
122:nobodyさん
13/06/01 01:39:45.11
>>121
>それに最初は Perl で書かれてたんでしょ? PHP自体
初耳だけど。ソースは?
123:nobodyさん
13/06/01 01:47:06.51
ソースも何も、超有名な話だと思うがw
ラードフさんが、サイトの作成の際に perl だと余りにも面倒くさかったんで
自分のツールとして perl でライブラリを作ったのが最初だよ
124:nobodyさん
13/06/01 01:55:52.66
>>123
だから、そのことが書いてあるWebページplz
125:nobodyさん
13/06/01 03:22:53.18
>>124
URLリンク(manual.xwd.jp)
126:nobodyさん
13/06/01 03:28:32.98
>>125
URLリンク(php.net)
127:nobodyさん
13/06/01 03:34:45.32
>>126
最近のManualのHistoryでは、最初にPerlで記述したことは省かれてるけど(経緯はわからないけど)、少なくとも2006年までは「Perlスクリプトの単純な組み合わせでした」とされてるわけね。
何をムキになってるの?
128:nobodyさん
13/06/01 03:42:12.25
>>127
ムキになっているのは君でしょ
129:nobodyさん
13/06/01 04:24:03.89
あほ?
>>122 >>124 >>126 >>128
どうみてもおまえがむきになってるだろ(笑)
130:nobodyさん
13/06/01 09:25:46.27
>>129
つ鏡
131:nobodyさん
13/06/01 10:59:27.62
>>124
昔はいたるところで目にしたような気がしたんだが、たしかに今はあまり見かけないな
今確認できたのは Wikipedia の PHPの項目の歴史のセクションにちょこっと書いてある程度だし、
しかもPHPと名付けられた時点では既に C で書きなおされているとされている。
そもそもが曲解していたのかもしれないし、もはや perl との関係はなかったことにする流れなのかもしれないな。
132:nobodyさん
13/06/01 15:32:17.20 Lm5yShvx
抽象クラスのstaticメソッドの中から子の具象クラスのクラス名を知るにはどうすればいいですか?
133:nobodyさん
13/06/01 15:33:43.56
>>121
ださい名前だなぁw
パーソナルて
134:nobodyさん
13/06/01 17:04:54.97
>>133
作者個人専用ツールだったんだからパーソナルで間違いない。
135:nobodyさん
13/06/01 18:36:03.21
>>133
だったらCだってダサいだろ?
はじめてのC
(笑)
136:nobodyさん
13/06/01 18:38:20.52
C language って見た時、Body language を思い浮かべた俺はヘンタイ?
137:nobodyさん
13/06/01 18:45:11.97
>>132
意味が分からん。まさか、
class Parent {
static function hoge(){
// ここで Sub についてなにか知りたい
}
}
class Sub extends Parent {
}
ってことか?
138:nobodyさん
13/06/01 22:59:01.16
>>132
言いたいことがよくわからんが、できないと思うよ。
具体例をコードで示すのが吉。
139:nobodyさん
13/06/01 23:22:14.26
>>132
abstract class AbstractClass
{
public static function getName() {
echo static::thisName();
}
}
class concrete extends AbstractClass
{
public static function thisName(){
return __CLASS__;
}
}
$foo = new concrete();
$foo->getName();
140:nobodyさん
13/06/02 14:29:22.81 ZugnqmP2
POSTで送信されたデータは
基本的にissetで入っているかどうか判定しないと
送信されてない初期の場合にはエラーがでるものなのでしょうか?
勉強に使っているサンプルコードは特にPOSTデータのisset判定はしていません
特定の環境だけエラーができるものなのですか?
141:nobodyさん
13/06/02 14:32:47.73
>>140
エラーが出る出ない以前に、issetで判定するべき
142:nobodyさん
13/06/02 14:36:07.32 ZugnqmP2
>>141
ありがとうございます
判定するようにします
143:nobodyさん
13/06/02 15:48:58.82 3Klk3b6H
長い文章を「。」の後ろの位置で切りたいと思いますが
/。/でsplitすると、。が消えてしまいます
「。」を「。|」など、句切り用文字付きに置換してから、
句切り用文字でsplitすると、望みの結果になると思いますが、
これを一度のsplitで行なう方法はありますか?
144:nobodyさん
13/06/02 15:53:09.15
splitはそういう関数だからな
pre_match_allとか使えばいいんじゃない
145:nobodyさん
13/06/02 16:17:08.70
>>137
質問ならID出せゴミ
146:nobodyさん
13/06/02 20:58:44.71
>>143
消えてるって分かってるんだから、切ったそれぞれの後ろで。足せよ
147:nobodyさん
13/06/02 21:00:10.83
>>146
頭わりーなw
148:nobodyさん
13/06/02 21:45:31.73
まあ、 preg_split('/(?<=。)/' ,$txt) とかでどうかな。