【PHP】下らねぇ質問はID出して書き込みやがれ 107
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1304064660/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://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)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 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に保存?
→ 好きにしてください
10 :
nobodyさん :2011/06/05(日) 16:05:58.52 ID:zVaNXNf9
fsockopenを使って、httpクライアントを作成しているのですが、 サーバから送られてきたクッキーはどのように保存したらいいのでしょうか?
12 :
nobodyさん :2011/06/05(日) 21:23:41.48 ID:Er8j18ua
>>10 よく知らんが$http_response_headerあたりで拾えるんじゃないか?
お、こんな閑散としたスレも見ている人がいるもんですね
>>12 もしよければメアド晒しますのでメールで詳しく教えてもらえませんか?
15 :
10 :2011/06/05(日) 23:59:48.46 ID:zVaNXNf9
いいえ違います なんとか解決しそうです
>>15 もしよければメールで詳しく教えますのでメアド晒してもらえませんか?
17 :
nobodyさん :2011/06/06(月) 11:18:27.85 ID:uG8m23n2
ファイルアップロードについてですが、 一度全てファイルをアップロードするまでファイルサイズ確認できませんでしたっけ? 500MB以上のファイルをアップした際にエラーを出すような処理を入れようと思うのですが・・・。
違法うp厨乙
19 :
nobodyさん :2011/06/06(月) 12:16:53.83 ID:uG8m23n2
どの辺が違法うpなのかわからん件・・・。
>>17 > できませんでしたっけ?
がんばって思い出そう。
PHPは . で文字列を結合しますが、 "aa"."bb"のようにスペースを入れない場合と、"aa" . "bb"の様に スペースを入れた場合では挙動に違いはありますでしょうか? シンタックス的にはどちらも大丈夫??
問題ないけど 見た目的にはスペースあったほうがいいかもね
>>21 挙動に違いはないよ。
ただの2項演算子だから
>>22 >>24 レスどもです。
スペース付で書いていきたいと思います。
ありがとうございました。
俺はスペース入れるの嫌い。どうでもいいけど
俺はZendコーディング規約に則って書いてるから入れる
"a".",b"."c"."d" //敷き詰めて "a". "b". "c". "d" //引数風に "a" . "b" . "c" . "d" 他言語で+を使う場合の見た目 "a"+"b"+"c"+"d" "a"+ "b"+ "c"+ "d" "a" + "b" + "c" + "d" +のときは一番下が見やすいけどドットは見づらくて2番目が引数風で目なれしてるからいい
変数の場合は?
中身が文字列なら別に同じだろ? $a . hoge() . "hoge" . $b[0] . $foo->var
「Zendコーディング規約に則ってる」とか言ってて恥ずかしくない?
なんで?
33 :
nobodyさん :2011/06/07(火) 01:27:42.07 ID:XDqi+m/W
$hoge = (a,b,b,c); $hoge = array_unique($hoge); $hoge[0] = a; $hoge[1] = b; $hoge[2] = ; $hoge[3] = c; となりますが、何も入ってない$hoge[1]を消して $hoge[0] = a; $hoge[1] = b; $hoge[2] = c; とするにはどうしたらいいのでしょうか?
34 :
nobodyさん :2011/06/07(火) 01:36:53.45 ID:XDqi+m/W
>>33 array_unique使ってれば普通に後者になるはず
たぶん多次元配列使ってるのが原因
注意: array_unique() は、 多次元配列での使用を想定したものではないことに注意しましょう。
俺俺コードを書くなw
気持ちはわかる
僕僕コードw
可愛い初心者来てくれないかなぁ ドットで文字列の連結出来ること知らないで悩んでる奴とか萌える
echo "a"."b" って書くよりも echo "a","b";って書くほうがPHPとしては早いんだよ
配列が1から始まると思ってる奴は萌える
前に " で括るか ' で括るかの話が出た時に " は中を解釈する必要があるから遅い って話があった 100万回程ループさせて何回か実行速度測ってみたら誤差で収まる範囲だった 最適化されて同じ中間コードになったと考えるのが間違いなさそうだが まぁ、そんなシビアな実行速度を追及するなら最初からPHPを選ばないよなw
へーその程度なんだ 理論上はシングル'のほうが早いってのは知ってたけど コードを考えてループ回数を1000回から100回を2回にする程度しか考えてなかったなぁ
かなり昔の違う言語での話なんだけど 数字の偶数を判断する一番効率の良い方法って話があって 最初は2で割ってあまりで判断するとか後の方ではインラインアセンブラで記述とかw これはっと思える手法が出てきて 言語で持っている偶数を判断する関数と出力コードを比べてみたら 同じ出力コードになったとw 神様(言語開発者)の手のひらで踊らされたと感じた時だったなw
コンパイラ製作者の手のひらというツッコミは野暮ですかね
コード作ってるとたまに 「これは美しい!」ってコードが出来るけど それ以外あんま気にしなくていいと思うよ 1000回ループ→100*2の200回ループどころか 1000回ループ→10*3の30回ループぐらいに出来ることもある 最初からそういうコードを思いつく人居るけど結構嫉妬心が芽生える
試してないから条件式あってるかわからないけど $ct = count($array); $copy = array(); for ($i = 0, $j = ct - 1; $i < ceil($ct / 2); $i++, $j--) { $copy[$i] = $array[$i]; $copy[$j] = $array[$j]; } みたいな前から後ろからぶっこまれて快感2倍にならないだろうか
>>46 やってみたらむしろ遅くなった
10万件でだいたいの平均が0.048
通常のやり方だと0.044
print_rした時のインデックスの順番もバラバラ
しっかし最近のサーバーは速いよな
10万件で0.044とか
>>46 単純だと
foreach($array as $key => $data)
{
$copy[$key] = $data;
};
か
>>46 お前面白いこと考えるな
昔はクライアント側で出来るのは全部クライアント側でやらせる、ってのが当たり前だったけど
今は変わってきてるのかな
単一引用符にするのは、速度よりも中身を誤解釈しないようにじゃない
なんかマジレスの流れなの? $copy = $array; はだめなの? ループアンロールしてみるとか? $ct = count($array); $copy = array(); if ($ct >= 2) { for ($i = 0; $i < $ct - 1; $i+=2) { $copy[$i] = $array[$i]; $copy[$i+1] = $array[$i+1]; } } if ($ct % 2) { for ($i = $ct - 2; $i < $ct; $i++) { $copy[$i] = $array[$i]; } }
52 :
nobodyさん :2011/06/08(水) 15:41:37.38 ID:HTJzrQPd
ファイルアップロードで何もエラーが出ません ファイルをアップロードしても画面が切り替わって同じ画面のまま止まります error_reportingはE_ALL display_errorsはOnになっています 他に思い当たるところはないでしょうか
アップロードできてるんじゃねえの?
俺もそう思う
思い当たることといえばコードを提出してないこと
56 :
nobodyさん :2011/06/08(水) 16:53:01.98 ID:nregCZFe
$a = 0; $b = 20; $c = $a || $b; echo $c; $cは$aがtrueだったら$a falseだったら$b というつもりでこう書いてみたのですが 20ではなく1と出てしまいます 期待通りの文を書くにはどうしたらいいのでしょうか?
57 :
nobodyさん :2011/06/08(水) 17:06:47.20 ID:RiKFq158
memory_limitの設定って、セッションごとのメモリ最大という認識でOKですか?
>>56 $a||$b←これは$aか$bが両方、またはどっちかがtrueだったらtrue
両方falseだったらfalseを返すだけだから
その場合$bがtrue、つまり$a||$bがtrueなのでtrue=1を返してるって事
if($a){
$c = $a;
}elseif($b){
$c=$b;
}
これでいいんじゃない?
他にも三項演算子とかの方がスッキリするかもしれないけど
59 :
56 :2011/06/08(水) 17:19:53.34 ID:???
>>58 ありがとうございます
JavaScriptとは勝手が違うのですね
三項演算子を使うことにします
javascriptとphp両方使ってると変数宣言とかのミスがやたら増える
三項演算子って省略してよかったのか 知らんかったわ まぁ他の言語じゃエラー出そうだけど
三項演算子の省略って割と最近のバージョンからじゃなかったっけ
ファイルをincludeするときにシフトJISの「構築」という単語があるとエラーになりますが これはどのように回避したらいいんですか?
66 :
nobodyさん :2011/06/08(水) 22:34:38.95 ID:3MuCM70m
区別つかないわけないだろ
>>66 バックスラッシュを表示できるフォントを使う
ファイル操作の内部の処理で日本語(SJIS)なんぞ考慮されてねーから無理。
てきとーなことぶっこいてんなよ。
Shift_JIS環境で
include 'dir\\構\\築.php';
はもちろん可能で、\の区別が付かないのは
>>66 がShift_JISを知らないだけ。
ファイル名に2バイト文字使うとか論外だわ
うむ、ファイル名に使うのは好ましくないな 後々バグばっか発生してその度に対処することになると思う
>>71 構ってフォルダの築.phpはどうやるんだ?
windows環境で偶然うごいてるだけじゃねーか。
まーたてきとーなことを
まーたてきとーなことを
無理でしたごめんなさい。
'〜'
79 :
nobodyさん :2011/06/09(木) 02:21:46.58 ID:RKfzSB8K
php.iniの設定で、エラー出力を標準出力にするかApacheのエラーログに出力するか 切り替えるオプションみたいなのってありませんでしたっけ?
切り替えるのはないけど出すか出さないかはあったと思う
MPOファイルに対応した画像掲示板を作成しようとしているんですが、 アップロードされた画像ファイルのMIMEタイプを取得するにはどうすればよいですか? getimagesizeではMPOに対応していないようで、JPEGと判別されてしまいます。 $_FILE['file']['type']もダメです。 何かよい方法はありませんか。 よろしくお願いします。
83 :
82 :2011/06/09(木) 15:30:07.76 ID:IAyqZkF/
すみません、ID出してませんでした。
MPOファイルとやらの現物みたことないけど、 ファイルヘッダーみてみなよ。 たぶんJPEGのヘッダーと同じなんだろう。
ちゃんと適合してるかってチェックはやってられないので、 preg_match( "/\\xFF\\xE2\\C\\CMPF\\x00/",$upfile)ぐらいでどうよ。
87 :
82 :2011/06/09(木) 16:57:35.73 ID:IAyqZkF/
ありがとうございます。
>>84 ぐぐって出てくるものは既にほとんど試してますがダメでした。
>>85 MPOファイルは最近のデジカメやnintendo3DSで扱われている立体視用の形式です。
中身はJPEGが2つくっついた構造です。
そのためJPEGと同じヘッダーなのかもしれません。
MIMEタイプでは判別できないんでしょうか。
PHP内部で中身解析して、APPなどで判別しないといけないんでしょうかね。
MPOファイルが開発されたのが確か2009年なので、もういい方法があるのかと思ったのですが…
88 :
82 :2011/06/09(木) 17:07:41.84 ID:IAyqZkF/
>>86 すみません、急に外出しないといけなくなったので、ちゃんとは見れてないんですが、
書いていただいたコードで確認したらfalseになってしまいました。
帰ってきてからもう一度確認してみます。
ヘッダーが同じかもしれないので、無理かもしれません…
89 :
82 :2011/06/09(木) 17:14:45.92 ID:IAyqZkF/
続けてすみません。 ちなみに、今回MPOファイルに対応する経緯ですが、 nintendo3DSにブラウザが実装されたため、3DSからもアップ・ダウンができるようにするのですが、 3DSはMPOファイルをアップする時に拡張子をjpgにしてしまいます。 それをMPOとして保存したいと思っています。 そのための判別が必要です。
falseになったってのが変だな。 0か1になるのだが。
92 :
82 :2011/06/09(木) 19:23:08.12 ID:IAyqZkF/
>>91 あ、間違えました。
0でした。
デバッグ用にいろいろ表示させるので、わかりやすいように関数作って
1/0を返すやつとtrue/falseを返すやつはそいつに食わしてます。
↓ちなみにこんなの↓
function showBoolean($isCheck){
if($isCheck){
$result = "true";
}else{
$result = "false";
}
echo($result ."<br />");
}
急いでたんでそのままfalseと書いてしまいました(^^;
ややこしくして申し訳ないです。
それで、preg_matchですが、第二引数はstringですよね。
$upfileは画像のデータではなくアップロードされた画像のテンポラリファイル名(フルパス)ですので、そのままでは0になったんだと思います。
いずれにしてもJPEGとMPOはヘッダーが同じようなので判別には使えそうにありませんね・・・
93 :
82 :2011/06/09(木) 19:24:16.32 ID:IAyqZkF/
>>90 やはりバイナリを解析して自分で判別しないといけないんですかね・・・
昔はCでよくいじってましたが、PHPも含めてWeb系でバイナリをいじったことありません。
他に方法がなさそうなので、なかなか大変そうですけど、教えていただいたとこを参考にして頑張ってみます。
もしもっといい方法がありましたらよろしくお願いします。
95 :
nobodyさん :2011/06/09(木) 21:23:10.28 ID:5pJa1bUB
PHPで値を2桁にして、1桁の場合は先頭に0を入れたいのですが、うまく出来ません。 <?php $id = 3; echo $id."<br>"; $id = 3; $id = printf('%02d',$id); echo $id."<br>"; $id = 3; echo str_pad($id,2,"0",STR_PAD_LEFT); echo $id."<br>"; ?> ≪実行結果≫ 3 032 022 どうすれば直りますか?
>>95 <?php
$id = 3;
printf('%02d',$id);
echo "<br>";
$id = 13;
printf('%02d',$id);
echo "<br>";
?>
>>96 ありがとうございます!
普段echoで出力させていたので、printfは関数だと思い込んでいました・・・orz
98 :
82 :2011/06/09(木) 22:06:08.50 ID:IAyqZkF/
>>94 おお、これはありがたいです。
助かります。
なんとかできそうな気がします。
ありがとうございます。
99 :
65 :2011/06/09(木) 22:58:01.88 ID:okCOi1rV
0x5C問題は、PHPのバージョンや文字コード依存ですよね。 シフトジスを正しく認識出来るなら、\を追加するとディレクトリ区切りになってしまいロード失敗します。 \を見つけたら、前後に\を追加してみて読み込めるまで繰り返せばいいですか。
100 :
86 :2011/06/09(木) 23:08:51.62 ID:???
>>93 ファイル名じゃだめだよ。
アップロードしたファイルそのものじゃないと。 うちでは判別できたよ。
>>99 文字列として表示するとかならともかく、ファイル読み込みではどうにもならない。
信じてはもらえないんでは回答してもしかたないのかもしれないけどさ。
102 :
65 :2011/06/09(木) 23:22:53.42 ID:okCOi1rV
>>101 読み込み不可の場合は、プログラム側でどう工夫して無理って事なんですか。
103 :
82 :2011/06/10(金) 00:30:50.65 ID:MLm8A7NX
>>100 すみません、書かれてた正規表現でいけました!
勘違いしてました。
>>92 は、preg_matchにはデータそのものを渡さないといけないところを
>>88 ではファイル名を渡してしまったので0になってしまったという報告でした。
それはいいのですが、MP0とJPEGはヘッダーはまったく同じだと思ってて、マッチングじゃ無理だなぁと思ってしまっていました(^^;
違いがあって、それを正規表現で表してくれてたんですね。
申し訳ないです。
今、改めて試して、MP0の仕様書も見て、確認しました。
MPフォーマット識別コードはマーカセグメント長以外は固定なんですよね。
これでいけそうです。
本当にありがとうございました。
(せっかくなのでPHPでのバイナリ操作も勉強します)
104 :
nobodyさん :2011/06/10(金) 00:47:05.63 ID:m/SyKBx8
>>65 ですが。
ソースコードの文字コードを変更したんですが。
それでもPHPが勝手に読み込み時にシフトジス変換して読み込むようてすが。
0x5Cを回避する方法は全くないですか?
105 :
nobodyさん :2011/06/10(金) 00:56:55.07 ID:m/SyKBx8
PHPの内部コードでユニコード(UTF8、UTF16)を使う方法はありますか。
サーバの文字コードがshift JISなの?窓から捨てちまえよそれ。
107 :
nobodyさん :2011/06/10(金) 01:21:37.43 ID:m/SyKBx8
解決しました。コードの変更できました。
そこまで分かっていて、なぜマニュアルを読もうとしなかったのか。。
109 :
nobodyさん :2011/06/10(金) 02:07:06.97 ID:3O4+giq4
110 :
nobodyさん :2011/06/10(金) 09:25:22.18 ID:ocuOiMvn
PHPのエラーログってNoticeとWarningで分けられないかな
>>110 error_get_last() で拾ったものを
error typeで振り分けて
error_log()で好きなところに書き出せば?
112 :
nobodyさん :2011/06/10(金) 10:26:55.76 ID:dKzQT5U5
warningエラーなら途中で止まらね? あと、全ての関数に@つけなきゃならんのか
113 :
nobodyさん :2011/06/10(金) 11:41:25.72 ID:ocuOiMvn
ini_setでupload_max_filesizeが設定できないです var_dump(ini_set('upload_max_filesize', 1024 * 1024 * 500)); // bool(false)が出力される Apache側かどこかで設定の許可など制限あるのでしょうか
114 :
nobodyさん :2011/06/10(金) 11:44:03.07 ID:ocuOiMvn
すんません、上階層のhtaccessにて php_value upload_max_filesize = 64M という設定がされていました。 これって下層のプログラム内でini_setした場合に上書きされないのでしょうか。
116 :
nobodyさん :2011/06/10(金) 12:00:10.86 ID:dKzQT5U5
ということは、下層にhtaccessを置く必要があるということですね。 親階層にhtaccessで128M 子階層でhtaccessで256M 上記で設定したのですが、128Mで効いております。 ここら辺はApacheの設定なのでしょうか
【OS名】CentOS 【PHPのバージョン】5.1.6 【連携ソフトウェア】jphpmailer 【質問内容】 これまでmail()関数を使ってメールを送信していたのですが、サーバーを新しく切り替えた時に mail()が使えない事が判明しました。 仕方が無いので、jphpmailerで用意されているsmtpサーバーを使って送信するようにすると、 ほとんどの携帯電話のアドレスから弾かれるようになりました。 mail()を使っているときは正常に送れていたのですが・・・。 mail()で送信するのとsmtpサーバーを使って送信するのと、どういった違いがあるのでしょうか? 使っているsmtpサーバーは内部のサーバーです。
118 :
nobodyさん :2011/06/10(金) 13:40:52.77 ID:m/SyKBx8
サーバーのアドレスが原因かもしれんが。mailでもはじかれる可能性。
サーバーを切り替える前はmail()を使ってて(同じシステムです)、その時はキチンと正常に配信されていました。 今回サーバーを切り替えて、smtp送信で配信しようとすると弾かれてしまうようです。 ちなみにサーバーのドメイン名は同じものです。 smtpサーバーはSMTP-Authにしてますが、それが原因でしょうか?もちろんsmtp配信のほうのプログラムも SMTP-Authで設定しています。
どうせエンベロープのアドレス書き換えてないとかでしょ
121 :
nobodyさん :2011/06/10(金) 15:12:01.26 ID:mor73Xep
arg_separator.output で '&' とか?
ごめん ’&amp;’ ね
124 :
nobodyさん :2011/06/10(金) 15:52:33.72 ID:mor73Xep
125 :
nobodyさん :2011/06/10(金) 20:28:15.68 ID:ZyUjW/5Y
画像が実写が二次画像かを、ある程度判別したいのですが、どういった処理をしたらいいのか見当がつきません。 GDを使えば出来そうな気がするんですが・・・。 ご教授おねがいします。
>>125 imagecolorat
判定アルゴリズムはスレ違い
127 :
nobodyさん :2011/06/10(金) 21:34:04.23 ID:C8DfHeas
連続して通信をしてソースをとってきてそこからソースを切り抜きするみたいなことをしているのですが、
使わなくなった変数は使い回したほうがいいでしょうか?
一旦nullいれたりunsetしたほうがいいのかな?とは思うのですが冗長なのでそのまま入れています。
$src = file_get_contents('
http://example.com/ ');
$dom = new DOMDocument();
@$dom->loadHTML($src);
〜略
$src = file_get_contents('
http://next.example.com/ ');
$dom = new DOMDocument();
のような感じになってます。
ところどころ違う処理が入るのでループしてるわけではありません。
あと
$a = "hoge";
$a = strtoupper($a);
$a = str_replace("O","A");
みたいなことは普通にやってもいいですよね?
>>127 上 そりゃメモリ開放すればメモリ使用量は少なくなる。
memory_get_usage間に挟めば分かる。
開放した方が良ければすればいい。
下 いいってどういうこと?
130 :
nobodyさん :2011/06/11(土) 01:42:15.51 ID:5vEWr0vM
同一ドメインのhttpの画面とhttpsの画面を行き来する際に セッションの引継ぎってできますか? もし、httpとhttpsで違うドメインの場合はセッションの引継ぎって どうやればいいですか?
session_id
>>131 もうちょっと具体的なやり方を教えて欲しいのですが。
別にweb上でいいんじゃw
>>134 俺、プリントして持ち歩いて読んだw
何が出来るかだけ頭に入れて、
あとはその都度マニュアル検索。
アナログ脳w
>>136 老眼だから、電話機はもちろん、
ちっちゃいノートPCじゃ読めねーんだよw
電話機なんて単語久しぶりに聞いたなw
140 :
nobodyさん :2011/06/11(土) 17:13:55.92 ID:jUlIdcte
「hoge」があったら「hogehoge」に、「hogehoge」があったら「hoge」に置換するようにしたいのですが $contents = str_replace("hoge", "hogehoge", $res[text]); $contents = str_replace("hogehoge", "hoge", $res[text]); こんな感じでならべると「hogehoge」に置換した後で再び「hoge」に置換し直してしまって元通りになってしまいます。 ifで分岐しようにも、こうした置換の単語候補が多くて無理なんですが、どうすればできるでしょうか?
142 :
nobodyさん :2011/06/11(土) 17:18:53.95 ID:NqBLzs77
2011/06/11 17:17:23 ↑ これの25日と18時間30分後を求め方お願いします
144 :
nobodyさん :2011/06/11(土) 17:30:34.50 ID:NqBLzs77
できれば nannnitigo("2011/06/11 17:17:23","25日と18時間30分後"); で実行できる形が理想です
146 :
nobodyさん :2011/06/11(土) 17:37:12.19 ID:jUlIdcte
>>141 つまり…str_replaceでは無理ということでしょうか
ありがとうございます。
あほすぐるw
148 :
nobodyさん :2011/06/11(土) 17:49:49.08 ID:NqBLzs77
>>145 マニュアルの見方がわかりません。。。。
マニュアル見てわからない=自力で作れないんだから質問するのが間違いなんだよ コード作成依頼スレじゃないんだから
151 :
nobodyさん :2011/06/11(土) 17:54:30.99 ID:NqBLzs77
コード作成依頼ではなく求め方を知りたいのです
面白くなってきたな
>>144 みたいなこといっといて依頼じゃないとか言われてもな
そんな2バイト文字を引数にとるような都合のいい関数があると思ってるのか
俺は釣られんぞ
出来ないくせに態度がでかい回答者うぜえ
>>152 マニュアルの見方がわからないので見ても分かりません
>>140 ヒント
あえて全部hogehogeに置き換えてしまえばいい
そうすればhogeはhogehogeにhogehogeはhogehogehogehogeになる
自演荒らしとみせかけた愉快犯か? スレ伸びるだけだからやめとけ
161 :
nobodyさん :2011/06/11(土) 18:31:46.02 ID:PpBJ0G2Z
パラメータ time 日付/時刻 文字列。有効な書式については 日付と時刻の書式 で説明しています。 now 返される値を計算するために使用されるタイムスタンプ。 って書いてあるところが分かりません
説明してますって書いてるんだからそこの説明よんでこればいいだろ
>>161 パラメータってのは、引数のこと
第一引数に出力したい日付形式の文字列を渡して、第二引数に計算したいUNIXタイムスタンプを渡せばいい
164 :
nobodyさん :2011/06/11(土) 18:36:57.55 ID:ZHSY8D9B
レンタルサーバを変更しコンテンツを移動させたところ文字化けしてしまい PHPについては header("Content-type: text/html; charset=Shift-JIS"); と記述することにより、文字化けは解消されたのですが、 htmlページの場合には、どうすれば回避することが出来ますか? ※どうやらサーバ側はUTF-8で常にクライアントに戻す設定になっている様なのですが、 マルチドメインで運用をしているため、ルートディレクトリでhtaccess指定を行なうのは厳しいです。
166 :
nobodyさん :2011/06/11(土) 18:42:13.36 ID:ZHSY8D9B
167 :
nobodyさん :2011/06/11(土) 18:45:55.89 ID:NKY1G1lT
htaccessを使わないでob_startで出力すればおk htmlページはphpで作ってルーティング処理で拡張子htmlに見せればおk
169 :
nobodyさん :2011/06/11(土) 19:13:06.12 ID:ZHSY8D9B
>>165 既にmeta タグで文字コードは指定しています。
>>169 「※どうやらサーバ側はUTF-8で常にクライアントに戻す設定になっている様なのですが」
まずこれが本当にそうなのか確認する
>>167 >>170 >>171 ありがとうございます。
試してみます。
因みに
【特定のディレクトリ内のみ】
***.phpファイルを***.htmlに見せかけるにはどうすれば良いでしょうか?
.htaccess への記述例を教えていただけると幸いです。
>>172 記述例っつーか答えになっちゃうから教えられん
◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
>>172 ヒント
(.+?)\.html \1.php
AddTypeの話じゃないのかw
177 :
nobodyさん :2011/06/12(日) 00:28:23.21 ID:S7YNbjnx
PHP5を使ってるんですが、重い処理をバックエンドで実行する処理を知って質問します
このページを見てるんですが、
http://www.phppro.jp/phptips/archives/vol47/2 <?php
if ($_POST['submit']) {
exec("/usr/local/bin/php /path/to/exec.php > /dev/null &");
echo "とりあえず finish!";
} else {
?>
<html>
重い処理が走るけれど、待たされないスクリプト
<form method="post" action="test2.php">
<input type="submit" name="submit" value="重い処理を実行">
</form>
<?php
}
?>
こういう処理で、バックエンドで実行された処理がもしエラーしたとき、
どうやってそれをキャッチしたら良いんでしょうか。というかそれは可能でしょうか?
特にバックエンドへの実行命令を出したページから、別のページに遷移してしまったとき、
返り値を渡すって出来ない気がするんですが…
何か方法あるんでしょうか?
>>177 エラーが出たときにどうしたい(何をしたい)かによると思う。
例えばバックグラウンドでエラーが出たらエラー内容をファイルに出力するとかして
そのエラーファイルが存在するかどうかをチェックするプログラムを用意しておく。
ブラウザで(Javascriptとかで)定期的にそのプログラムにアクセスすれば
エラーが出たかどうかを確認できる。
同様の方法でバックグラウンドの処理が終わったかどうかも確認できる。
180 :
nobodyさん :2011/06/12(日) 11:10:12.56 ID:SmOttpAp
<?=echo 1?> これをやると<?=echo 1?>って表示されます? 1って表示したいのですがどうやるのでしょうか?
181 :
nobodyさん :2011/06/12(日) 13:03:35.44 ID:hreYP4HU
ダウンロードを行うスクリプトを作成中です。 $dl_name = preg_replace('/.*[\/]*\//', '', $real_filenames[$q]); header('Content-Disposition: attachment; filename="'.$dl_name.'"'); header('Content-Type: application/octet-stream; name="'.$dl_name.'"'); header('Content-Transfer-Encoding: binary'); $fs = filesize("$directory/$real_filenames[$q]"); header('Content-Length: '.$fs); $fsがNULL状態のようでIEだと0バイトの空ファイルとしてダウンロードされます。 なぜでしょうか? OS: Linux 2.6.37.1-grsec PHP Version: 5.3.3-7+squeeze1 with Suhosin-Patch
>>181 > $directory/$real_filenames[$q]
をprint_rでもして、確認してみれば?
184 :
181 :2011/06/12(日) 13:28:28.86 ID:hreYP4HU
>>182 $directory/$real_filenames[$q] には存在しているファイルがフルパスで渡ってます。
Chromeでは問題なくダウンロードできてます。IEで0バイトになります。
Suhosin-Patchなんて当ててるからじゃない?
>>184 じゃ、これ追加で。
header("Pragma: cache;");
>>183 マニュアルに書いてあるならURL張れや
>>188 そこのどこにあるのかまで書けよ
それで済むなら質問スレッド自体が不要だろ
なんでそんなに態度がでかいの?
回答になってないからです
自演乙
まぁ外野がごちゃごちゃ言っても聞く耳持ちません
知恵風呂でやれ
197 :
177 :2011/06/12(日) 14:44:25.23 ID:???
>>179 ありがとうございます。やっぱりそういう方法しかないですか…
なんというか、それで大丈夫なのかなって気がしますね
会員登録の仮登録メールなんて、どうやってるんだろう
バックエンドに送信命令>画面には「メールを送りました」>実は送れてない なんてないのかな
自分の環境じゃメールの送信は体感で1,2秒かかってしまうんですが、
大抵のその手のサイトじゃバックで実行してるみたいだし…
不思議だなー
199 :
177 :2011/06/12(日) 15:07:15.80 ID:???
知障死ねよ
◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
202 :
177 :2011/06/12(日) 15:14:25.25 ID:S7YNbjnx
なんなの? ID出して質問スレだから? 問題解決した時のレスでID出さない人って今までもいくらでもいただろうに それとも今揉めてる人と同一人物だと疑ってるの? たった今質問させてもらった立場で言うのもなんだけど、 池沼/死ねだの言うほど腹立てるならこんなとこ見なきゃいいだろうよ、しょうもない
むしろ揉めてる人は質問者じゃなくてマニュアル厨だから君が同一人物だとは誰も思ってないよ
ルールも守れないくせにほざいてんじゃねぇよカス
死ねだのカスだのいってる奴らは気にしなくていいから ただルールを守っていなかったのは事実だから気をつけるようにね
ここまで俺の自演
>>1 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
209 :
181 :2011/06/12(日) 16:31:59.45 ID:hreYP4HU
>>185 回答ありがとうございます。
Suhosin-Patch が影響しているのでしょうか?
一般ユーザーで借りている共有サーバーなのでいじれる設定は一部だけですが
ttp://ameblo.jp/phpwalker/entry-10444869607.html このへんを参考にして
apache_setenv('no-gzip', '1');を追加してみましたがInternal Server Errorになるだけでした。
filesize関数がNULLを返すことの対処としてclearstatcacheもあげられていたのですが変わりませんでした。
210 :
181 :2011/06/12(日) 16:34:03.56 ID:hreYP4HU
>>186 回答ありがとうございます。
追加してみましたが、同じく0バイトのファイルとしてダウンロードされてしまいました。
211 :
nobodyさん :2011/06/12(日) 17:20:40.61 ID:+q+sCwIP
>>197 メール送信についてはバックグラウンドで直接スクリプトを起動するのではなく、
送信先等をDBなどに登録しておく。
で、CRONなどで定期的にメール送信スクリプトを起動し、DBに登録された
メール送信リストを順に処理させるようにする。
そうしないと多数のアクセスが重複したときにバックグラウンドのスクリプトが
多重起動されてしまう。
213 :
181 :2011/06/12(日) 22:49:54.75 ID:hreYP4HU
どうやら、ファイルのフルパスに\(バックスラッシュ)が混入されていたようで、 stripslashesでフルパスを置換したら、filesizeの値が無事に取得できました。 お騒がせしました。
simplehtmldom で <div>の中身を取り出すとき $div->innertext で取得してるのですが <pre>の改行が消えてしまいます。 改行を除外しない方法はありますでしょうか? <img>と<pre>の位置が不定期なので個々に取り出せないです。。 <div> <img> <pre> ああああ いいいい </pre> <img> </div>
215 :
214 :2011/06/12(日) 23:17:20.97 ID:vSXnK1wi
ID出し忘れました。すみません
要素がpreかどうか取得できるコードを書け 話はそれからだ
では役にたたねぇ
>>216 以外の方のご返答をお待ちしています。
再現するコード出して
ここって質問者も質が悪いけど回答者の質も悪いから質問を躊躇ってしまう 質問によって知恵袋と使い分けないとPHPとは上手くやっていけないね
221 :
nobodyさん :2011/06/13(月) 15:03:46.25 ID:s568ccJo
困りました助けてください。 $name1 = 配列[1] $name2 = 配列[2] $name3 = 配列[3] のようにしたいので、まとめてループを使って、 for ($i =1; $i <10; $i++){ $name . $i = 配列[$i] } と書いてみたのですが、 $name . $i と書いても、$name1の意味になりません(文字列でないので)!! ループを使って、変数にインデックスの変数をくっつけて、 $name1,$name2,$name3... とするにはどうしたらいいんでしょうか? よろしくお願いします!!
お主に可変変数というものを与えよう
223 :
nobodyさん :2011/06/13(月) 15:10:05.53 ID:s568ccJo
>>222 可変変数ですね!
あ、できそうな気がします。
ありがとうございました!!!!
224 :
nobodyさん :2011/06/13(月) 15:47:07.11 ID:s568ccJo
>>222 可変変数を使ってループの中を以下のようにしたら
一発でできました!!
$output.= ${"name". $i};
ありがとうございます。
225 :
nobodyさん :2011/06/13(月) 15:48:40.61 ID:NE3y7xrP
class Sub extends Main というクラスの親クラスにあるメソッドを指定するとき、 parent::$this->test(); みたいな書き方をしますが、PHP4ではparent::を付けるとエラーになります。 出来るだけPHP4対応のコードにしたいのですが、 この場合は、parent::を付けずに、$this->test()とするしかないのでしょうか?
226 :
nobodyさん :2011/06/13(月) 16:02:20.14 ID:NE3y7xrP
すみません。自己レスです。 parent::test(); って書けば良いんですね。
PHP5.3.5 + Mysqlでwebアプリ作ってます。 PDOでMysqlにアクセスしてるんだけど、 DBへの接続〜切断をするタイミングで悩んでます。 クエリー発行の度に、接続→Query発行→結果取得→切断とするべきか、 最初に接続して、ログアウト処理で切断するべきか、どちらが適切でしょう? ログアウトしないでブラウザ閉じちゃう場合も多いだろうし・・。
1
>>227 何を作るのか
どれくらいのアクセスを想定しているのか
この2つを書かないとアドバイスはできません
ログイン機能を作成しようとしています。 formにユーザー名とパスワードを入力して、phpとmysqlを使って認証する予定ですが、formにパスワードを打ち込むと平文で通信されてしまいますよね。SSLは予算の都合上無理なのですがセキュリティをある程度確保するにはどの様な手段を用いるべきでしょうか
1
232 :
nobodyさん :2011/06/14(火) 00:45:57.33 ID:5UnmK9kF
>>230 PEARに入っているAUTHというものを使って、md5という暗号化を
使うのがPHP使いの王道らしいです。もちろんSSLがないと通信中は傍受
される可能性があります。
なんでPEAR?
それはPEARに聞かないと
1
そんなことよりメモリ書き換えて関数を乗っ取る()やり方教えろよ
md5なんて、検索すりゃ英数字なら変換前の値が出てくるから、セキュリティとはほどとおいけどね。
>>237 そんなのは簡単だから、
まずは、穴を探せw
>>237 あと、穴を見つけたら報告すると喜ばれる。
他人の設備でいたずらすると捕まる。
自分の設備で遊ぶんだよ
よくソースコードの難読化とかデータ送信の暗号化の話題が上がるけど、 SONYクラスならまだしも、お前らの会社のデータなんて誰も盗まないだろw 特に商品単価10万以下のシステムをわざわざ解析しないと思うんだが。 そんな事出来る奴は自分で作るだろうし。
まず部屋から出て社会に出ろよ
おそとまぶしい><
商品価値10万以下のシステムでも、中身のデータは数百万円の価値があるかもしれないんだぜ
そんな価値あるなら、こんなスレで質問せずに対策してるだろw 「これから始めよう」とする奴が、そこまで考える必要あるのかよ
数百万程度の価値しかないところは結構ざるじゃないかなー
いいからメモリ書き換えて関数乗っ取る方法教えろよ ハックとかじゃなく echo printf の前に文字コード変換したいだけだよww
関数乗っ取るよりも出力関数を自分で作って、出力は全部そこ通すようにすればいいかと
すみません、私ソニーなんですが。
私って?
>>254 別にソニーは脆弱性公開されたから訴えたわけじゃないよ
保護されてるプロテクト破るキーを配布したから訴えただけ
わざわざソニーさんに説明をするなんてマイクロソフトさんは優しいなぁ
258 :
nobodyさん :2011/06/15(水) 14:01:24.31 ID:Mm9ai45C
Windowsでcronと同じようなこと出来るライブラリを教えてください
ライブラリとか使うんじゃなくて、タスクで出来るよ。
cronの記述と互換性を持ちたいです
それは無理です。理由はOSが違うからです。
レベル低い回答者w
レベル高い回答者どうぞ↓
pycron
265 :
nobodyさん :2011/06/15(水) 16:25:05.44 ID:h+zI4DZU
Array ( [96] => こんにちわ [90] => こんにちわんこ [83] => おこんにちわ ) というのがあります。 sortして数の高い順になていますが、[96]や[90]の数字の部分は毎回かわるため一定ではありません。 しかし、一番数字の高いものを指定したい場合どのようにしていすればいいのでしょうか?
内部イテレータの状態に左右されるぞ reset()が相応しい
268 :
265 :2011/06/15(水) 17:49:03.08 ID:h+zI4DZU
>>266-267 ありがとうです。
その関数自体知りませんでした。
これでイケそうなので使ってみます。
ありがとうございました。
内部イテレータじゃなくて 内部イレテータな。
>>269 そこはネタなのかマジなのかハッキリして欲しいところ。
書いた本人は面白いと思ってるから書いたんだろうけど 小学生が思いつくようなレベル実際は面白くない件
イタレータだろ
イタリアーノだろ
ボルケーノだろ
マルメターノ?
277 :
nobodyさん :2011/06/16(木) 12:40:50.53 ID:nqAlo4Zy
>>245 Submit押された瞬間に
JavaScriptか何かでMD5ハッシュとかで通信させてやればいいんじゃないかな?
まぁ、根本的な解決にはならないだろうけど
お前アスペか?245は「そんな事する意味無いだろ?」 って書いてるんだぞw
マルコポーロ?
282 :
nobodyさん :2011/06/16(木) 21:18:28.37 ID:P33p70Cz
某スレで質問したのですが分かる方がいなかったのでこちらに 転載させてください。 素朴な疑問なのですが 例えば、レンタルサーバで専用サーバを借りたとします。 そして、同一サーバ上で2つのサイトを運用して (2つのドメインを持っていたとして) そのうちドメイン(A)のみ公開していたとします。 ドメイン(A) : 公開 ⇒ 他サイトにリンク有り domain-a.com ドメイン(B) : 非公開 ⇒ 他サイトからのリンク無し domain-b.com この場合に ドメイン(A)から 「ドメイン(A)及びドメイン(B)が同一人物の管理である」 といった事が分かる方法はありますか?
マルチ乙
なんでいつもこういう奴は例えの話にしたがるんだろう
>>285 どうすれば分かるのでしょうか?
教えて下さい。
>>289 100%違います。
不思議でしょうがないのでどうしても知りたいです。
何卒宜しくお願い致します。
マジレスすると、ドメインのwhois見れば解る。 もっと言うならIPアドレスが同じだからわかる。
>>292 ありがとうございます。
ただ、疑問なのは
>>282 の例で言うと
ドメイン(A)については
ドメイン名が domain-a.com である事が分かりそのドメインで検索をする事が出来ますが
ドメイン(B)については、
一般の人間が知る方法があるものなのでしょうか?
ID出せよ
296 :
nobodyさん :2011/06/16(木) 23:11:51.32 ID:Sfg9Eqe3
PHPのファイルを呼び出すとプログラムのままで表示されるのは何が原因ですか?
299 :
nobodyさん :2011/06/17(金) 00:29:30.59 ID:VfWFsqJl
ライブドアブログを metaWeblog.newPostで更新したいのですが、できません。 blogidはライブドアでとった7桁のIDで usernameとpasswordはライブドアのユーザー名とPASSですよね。 HOSTはどこに送ればいいですか? livedoor.blogcms.jpかblog.livedoor.comのどちらでしょうか。 EUCだけとあったのでEUCで送ったのですがダメみたいです。 よろしくお願いします。
CMSの質問は該当のCMSスレへ
>>295 >>297 whois で検索して出てくるサイトに
ドメイン名を入力し検索しても
専用サーバに載せているもう一つのドメインは出てきません。
2つ目の公開していないドメインがどうしてばれたの不思議と同時に気持ち悪いです。。。
ID出せ
頑なにID出さなくてワロタwww
whoisなら10秒どころか1秒もかからない
test
whoisはこの流れでは間違いだとおもうんだけどなぁ
307 :
nobodyさん :2011/06/17(金) 07:26:36.91 ID:VfWFsqJl
>>300 CMSで検索してもそれらしいスレがわかりませんでした。
誘導してくれるとありがたいです。
308 :
nobodyさん :2011/06/17(金) 07:36:47.63 ID:Qvzk0Ibe
substrみたいなので 文字列が半角だろうが、全角だろうが0文字目から5文字を あいuえおaa→あいuえお あいうえおaa→あいうえお aiueoaaa→aiueo と判別して取り出せる方法ないでしょうか?
309 :
nobodyさん :2011/06/17(金) 07:38:05.90 ID:Qvzk0Ibe
ついでに文字コードはShift_JISです
>>301 IPアドレスが同じだからでしょ
nslookup が妥当な気もするけど
313 :
nobodyさん :2011/06/17(金) 11:03:29.92 ID:xe3B7tTR
PHPのFTP関数で、サーバーと接続まではできるのですが、ファイルをアップロードしようとすると Warning: ftp_put() [function.ftp-put]: PORT command successful というエラーが出てアップロードできません。 これは何がいけないのですしょうか?
パッシブモードをオンにしてみたらどうかね
315 :
nobodyさん :2011/06/17(金) 12:19:45.55 ID:xe3B7tTR
316 :
nobodyさん :2011/06/17(金) 16:16:02.71 ID:nzqljx60
gethostbyaddr()を速くする方法ってありますか? ggって出てきたmax_execution_timeをいじるやり方を試してみたのですが劇的な改善は見込めませんでした 回数は最大で200回程度です。 php5.3.1、xamppを使ってのローカルアプリです。よろしくお願いします。
100ミリ秒で200回程度なのか1秒で200回程度なのか1時間で200回程度なのか1年で200回程度なのかはっきりしろよ! と書いた途中xampp使ってる奴か 気にするようなレベルじゃないんだからいいよ
ウイルス作成罪が想像以上に馬鹿だった
なんて言うか、みんなが「出来るよ」って言ってるのに 頑なに「出来ません!出来ないはずです!」って言われてもな・・・ まるで「出来ないよ」って言われて安心したいから 質問してるみたいで変な感じ。
321 :
nobodyさん :2011/06/17(金) 18:52:40.25 ID:0mUESFUm
【OS名】Windows7 pro
【PHPのバージョン】5.3
【連携ソフトウェア】Xampp
【質問内容】
文字列からyoutubeの動画のURLを見つけて
埋め込みURLに置換するスクリプトを書いています
具体的にはこうです
http://www.youtube.com/watch?v=RMgwWlu5MtA 又は
http://youtu.be/RMgwWlu5MtA というURLがあったら
<iframe width="425" height="349" src="
http://www.youtube.com/embed/RMgwWlu5MtA " frameborder="0" allowfullscreen></iframe>
に置換する
これをやりたいと思ってこう書きました
$str=ereg_replace("(https?://)(www.youtube.com/|youtu.be/)(*watch\?v=)?([\w\d\-\.,@?^=%&:/~\+#]*)","<iframe width=\"425\" height=\"349\" src=\"
http://www.youtube.com/embed/\\4\ " frameborder=\"0\" allowfullscreen></iframe>",$str);
その結果はこうです
<iframe src="
http://www.youtube.com/embed/ " allowfullscreen="" width="425" frameborder="0" height="349"></iframe>RMgwWlu5MtA
単純にこうすると
$str=ereg_replace("(https?://)(www.youtube.com/|youtu.be/)(*watch\?v=)?([\w\d\-\.,@?^=%&:/~\+#]*)","\\4",$str);
こうなります
RMgwWlu5MtA
本当はこうなってほしいのですが
<iframe width="425" height="349" src="
http://www.youtube.com/embed/RMgwWlu5MtA " frameborder="0" allowfullscreen></iframe>
なりません
寝て目が覚めたら何か解決策が思いつくかと思ったけど何も思いつきませんでした
何方か解決策をご存知でしたら教えてください
よろしくおねがいします
(watch\?v=)([A-Za-z0-9\-\.,@?^\=%&:/~\+#]+) ereg_replaceだと、\wや\dは使えませんよー
初心者はXAMPP使うな
324 :
nobodyさん :2011/06/17(金) 20:34:57.30 ID:0mUESFUm
>>322 ありがとうございます
やったー!!
できるようになりました
修正後のコードはこうです
$str=ereg_replace("(https?://)(www.youtube.com/|youtu.be/)(*watch\?v=)?([[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","<iframe width=\"425\" height=\"349\" src=\"
http://www.youtube.com/embed/\\4\ " frameborder=\"0\" allowfullscreen></iframe>",$str);
ereg系を使うクズがまだいたのかっ!
pregでうまくいかないこともあるのでeregも場合によっては使うよ
pregでうまくいかない場合ってどういう場合?
>>319 ありがとう!!まさか、こうもあっさり調べられるとは予想もしてなかったよw!!!
ありがとう!
何かこんな便利なサイトを作ってくれた人がいるんなんて。
俺もこれだけ便利なサイトを作って世の人に貢献したいな。
ID出せ
>>325 単純な条件だとeregの方が速いって記事どっかでみたけどどうなんだろ?
自分で試してないからなんともいえないけどw
331 :
nobodyさん :2011/06/17(金) 22:21:32.75 ID:8p615TQf
winXP+php+smartyの環境です。 require_once 'c:/xampp/php/includes/Smarty/libs/Smarty.class.php'; だと、通るのですが、 require_once 'Smarty/libs/Smarty.class.php'; だと、エラーになります。 どうすればいいでしょうか? 設定ファイルみたいのに何か書けばいいような気がするのですが、 どのファイルに何を書いていいのかわかりません。 どなたか教えてください。
XAMPPを使う奴に限ってeregを使う eregを使う奴に限ってマニュアルをよく読まない マニュアルをよく読まないからバージョンの違いで壁にぶち当たる日が来る
過去ログ見てたけどOCNって誰?
>>331 相対パスは、requireされたときの場所によって意味が変わっから、どこかにdefine(ROOT_DIR, dirname(__FILE__))みたいなの入れて、そこを基準にパス記述するよーにすればいいんじゃね?
っつか、smartyの場合ってsmartyのディレクトリを示す定数があったよーな。
ID出せ
>>331 inclide_path通ってないだけだろ
またXAMPPか
339 :
nobodyさん :2011/06/18(土) 10:38:27.34 ID:5amRruzF
$st = $db->prepare('insert into posts(content) values(?)'); これの「->」の意味を教えていただけたら嬉しいです。
340 :
330 :2011/06/18(土) 11:08:27.23 ID:???
342 :
nobodyさん :2011/06/18(土) 12:43:51.51 ID:5amRruzF
>>339 ありがとうございました。そしてすみませんでした。
今のプロジェクトが 匿名メソッドをガンガン使ってるんですが(__call) この機能にいったいどんなメリットがあるのでしょうか?
ありませんよ
デメリットしかないよ!だから使う価値はないよ!!
ID出せ
347 :
343 :2011/06/18(土) 15:08:19.79 ID:???
前任者がマジックメソッドなる負の遺産をだらけの オナニーコードを残して退社しやがった。 まつうら ***
技術力低いエンジニアしか残ってなさそうだけどお前の会社の将来が心配だw
>>347 お前が馬鹿だろ
マジックメソッドを積極的に活用すれば自由度の高いアプリを組めるのに
自由すぎてめちゃくちゃになるわw
つZF
めちゃくちゃになるかどうかはプログラマーの能力次第
eregのような非推奨な機能ならともかく、 マジックメソッドはPHPが公式にサポートしている正当な機能。 お前らには使いこなせないかも知れんけどな。
マジックメソッドなんて可読性が悪くなるだけ。 最初に使いまくった奴は馬鹿 因みにそいつ無駄にPHPなのに7重継承とかしやがって。あほらしい。
355 :
331 :2011/06/18(土) 16:12:36.27 ID:aDPJsk7d
>>335 、
>>337 有り難うございました。 php.iniファイルの書き換えをすませていませんでした。
356 :
nobodyさん :2011/06/18(土) 16:32:36.51 ID:77Lco+b7
>>354 そして、万世一系を目指すのです。 近親相姦人間犬猫ブリーディングは美しい日本の文化です。
PHPという独立した言語なんだから他の言語に無い機能があって当然
サポートしてる正当な機能だから何? いらんものなのは反応を見ても明らかだろ 使いこなせないじゃなくて使うべきじゃない goto文や多重継承なんかが同じようなこと言われてんだろ
いらないと思うなら自分が使わなければいいだけでは?
議論の余地なし(キリッ
マジックメソッドは糞 それを使う奴はド糞
363 :
nobodyさん :2011/06/18(土) 21:31:24.92 ID:GJJqHIXM
>readfileじゃ無理なんでしょうか? 無理だから飛ばされたのでは? itmediaの鯖管じゃないしそんなこと聞かれても困っちゃう ブラウザで正常に読み込める状態を再現すればいい
迷惑だから規制されてるのにバカなことやってんじゃねえよ
>>364-365 役に立たないレスなら書き込まなくて結構です。
不愉快です。
他の方の建設的な返信をお待ちしております。
>>364 の意味が分からないなら諦めたほうがいいんじゃね
369 :
nobodyさん :2011/06/18(土) 23:01:17.18 ID:8aFGyEAx
Pearの使いたいライブラリがレンタルサーバーにインストールされていません。 シェルの使えないレン鯖なのですが、この場合はgo-pearを使用して新たにレン鯖にPearをインストールした方がいいですか?
なんでインストールの章すら読まないんだろうね
372 :
nobodyさん :2011/06/18(土) 23:13:06.44 ID:8aFGyEAx
xampp terapad ffftp これらはphpの三種の神器と言われている
いきなりどうした
そんなエサに(ry とりあえず釣りでもFFFTPを薦めるのはやめろな
FFTP可哀そう・・・
過去の遺産だしな FileZillaでFTPS通信してください
378 :
nobodyさん :2011/06/19(日) 02:26:48.53 ID:z+f6n4KR
質問です a.phpとb.phpがあって、b.phpの中にa.phpの内容を丸ごと取り込んで b.phpを実行した時にa.phpと同じ処理をするって不可能でしょうか。 bをaのエイリアス的なものにしたいということなんですが、 そういう関数探したものの見つからずで… もしやり方があったら教えてください、お願いします
コード出さないとわからんで
requireな
382 :
378 :2011/06/19(日) 03:51:17.41 ID:???
そっか!requireってそうですね!試してみます、ありがとうございました!
まじでか
384 :
nobodyさん :2011/06/19(日) 13:06:26.65 ID:EIwIy+Sr
結局、
>>363 の質問が理解できる奴は皆無なんだね。
さすが2chだわ。低レベルのクズの集まり。
まじでか
穴を潜り抜けて画像を取得したい人のお手伝いはしません 迷惑行為のクズはしにましょう
>>384 itmediaに問い合せするといいよ。
設定ファイルの中身を教えてくださいって
>>386-387 役に立たないレスなら書き込まなくて結構です。
不愉快です。
他の方の建設的な返信をお待ちしております。
まじでか
>>363 俺出来るよ
専ブラに組み込んでる
よければコード教えようか?
出来ればメアド書いてくれ
391 :
nobodyさん :2011/06/19(日) 13:32:29.43 ID:EIwIy+Sr
まじでか
まじでか?
志村、IDID〜〜〜!!!
396 :
nobodyさん :2011/06/19(日) 14:24:56.64 ID:EIwIy+Sr
>>394 >>384 を書き込んだのは自分です。
それ以外の書き込みは第三者だと思います。
あえて煽り口調にすることで、回答してくれる方が現れるかなと。
もちろん実際にそう思っているわけではありません。
荒らすなよ 迷惑行為に加担するなアホ回答者が HTTPクライアント作る気もない教えて君に答える必要はない
398 :
nobodyさん :2011/06/19(日) 14:34:12.15 ID:wZP2QiR6
>>390 送ってもらえると助かります。
是非よろしくお願いします。
出来ればここに書いてもらえると助かります。
>>396 偽者は死ねボケ。
てめえなめてんじゃねーぞクソガキのくせに。
俺に迷惑かけんなクソガキ市ね氏ね死ね。
しねしねしねしね。
偽者は死ねhoge
んじゃ1000円を下記口座に振りこんでください
まじでか
>>398 「しね」が3回書き込まれましたので脅迫もしくは殺害予告とみなし
関係機関に通報いたします。
めでたしめでたし
>>398 ←こういう奴ってプログラマとしてはもちろん人間として恥ずかしいよな
もしかして → マジレス
>>398 を読んでまともに回答しようとする奴はいないだろう
前半で丁寧に書いても後半であんなこと書いたら誰も冗談とは思わないぞ
マルチスレッド
2ch先人の石碑 「ここから上にレスするな」 この石碑にはここまで糞レスが来たと言う事実を今に言い伝えている。 ゙" "''" "゙" ゙"/::ヽ____ ヾ" ゙" ゙" " ゙"'' ゙" |ヽ/:: レ こ ヾ''" ゙" ゙'" "゙" ゙" .|:: |::: ス こ | ゙ " ゙" ゙ ゙" ゙"'' |:: l: す か | ゙" ゙" "゙" ゙"|: :|: る ら | ''゙" ゙" ゙" ゙""'"Wv,_|:: l な 上 |、wW"゙" ゙" ゙"''" ".wWWlヽ::'ヽ|:::::_::__に___:.|::\W/ ゙"゙''" "'' ゙"''"゙" V/Wヽ`―――――――――lV/W "' ゙""' ゙"''" "゙"WW''―――――――wwww' ゙"゙''
下だろ?
., .,, / ~-,, i ~~,i' ,/ / i' ,/ ,, / .,/ ,. /  ̄ ̄ ̄ ̄ \ ,、/ / / ~''フ ./ .+;―――+ /~ ./ く ,/ / / 'i, ./ ./ \, \/ / / ,/'i, 'i, / ./ .\ ./ ,., '-, / 'i, V ,i' .> ./ .く \ '' ',* く _,,,,/ ∠--''''' 'i, / .,, .\, i' __,,,-, _,| / / .\ ~'-.,,_ .'i_,--―''''i | .レ ,,-''~ / \, .~,;' | | _,,-, i, ._,-'~ /'''--...,,_ ~'''-,,,,/ .|~~'';*..| | 'i. 'i, ''~ '-,,,_ ~''-,, i |. 、| | 'i, 'i, ~''-..,_ ./ ,i . | | | 'i, 'i, .,,__ ~'' ,/ | 、| | i _,,-' ./ ~~'''''--..,,_ ''-,,_ i.. ..| | .~ .''--...,__ .~''-..,_ ~ .、| | ~''''-...,,_ ./ | | ~''-,/ ~~~~
-------------------------再開--------------------------
-------------------------欲求--------------------------
415 :
nobodyさん :2011/06/20(月) 02:06:54.89 ID:xe74n3DT
すみません。 PHPとSQliteを使って全文検索する手順を知りたいのですが。 どうすればできますか。
>>415 PHPからSQliteにアクセスしてSQLで検索すればできます。
417 :
nobodyさん :2011/06/20(月) 02:29:18.44 ID:/nEsLqtQ
$tes = 'adfs<p></p>aidos'; if (preg_match('@<p></p>@', $test, $matchs)) { $matchs = $matchs;strpos($content, '<p></p>'); } これがなぜかひっかからないんですが、これのどこがまずいんですかね?
419 :
415 :2011/06/20(月) 03:05:47.17 ID:xe74n3DT
>>416 分かち書きなどデータを格納させる部分がわからないです。
>>419 分かち書きして格納しなくても全文検索できると思うけど
421 :
nobodyさん :2011/06/20(月) 10:23:42.66 ID:BNitWR33
>>421 ここはそういうスレじゃありません
自分で作る人のためのスレなので
全くPHPが分からない人は改造依頼スレにでも行ってください
よもまつだな
しかもスクリプトがPHPと関係ないしPerlだし しかも質問内容的にはHTMLとCSSの範囲だし このスレと関係ないし
>>423 いいえ質問ですよ?
何様ですか?
どうしたらいいのかを聞いているだけです。
分からないならROMることを推奨します。
427 :
nobodyさん :2011/06/20(月) 11:22:07.32 ID:vXcQRUtr
ID出して煽れ
428 :
nobodyさん :2011/06/20(月) 11:49:57.11 ID:t9yzgRwY
>>421 ここで質問しても無駄だよ
いちいち難癖つけては答えないスレだからね
最近答えを引き出せないと逆ギレするのが流行ってるのか?
何をいまさら
作る気もなきゃ理解する気もない、 頭がサポートするに値しないほど足りないやつは金払うしか無いと思う。
428が真理なんだからどうしようもない
無料で聞いてやってるんだから無料で答えて欲しい
436 :
nobodyさん :2011/06/20(月) 16:58:07.44 ID:BDImTBKJ
PHPで扱える書庫で、展開なしにランダムアクセス可能な物はありますか? たとえばzip書庫からファイル名や格納データを取り出すことは出来ますか。
展開なしにランダムアクセスをもっと具体的に説明せい
438 :
436 :2011/06/20(月) 17:01:00.23 ID:BDImTBKJ
導入にビルドが必要なのはよくないです。
440 :
nobodyさん :2011/06/20(月) 17:04:33.58 ID:BDImTBKJ
>>437 ファイル名リストが取り出せて、ファイル名を指定したらそのデータをメモリに格納できるといいです。
441 :
nobodyさん :2011/06/20(月) 17:08:39.40 ID:BDImTBKJ
サンクス
初心者はXAMPP使うな
かつて初心者のために身を粉にしてXAMPP,FFFTP,Terapadの使用をやめるよう説得してた人を最近見ないね
それ私です。 以前は初心者がXAMPPを使うのに反対でしたが最近は考えが変わって 積極的に初心者に勧めるようにしています。 なぜなら初心者が成長してしまうといつか自分が追い越されるかも知れないからです。
446 :
nobodyさん :2011/06/21(火) 00:43:49.52 ID:LEFbBZTK
httpとhttpsが同じドメインのサイトで ログイン処理を実装してるんですが、 ・ログイン画面 → HTTPSで表示 ・ログイン処理 → HTTPSで処理、セッションIDの変更、次の画面へリダイレクト というようなことをやっているんですが、 HTTPSで作成したセッションIDの場合 HTTPの画面に繊維した場合セッションIDを引き継げず ユーザー情報などが消えてしまい非常に困っています。 どのように解決すればよろしいでしょうか?
>>446 session_name($old_session_name);
ユーザー情報が消えたら恐ぇな
そうだね
そうだねで済まさないでください! 真剣に困っているんです。 急いでいますので早く回答してください
1つのサーバでどれ位のログイン制御を行う事が出来るのかな?
3つくらいじゃない?
PHPの仕様上、最大5つまでですが、 Apacheの制約によって3つが最大となります。(バージョンによっては2つまで)
454 :
nobodyさん :2011/06/21(火) 02:42:23.38 ID:B4Ac5btr
456 :
nobodyさん :2011/06/21(火) 02:45:11.22 ID:B4Ac5btr
>>455 自鯖に、XAMPPをインストールしたのですが、その設定はどこのファイルにされているのでしょうか?
458 :
nobodyさん :2011/06/21(火) 02:51:14.09 ID:B4Ac5btr
つーかって何?
460 :
nobodyさん :2011/06/21(火) 03:02:33.57 ID:B4Ac5btr
しかし、アパッチ、データベース、PHPを別個にインストールすると、どういうメリットがあるんでしょうね?
>>458 考えられますよ。
普通はそんな設定しないけれど。
462 :
461 :2011/06/21(火) 03:48:42.81 ID:???
>>460 「PHPの挙動として○○にアクセスすると△△や□□を実行する」
なんてトンチンカンなことを言わなくなるというメリットがあるよ。
464 :
nobodyさん :2011/06/21(火) 04:12:44.63 ID:B4Ac5btr
アパッチ、データベース、PHPの関連づけを自分でするか、XAMPPに任せるか、だけの違いだと思うんだけど。
任せた結果がお前だろw
466 :
nobodyさん :2011/06/21(火) 04:26:10.06 ID:B4Ac5btr
>>465 では、
・関連付けするにはかなりの知識が必要
ということになるのでしょうか?
ということは、
・関連付けをどうするか説明した本
とかあるのでしょうか?
>>464 要するに初心者がXAMPPで入れるとWEBサーバーとPHPの役割分担すら理解できず
>>454 >>456 >>458 のようなとんちんかんな質問をする羽目になるってこと。
これらを理解してXAMPPを使ってるなら上のような質問は出ないってこと。
>>466 関連付けがどうこうじゃなくて、それぞれの役割ぐらい理解したら?
で、何らかの設定を変えたい時に、どの設定ファイルを変更すればいいのかぐらいわかるようになればいいんでないの。
いま.htaccessはPHPの設定だと思ってるんでしょ?
469 :
468 :2011/06/21(火) 04:28:53.39 ID:???
わお。もろかぶり。
>>466 「関連付け」って何だよw
それぞれ独立したアプリなんだけどな。
もっともapacheにはPHPに関する設定は存在するがそういうレベルじゃないんだろ?
>>466 かなりの知識は必要ない。
基本的ないくつかの知識さえ習得すればXAMPPに任せて(って言い回しもどうなのか)いいと思うよ
このスレでXAMPPが嫌われるのは、こういったPHP以外の要因の質問が出るからなんだろうな。 本来Apacheの範疇ならApacheスレへ行け、で済む話なんだが。
設定いじらなければ初心者でもxampp推奨 PHPの勉強をしていってやりたいことができなくなってから 始めて設定に関する知識を身につければいい 環境構築を1から始めると挫折するやつが多いが ある程度PHP理解してからなら挫折もしないからな
XAMPPのおかげでPHPは入門できたが、 JSPは環境構築が難しくて入門できませんでした><
初心者はXAMPP使うな
毎度のことながら使うなという理由が言えないなら黙ってなよ。
>>460 知識量から見るにwindowsで使ってると思うが
xamppはphp5.3.6に対応していない
ちなみにapache公式サイトで配布されているバイナリもphp5.3.6には対応していない
初心者はXAMPP使うな これのどこが理由だよ? 他人の意見を理由にして毎度煽ってるんじゃねえよ雑魚が この一文は見飽きた
大好きなXAMPPをけなされて悔しいのか
>xamppはphp5.3.6に対応していない 5.3.6が入ってるパッケージが作成されてないというなら分かるけど、 対応してないとかはない。 インストール後に個別にアップデートすればいいだけの話。
483 :
nobodyさん :2011/06/21(火) 10:31:47.32 ID:Joa3pOsa
どうやってアップデートするんですか? 詳しく教えてください
インストールディレクトにバイナリを上書き
それで動くわけないだろ xampp使いはバカだな
動きます 後方互換性って言葉もしらんのか
xamppに入ってるapacheがvc6なのに何で動くんでしょうかね php5.3.6はvc9しかないのにね 不思議だね
apacheアップデートすればいいじゃん
動きます 後方互換性って言葉もしらんのか
じゃあやってみて^^お願いね^^ その結果を画像つきでブログでも載せてね^^
vc6とかvc9とか知らないと思って知ったかぶりしてんじゃねーよw
いやいや、だから上書きしたらできるんでしょ?やってみて そういうレスはいらないから出来る証拠を提示してね
インストール後に個別にアップデートすればいいだけの話
上書きして設定したら出来ますよ
5.3.6ってVC6用意されてないんだね。
独立してるからアプリケーションを個々にアップデートしても依存関係を解消すれば動くのは当たり前。 動かなくなる可能性があるのはxamppのコントロール関係だけだろ。
xamppのコントロール関係w
最初から個別にいれればいいじゃんw
XAMPPERってVC6とVC9の事も知らない人多そうだな
XAMPP使いじゃなくても知らない人多いんじゃね? どうせその辺のサイトの言うとおりやったら出来ました的なやつが大半だろ? 肝心のconfもまるまるコピペ。 一応自分で設定したつもりだろうが、言われた通りやりましたじゃXAMPP使いと大差ないわ。
xamppでコントロール出来なかったらどうやってApache起動するんだろう・・・
ブログまだー?
httpd start
>>501 Apache起動したままアップデートすればいい。
Windowsはサービスに登録すればいいらしいな。 昔はコマンドから起動できたらしいが。 Linuxでやってるからその辺はよく知らん。
Linuxでxampp使ってるとか釣り?
Linuxでxamppとか一言も言ってませんが。
ここまでの出来事で分かったこと XAMPPをけなされると必死で噛み付いてくる
ここまでの出来事で分かったこと XAMPPを脊椎反射的に否定するやつがいる
45秒で返すとか粘着しすぎだろwwwwwwwwwwwwwwwww
ヒント:自作自演
Linuxでxampp使っていけませんか
513 :
nobodyさん :2011/06/21(火) 12:05:07.77 ID:eSkOaCrh
初学者でつ 10日で覚えるPHP5という教本をひと通りやり終わったんですが、次おすすめの本があったら教えてください mySQLやPEARについてもう少し知りたいです
>>513 初心者はXAMPPの解説書を読むといいよ。
PEARはスルーで構いません
517 :
nobodyさん :2011/06/21(火) 12:13:31.97 ID:eSkOaCrh
xamppもどうかと思うけどVMはそれ以上にありえない 本番環境にならないのに開発のためだけにそこまでやるとただのアホだわ それよりもどの環境でも使える標準関数を意識的に使えばいい
VMのインストールもできないボンクラw
>>517 読んで見たけど、その人はスルーしたほうがいい。
恥ずかしげもなく、
>手軽だが、正直言って業務で使い物になったことは今の所一度も無い。
とか、
>XAMPPでWebサーバ運用してる奴なんかいるのか?
>だ。
>そもそも大抵のWebサーバはLinuxだ。
こんな事言っちゃってる人はあてにしちゃいけない。
>XAMPPで動たとしても、そのままLinuxで動くなんてことは保障されない。
>俺達はLinux向けのWebアプリを開発するためにLinuxベースの開発環境を整えるべきだ。
もっともらしいこと言ってるけど、世間一般ではスキルが足りない人と見られるだけ。
以後XAMPP推進派のと反推進派のレスをお楽しみ下さい
経験ではLinuxで動いてWindowsで動かないとかその逆とか、 今までで作ってきたものの中でそういった事態は起きたことがないな。 OSに依存する処理がsystem関数でコマンドを叩く以外に特に思い浮かばないな。 なんかあったっけ?
xampp使ってる奴は設定関係の質問は禁止名
設定関係でなくてもどうせ答えないんだから
525 :
nobodyさん :2011/06/21(火) 13:08:31.06 ID:eSkOaCrh
>>518 ,520
ありがとうございます、未だよくわからんのでXAMPPを使いつづけることにしまつ('A`)
初心者から一歩進んだレベルになるにはどの書籍がオススメか教えてください
逆引き系の本を買って必要になったら引くとかでいいのでしょうか?
xamppの書籍を出してる作者は大罪
開発環境にxamppと書くとxamppの問題と関係なしに脊椎反射レス付ける知障がいるから毎回荒れるんだよな
>>525 このスレじゃマニュアルを見ろとしか返ってこないと思う。
あんまマイナーなもの出すと宣伝乙って言われるし、
答えが返ってくるとしてもオライリー一択。
(読んではないけどとりあえずオライリーと言っとけばOKみたいなノリで)
書籍の質問するなら2ch以外でした方がいいと思うわ。
529 :
nobodyさん :2011/06/21(火) 13:27:15.34 ID:eSkOaCrh
>>528 そうですか…ありがとうございますた('A`)
xampp大好き野郎は自分の能力を隠すために毎回知障とか汚い言葉を好む傾向にある だから荒れるんだよな
531 :
nobodyさん :2011/06/21(火) 13:51:37.38 ID:eSkOaCrh
XAMPPのアンチってなんの目的があるの? アニメとかゲハだったら売上とかに関わるしアンチが沸く理由もわかるんだけど
A. xampp=悪という洗脳教育を受けてよく分からないがとりあえず悪いと言うやつ。 B. 楽してるのが気に入らない。そんなやつが俺と同じフィールドに立つんじゃねえというよくわからないプライド。 初心者はXAMPP使うなって毎回言ってる奴は典型的なAタイプ。 多くはBの安いプライドを振りかざすタイプ。
>>518 > 開発のためだけにそこまでやる
仮想マシン使うのは楽だよ。
仮想マシンにOSをインストールするのに10分弱、その後の設定も含めて30分ぐらい。
これで擬似本番環境が手に入るのはメリットだよ。
標準関数の件は同意だけど、なんかそれは話がずれてると思う。
>>531 これまでの流れ見てればわかると思うけど、
XAMPPと表記して質問する奴って、PHPじゃなくてwebサーバーの設定の問題だったりするから。
本人がPHPと無関係だと認識していればまだマシだが、そのレベルにすら達していないので
相手にするのがうんざりする。
XAMPPスレがあれば楽なんだが。
538 :
nobodyさん :2011/06/21(火) 14:08:13.11 ID:eSkOaCrh
なるほどそういう事なのね
>>533 言葉足らずだったがインストールの楽さだけじゃないんだよね
VMがアプリケーションとしては重い部類だとかシステム周りが汚くなるとか
開発専用マシンならそれでもいいけど多くは兼用だろうし
不必要なサービスを避けて最低限の開発環境を整えたほうがいいだろうということ
標準関数云々は環境整備に気を取られるよりどの環境でも動くようにコーディングしろの意
もしかしてレジストリを毛嫌いする人?
Ajaxの話はもう飽きた
>>539 > 開発専用マシンならそれでもいいけど多くは兼用
開発専用マシンだったとしても、各アプリケーションのバージョン違いで平行開発とかあるわけで、
VMの方がすっきりするんだけどなぁ。。。
考えの違いといえばそうなんだけども。
>>539 > 標準関数云々は環境整備に気を取られるよりどの環境でも動くようにコーディングしろの意
だから、その話は分かるが、違うような気がする。
ここPHPスレだよ。どの環境でもって、どのあたりを指してる?PHP3はさすがに含まれない?
そんくらい常識的にかんがえろよ・・・
PHP5以上、本番環境以下だろ。 サポート外のPHP4考慮とかもうあり得ないし。それより下の3とかはもっとアリエナーイ。
一回作っとけば後でバージョンアップも楽なのにXAMPPを使う利点って
バージョンアップする必要もないけどな
IP出せ
チンピラスレに帰れよ
551 :
nobodyさん :2011/06/21(火) 17:30:16.56 ID:NgMS4Wpe
mb_convert_encodingでUTF-8をShift_JISに変換するときは SJISで良いんでしょうか?
∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
SJIS-winかな
554 :
nobodyさん :2011/06/21(火) 17:43:34.81 ID:NgMS4Wpe
あざっす Shift_JISとSJISとかの違いがよくわからなかったもんで
【わからない5大理由】 1. 読まない ・・・説明書・テンプレなどを読まない。読む気などさらさらない。 2. 調べない ・・・過去スレ、ググるなど最低限の内容も自分で調べようとしない。 3. 試さない ・・・めんどくさいなどの理由で実行しない。する気もない。 4. 理解力が足りない ・・・理解力以前の問題で理解しようとしない。 5. 人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする
初心者はXAMPP使うな
じゃあSMAPから始めてみるわ
Solaris+MariaDB+Apache+Pythonですね そらええ構成ですわ
>>546 5以上本番環境以下なんだ。じゃあ、5.3の新機能とかは使えないのね。
mb_detect_encodingって誤検出ある? 現状困ってるってわけではないんだがどうもおかしい
Ajaxの話はもう飽きた
563 :
nobodyさん :2011/06/22(水) 03:43:55.23 ID:683X68XN
ネットワークでmemcacheサーバーにアクセスするのって、ローカルのハードディスクにアクセスするより速いすか? ベンチとるようなスクリプトありますか?
双方のスクリプト書いてabでも流せば?
答えは環境によるとしか ところでそんなの知ってどうするんだ? 知ったところでやることは変わらないだろうに
やることは変わらないってどういうこと?
質問はID出せ
ローカルのアクセスが早けりゃローカルで運用するのか?ってことだろ
Ajaxつこうた
570 :
nobodyさん :2011/06/22(水) 11:19:52.88 ID:LIm3iQT5
つまり作成依頼
572 :
nobodyさん :2011/06/22(水) 11:22:26.43 ID:LIm3iQT5
正規表現かDOMあたり使えばよろしい
>>573 はい、ありがとうございます。
でもhttpから始まる文字をリンクに置換すると
imgタグのhttpから始まる文字も置換されてしまうので困っています。
じゃあそのコード張れば?
>>574 >>576 はい、ごめんなさい。申し訳ありませんでした。
現在やってること
1.htmlspecialcharsでタグ禁止
2.preg_replaceでimgタグを許可
さらに3.preg_replaceでhttpから始まる文字をリンクに置換したい
1.$message = htmlspecialchars($message,ENT_QUOTES,'utf-8');
2.$message = preg_replace("/<img src="(.*)">/","<img src=\"$1\">",$message);
3.$message = preg_replace('/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/', '<A href="\\1\\2">\\1\\2</A>',$message);
[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+をみて意味がわからないなら提示されたページを100回よめ
答えまだ?
つID
1、
http:// 〜の置き換えルールにならないように
まずは<a href="">および<img src="">の中のhttpを全て他の文字列に置き換え
2、
http:// 〜を<a href="
http:// 〜">
http:// 〜</a>に置き換え
3、1で置き換えた文字列をhttpに戻す
完
585 :
584 :2011/06/22(水) 12:49:33.81 ID:???
1の工程でaが対象の場合firstChild.textContentも置き換えしないとだめだな
>>568 そうだろ。
ネットワークが速ければネットワーク越しのmemcached使うだろうし。
やること変わるじゃんね。
>>584 textareaとかpreとか考慮されてないね
DOMの方が確実
普通に字句解析でいいんじゃね
これだと "の変換後の &quot; に囲まれた部分を戻すのを &quot;((?!&quot;).)+&quot; にしなきゃ、ちゃんと戻らないとか、 'もあるとか、ほかにもいろいろある。 正規表現の文字置換だけでやるのおすすめしない。
何だ結局誰もできないのかクズ杉
ID出すか金出せ
$message = "こんにちは。<img src=\"
http://example.com/a.jpg\ "><B>はじめまして</B>
http://example.com ";
$message = htmlspecialchars($message,ENT_QUOTES,'utf-8');
$message = preg_replace("/<img src="((?!").+)">/","<img src=\"$1\">",$message);
$message = preg_replace('/(?<!src=")(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/', '<A href="$1$2">$1$2</A>',$message);
あとは自分で考えてね。
>>592 できました。ありがとう!
なんかimgのhttpをunkoに置換して最終的にunkoをhttpに置換するような馬鹿なことやってました(笑)
投稿でいろいろ置き換わっちゃうんで読みにくい
>>592 正規表現パターンの書き方を知らないのか
unkoとかtinkoとか下品な言葉を使うのは止めてください。
下品な言葉遣いなのはその人が下品だから
PHPってDOM貧弱だよね
そんなことないぞ pullparserの方が貧弱、というより見かけない。
601 :
nobodyさん :2011/06/22(水) 21:26:14.42 ID:b+5qyvgA
アンテナサイトってどうやって作るんですか?
603 :
nobodyさん :2011/06/22(水) 21:56:15.81 ID:b+5qyvgA
その先の事をお願いします
>>601 アンテナサイトの定義は?
定期的に巡回する?
更新があったら更新されたページを通知する?
605 :
nobodyさん :2011/06/22(水) 22:28:36.20 ID:b+5qyvgA
こういうのです
http://matomech.com/ アクセスするたびに取得して表示するのでしたら簡単にできるとおもうのですが
web上に公開されているほとんど全てのアンテナサイトではそうはしてないのかなとおもってます
どうやってデータを取得してるのか気になったもので
>>605 リンク先見てないけど今はRSSっていう便利なものがあふれてるじゃない
cronのこと?
>>606 rssやxmlなどを取得してまとめたサイトをアンテナサイトというらしいです
>>607 cronで工夫するしかないですね
どうもありがとうございました
結局PHPは一切関係ない質問だったな
だれもそういうレスは求めてないみたいですよ
611 :
nobodyさん :2011/06/23(木) 10:36:32.44 ID:hvjJOcDd
皆さんはソースコードをどのように読んでいるのでしょうか? WordPressとか関数が多いのとMVC構造とってないとかクセがあって読むのに苦労します XoopsCubeはCoreは分かったのですが、Legacyは関数だらけでeclipse使っても追いきれませんでした 自分はPHPを使うので最初index.phpから読んでいるのですが、その後はどのように追えばいいのでしょうか? .phpファイルだけを追うと何をやってるのか分からないのでhtmlを読もうとするのですが、MVCになると逆にViewがめんどくさくなって読みきれません CMS他、新しいプロジェクトに入った時に皆さんがどのようにソースを読んで把握しているのか教えてください
ソースコードは読むものじゃねえ 感じろよ
感じろだって〜 いやらしい〜〜
ここか?ん?ほーらほら
615 :
nobodyさん :2011/06/23(木) 14:13:59.31 ID:H3vaNC/i
すいません。行ってきます。
618 :
nobodyさん :2011/06/23(木) 14:19:13.94 ID:CEVbGHYc
phpでutf-16を表示する方法を教えてください
>>618 <?php
print "utf-16";
?>
ネタニマジレス(・∀・)カコイイ!!
>>620 <?php
echo "UTF-16";
624 :
nobodyさん :2011/06/23(木) 15:56:57.65 ID:9OJhjoVQ
UTF16の文字コードの取り扱いって事だろ
>>624 <?php
echo "UTF16の文字コードの取り扱い";
?>
phpでutf-64を表示する方法を教えてください
>>605 Yahoo PipesでまとめサイトのRSSを統合して出力すれば良くね?
ネタニマジレス(・∀・)カコイイ!!
−−−−−−−−−− ここまでマジレス −−−−−−−−−−−
632 :
nobodyさん :2011/06/23(木) 19:00:55.27 ID:9OJhjoVQ
PHPのSqliteで、検索したデータの取り出す順序を指定できませんか。 登録の新しい順にしたいのですが。
633 :
nobodyさん :2011/06/23(木) 19:04:08.85 ID:9OJhjoVQ
自己解決しました
634 :
nobodyさん :2011/06/23(木) 19:12:30.56 ID:vrm1K6Yf
>>629 RSSの統合ってYahoo Pipes以外にもできませんか?
Googleやはてなやライブドアなんかで
>>634 何でもいいけどPHP関係無いからよそ行っていいよ
どっかの無職なアフィリスレのやつだろ?
見えない敵と戦う人がいますね
完全にそこのスレのやつだな しかもPHPでやるってことぐらいしか見当ついてないのによくもまぁ質問するもんだ コードを出せ話はそれからだ
<?再開
642 :
nobodyさん :2011/06/24(金) 01:25:01.32 ID:op2r2+/q
exit;
>>558 pythonだけはどうしても好きになれぬ。
文法がめちゃめちゃ
>>638-639 そこはこそでコードも出たし質問者のレスからここの人とは別人だと思われる
どんな文字コード変換(エンコード&デコード?) されてるかわかりますでしょうか? あいうえお ↓ b7a4780abedf7520fff57e189544e4ee となります ペコリ(o_ _)o))
わかる
>>643 pythonってちらっと学生の頃にやったけど忘れちゃったな
phpで事足りた
そりゃ君がWebしかやらないからだよ
650 :
646 :2011/06/24(金) 13:49:33.00 ID:???
ID出せ
653 :
646 :2011/06/24(金) 14:02:12.47 ID:???
>>652 ちげーし(笑)
もうそんなのは試しました
MD5は32文字固定なのに違うというのかね? ちなみにこれはMD5の前にいくつか処理してると思うが
655 :
646 :2011/06/24(金) 14:10:54.77 ID:???
低レベル回答者には黙っててもらいたいですね 128bitの暗号化なんてmd5だけじゃないんですよ('A`)
だがお前の態度が気に入らない
657 :
646 :2011/06/24(金) 14:23:16.84 ID:KjcjiZmU
>>655 は、私ではないです。
MD5を試しましたが、同じになりませんでした。
どうやって作ってるのか、わかりますか?
659 :
646 :2011/06/24(金) 14:46:19.20 ID:???
あいうえお → b7a4780abedf7520fff57e189544e4ee かきくえこ → a6f95c3ac87173271d5ec2b991cae1b6 12345 → 341a16619a730eb0979a24e987a006e2 困った...
つうかソースコードあんのか? ないならわかるわけないだろ
664 :
646 :2011/06/24(金) 17:53:17.37 ID:???
判りました。 あいうえお に対応する b7a4780abedf7520fff57e189544e4ee は、 キャッシュのIDで、内部で作られてました。 なんとか理解でき、動作させることができました。 ご返信頂きました方、ありがとうございます。ペコリ(o_ _)o))
665 :
nobodyさん :2011/06/24(金) 17:57:37.63 ID:JVdOuJdi
function f() { $x = 100; $a1 = function() use($x) {return "$x\n";}; $a2 = function() use(&$x) {return "$x\n";}; $a1();$a2();$x++;$a1();$a2(); } これは何をやってるコードですか?
>>665 無名関数へ変数を渡したあとに、変数の値だけ変えても渡される値は変わらないけど
リファレンスで渡せば変わるよっていうようなサンプルを実行するだけの関数の定義。
引数の値渡しと参照渡しの違い
useって何に使うんですか? 何故function()の次に{ではなくてuseがくるんですか?
IDは?
それは違うw
675 :
nobodyさん :2011/06/24(金) 21:29:28.24 ID:lKGv9iAB
useって何に使うんですか?
何故function()の次に{ではなくてuseがくるんですか?
>>669 様に回答を依頼します
phpのオープンソースで学習に良さそうなモノってないでしょうか? Tipsや言語解説などは調べれば色々ありますが、 クラス設計やディレクトリ構成、セキュリティ対策など全体を見通せるようなモノがないか探しております。 WordPressでも見てみようかとも思いましたが、Eclipseが落ちまくるし、 見通すのに規模が大きくて断念しました。 ご指導いただけますと幸いです。
679 :
nobodyさん :2011/06/24(金) 23:17:48.23 ID:h6uX09tZ
>>678 すみません。IDを出せということでしょうか。
自演乙
基礎から勉強しろが無駄な意見だと思うお前は絶対プログラム向いてないからやめとけ
そもそもphpと関係ないしな
685 :
nobodyさん :2011/06/25(土) 00:42:51.76 ID:/hR6JGqF
>>680 学習するにあたって「他人のソースを読むこと」という意見をよく目にするのですが、
そういう環境になく独学をするしかないような状況です。
書籍に学ぶにしても、「言語解説だから」「あくまで入門だから」というような理由で
セキュリティ的に穴のあるコードを紹介していたり、マジックナンバーをハードコーディングしていたり、
実際にはやらないようなファイル構成や設計で紹介しているものが多い気がしています。
それで、学習に良さそうなオープンソースを見てみたいと思い質問させていただいたのですが、
なかなか無いものなのでしょうか。
自分で適当に選んでも良いのですが、選んだソースがたまたまセキュリティ的に穴があったり、
おかしな設計だった場合、それを模範にしてしまうのは危険だと思うので、
推奨されるオープンソースがあるのであればご紹介いただきたいと思った次第です。
686 :
nobodyさん :2011/06/25(土) 00:43:56.70 ID:/hR6JGqF
>>685 多分、今の君のレベルで大規模システムのソース読んでも意味がないと思う
688 :
nobodyさん :2011/06/25(土) 02:15:27.69 ID:vr6UcJnj
公式だしZendとかでいいんじゃない とりあえずsymfonyやphpMyadminやMantisやECCubeはやめとけ
とりあえず、マニュアルを1ページ目から流し読み→ソースなどがあったら、自環境で試してみて理解を深める という流れがいいんでないかな それをふっとばして「オープンソース」なんて読んで見ても無駄だと思うよ。 # いくつかのフレームワークのソースを読んでみたんだが、深い部分での共通点はあっても、個々で見るとかな〜り癖があるから、基本が固まらんと変なクセがついてしまうと思う。
>>689 その段階は過ぎてソースを読もうとしてるんじゃないかな
いや質問の文章からしてそこまで達してない
692 :
nobodyさん :2011/06/25(土) 09:41:22.11 ID:cXozfBs7
<?php require_once 'HTML/QuickForm.php'; $form = new HTML_QuickForm('example'); $select1[0] = 'Pop'; $select1[1] = 'Classical'; $select1[2] = 'Funeral doom'; $select2[0][0] = '--- Artist ---'; $select2[0][1] = 'Red Hot Chil Peppers'; $select2[0][2] = 'The Pixies'; $select2[1][0] = '--- Artist ---'; $select2[1][1] = 'Wagner'; $select2[1][2] = 'Strauss'; $select2[2][0] = '--- Artist ---'; $select2[2][1] = 'Pantheist'; $select2[2][2] = 'Skepticism';
693 :
nobodyさん :2011/06/25(土) 09:44:46.47 ID:cXozfBs7
$select3[0][0][0] = '--- Choose the artist ---'; $select3[0][1][0] = '15.00$'; $select3[0][2][1] = '17.00$'; $select3[1][0][0] = '--- Choose the artist ---'; $select3[1][1][0] = '15.00$'; $select3[1][2][1] = '17.00$'; $select3[2][0][0] = '--- Choose the artist ---'; $select3[2][1][0] = '15.00$'; $select3[2][2][1] = '17.00$'; $sel =& $form->addElement('hierselect', 'cds', 'Choose CD:'); $sel->setOptions(array($select1, $select2, $select3)); $form->display(); ?> 最後の結果の部分(15.00$,17.00$)をプルダウンではなく 通常出力として表示させたいのですが方法はあるでしょうか? よろしくお願いします。
echo $select3[2][1][0]; echo $select3[2][2][1];
quickformって、ずいぶん昔にいじっただけだが、freezeってメソッドなかったかなぁ 通常のテキストボックスって事なら、値をテキストボックスに代入してやるくらいしか無いかと。
696 :
nobodyさん :2011/06/25(土) 10:07:57.75 ID:cXozfBs7
>>694 わかりにくくてすみません。
連動プルダウンで選択されたものを素に結果を出力したいです。
>>695 freezeも使ってみたのですが使い方が間違っているせいか
なにも表示されないです。
>>696 Javascriptで制御してるんでしょ?
該当メソッドの中のコード書き換えるしかないかと
698 :
nobodyさん :2011/06/25(土) 11:08:06.22 ID:cXozfBs7
>>697 QuickFormはJavascriptで制御しているんですか?
更に難しそうですね・・・
質問ですが、ここで正しいか定かではないので、より適切なスレがあれば誘導お願いします。 最近phpを勉強し始めて、mysqlと組み合わせたりして遊んでるんですが、 phpで計算させると読込に時間がかかりますよね。 普段見るwebサイト、例えばwww.lifehacker.jpとかはすごいコンテンツが充実してるのに読込も速い ああいうのはどういう技術を使っているんですか? 読み込みつつ表示させていったりとかもよくわかりません(全部計算終わってからバッて表示される)←特にこれが知りたい どういったキーワードで検索すればいいのかわからないので質問しました、よろしくお願いします。
700 :
699 :2011/06/25(土) 13:49:40.76 ID:ALxmGxKI
間違ってsageてました、スミマセン
>>699 <?php
echo 1,"\n";
sleep(1);
echo 2,"\n";
sleep(1);
echo 3,"\n";
sleep(1);
echo 4,"\n";
sleep(1);
echo 5,"\n";
いろいろなテクニックがあるから何を答えていいのかよーわからん キャッシュ使うとか、ブラウザが早く解釈できるような構成にするとか、Ajaxを使って主なHTMLが読み込まれた後から読み込むような構成にして見掛け早くするとか
>>699 <?php
ob_start();
echo 1,"\n";
sleep(1);
echo 2,"\n";
sleep(1);
echo 3,"\n";
sleep(1);
echo 4,"\n";
sleep(1);
echo 5,"\n";
ob_end_flush();
HTML化してるだけでは?
706 :
nobodyさん :2011/06/25(土) 14:53:46.20 ID:VLU0kyJz
回答ありがとうございます >読み込みつつ表示させていったりとかもよくわかりません(全部計算終わってからバッて表示される) についてですが ob_startとかob_flushとか使ってみましたがやっぱり一度に表示されてしましますね。。 Ajaxを使うとできるようになるんですか、jQueryなどの勉強から入るのが近いですか? ・・意外と難しいんですね・・・phpだけではできないことだったとは。 考えてみればphpは動的にHTMLを生成するだけで、生成されたものはただ のHTMLだし生成した以降はダウンロードするだけだから表示と読込を並行させるのはphpでは難しそうでした
707 :
699 :2011/06/25(土) 14:56:26.92 ID:ALxmGxKI
ID変わってますね・・・ 699=706です
処理が速いということはスパコン使ってるに違いない
pearにAjax、Javascriptと連携するのがあった
712 :
nobodyさん :2011/06/25(土) 16:46:57.40 ID:Y32aucUY
質問です SELECT で表示する件数を指定したいのですが、 昇順の状態で後ろから10件を表示するにはどうすればいいのでしょうか? 全数がわかれば、 LIMIT を使うこともできますが、 何件あるかわからない状態で、後ろから10件を表示する方法を探しています。 例えば、掲示板の最新50のようなイメージです。
ODER BYとかだろ
降順縛ってるの?
Sqliteのケースでは、これとLIMIT追加。 ORDER BY ROWID DESC
716 :
nobodyさん :2011/06/25(土) 16:54:11.87 ID:Y32aucUY
>>714 2chのように表示を昇順に
そして表示件数を指定した際に最新50が表示できるようにしたい
わかりづらいかもしれませんが
理解した これより前のレスを省略しましたみたいなやつか 配列使いまわすならcountで配列数取得してarray_sliceで削るとか? パフォーマンス的にどっちがいいかわからんが
curl_multi_initを使って複数のリクエストを同時に投げる事は出来ますが 投げる前に全てのURLを決めて、全てのURLが返って来るまでスクリプトは停止してしまいますよね 投げた全てのリクエストが帰って来るまでに、新しいURLをリクエストする 例えば、URL1、URL2でリクエストを投げて、URL1が帰ってきたら(URL2が返って来るのを待たずに)URL3のリクエストを投げる。 URL3を含む全URL1〜3が返ってきたらコードが進む。 つまり並列ダウンローダーの様な動作をさせるにはどうしたらよいのでしょうか
むり
phpはマルチスレッドプログラム非対応
curl_multi_execでできるよ
クラスの中のメソッドに直接アクセスしようと、ClassName::hogefunction();とアクセスしようとしたら // 注意: E_STRICT が有効な場合、次の行で警告が発生します と警告されてしまいました。正式な方法でクラスの中のメソッドに直接アクセスするにはどうすれば良いのでしょうか
IDは?
724 :
nobodyさん :2011/06/25(土) 17:51:16.16 ID:ALxmGxKI
>>710 うーん、かっこいいけど一瞬で表示されてるのでわからないです
lifhackerとかアクセスするとまず左上のロゴの辺りが表示されて、それからどんどん他のコンテンツも表示されて、
みたいな、スクロールバーがどんどん小さくなるあの感じ。。。
僕のページは何も工夫が無いからか少し真っ白の画面で待ってから全てがバッて表示されるの。
説明下手すぎて泣いた
>>711 PHP PEARというライブラリ使うとできるんですか?ちょっと試してみます・・・・
725 :
nobodyさん :2011/06/25(土) 17:52:14.76 ID:qLdraW+2
>>722 コード出さないとなんともいえないけど
違うとこで警告でてるんじゃね?
static修飾子つけてクラスメソッドにしてるなら
その呼び方は普通にできる
インスタンスメソッドでもメンバ変数を使っていないなら
その呼び方が可能
727 :
nobodyさん :2011/06/25(土) 18:29:24.36 ID:qLdraW+2
>>726 それでした。低レベルな質問ごめんなさい・・・
728 :
nobodyさん :2011/06/25(土) 20:24:58.32 ID:P4/ddFrn
PHPでWebサイトを作りたいのですが、最近の流行が分からないので教えてください。 規模としては、ごくシンプルなブログといった感じです。 CakePHPを使って構えて開発するような規模のサイトではなく、 レスポンスのスピードも優先させたいので重いフレームワークは使いたくありません。 しかし今時フレームワーク無しの開発というのも不安があります。 こういった場合、どのような開発方法が良いでしょうか。 最近あまり聞かないですが、シンプルなSmartyを使うというのも選択肢としてアリですか? アドバイスを頂けると嬉しいです。よろしくおねがいします。
フレームワークいらねえ。ソフト開発が目的でないならワードプレスでいいし。 オープンソースだし改造も出来る。
流行で選ぼうとしてる時点で終わっトル
>>728 書き込むときはテキストに書き込み
ページを開いたらテキストのまま表示
>>728 個人的なものなら無理にフレームワーク使う必要ないんじゃ?
俺はSmarty嫌いじゃない。嫌う人多いけどね。
シンプルなブログならSQLとAjaxでそれなりに高速だよ
もちろんサーバーによるけどね
734 :
677 :2011/06/26(日) 03:20:03.64 ID:???
>>688 遅くなりましたが、レスありがとうございます。
いきなりフレームワークは敷居が高そうではありますが、
サイトを拝見したところ解説なども充実してそうだったので検討させていただきます。
また、非推奨のアプリケーションも教えていただいてありがとうございます。
海外の掲示板でも同じような質問をしている人がおり、そこではphpBBやoscommerceはやめておけという意見などがありましたが、
学習用の手頃な規模のアプリケーションというのは見つかりませんでした。もうしばらく情報収集してみたいと思います。
735 :
677 :2011/06/26(日) 03:21:26.94 ID:???
・・・続き (規制で長いって言われますorz) 基礎学習を疎かにして良いなどとはもちろん思わないのですが、 マニュアルに書かれている内容やサイトで紹介されているTipsなどがアプリケーション全体において どのように反映されるのかを知りたいという需要は無いものなのでしょうか。 身近に熟練した人がいて正しいコーディングスタイルを学べる環境にある人は良いと思うのですが、 自分の教育者が正しいスタイルを持っていなかったり、独学で学んでいる人にとっては 何かしら模範となる学習用のアプリケーションがあっても良いのになと思った次第です。 (「まずはこれを見ろ」というモノがあれば、基本的なセキュリティホールを作ってしまったり、 スパゲティコードを書いてしまったりということは減るのではないかと思うのですが・・・) 他にもご意見くださった方ありがとうございました。
自分で掲示版作ってみるくらいのことをやってみてから、有名なアプリケーションの 「美しく機能的なコード」を読んだら? もちろんスパゲッティコードになるかも知れないけど、 自前のコーディングの不安さや物足りなさを経験したあとの方が 効率的で安全なコーディングの良さを深いところまで理解できるんじゃないかとおもうが
有名なオープンソースのアプリのソースを読むというのは 基礎的な知識を完全に身に付け、自分である程度のシステムを開発したことがある人が いわば総仕上げ的な意味合いで行う勉強方法であって、 初心者がソース見て勉強しても身にならない所か悪影響を及ぼすぞ。 ましてや、がむしゃらに吸収する人ならまだしも、手を動かす前に口を動かしてしまう人にはまず向かない。
>>648 C++ / VB.net / C# / PHP / Perl / Cshell...etc
色々やったがどうしても Python の変な記述文法が好きになれない。
ありえんわ 変な記法ならVBのほうが上でしょうに
PHPってCのラッパー言語なんでしょ?
まあ実際WebプログラミングにおいてPythonはちと微妙な感じはする(VBも微妙だが) どうせWeb特化でない言語で書くなら、高速なCか Perlみたいな文字列処理が楽に書ける言語で書きたいな シェルでCGIってのはPerl/CGIが流行るより昔には実際に行なわれてたらしいな…
742 :
nobodyさん :2011/06/26(日) 09:38:47.69 ID:/pJHPvpJ
質問です。フォームの入力値検証で、半角英数字と日本語のみを許可
…というより、半角記号とスペースを禁止にしたいんですが、どう書いたら良いでしょうか?
ttp://ref.layer8.sh/ja/entry/show/id/1121 調べていてこのページを見たら、
半角記号を削除して表示する
echo preg_relace('/[\@-\/]/i', '', 対象文字列);
と書いてありますが、これだと<とか>とか?のチェックが出来てるのかなと
疑問なのですが…
>>677 キミは、数学を学ぶ前から、数学が社会で何の役に立つの?って文句言うクチかい?
>マニュアルに書かれている内容やサイトで紹介されているTipsなどがアプリケーション全体において
>どのように反映されるのかを知りたいという需要は無いものなのでしょうか。
これはまぁ、そうかもしれん。
数学の喩えを引くと例えば「積分に関しては○○先生の××って書籍が分かりやすい」とかいうのはあるとおもうが、PHPに関してもそういうのがあってもいいと思う。
だが、そういうものが刊行されたりするには、数学に比べてずいぶんと歴史が浅いと思わんかね?
数学にしたって、数千年の歴史があるにもかかわらず、万人がコレだ!って薦めてる本って無いだろ?
>>745 は少し的外れな気がするな
数学とプログラミングでは畑違いだろう
そもそもIDだしてないのに答えるなカス
>>743-744 ありがとうございました
記号ってこんなにあるんですか…
チャレンジしてみます
Pythonの文法の方がむちゃくちゃ
PHPだけやっときゃええがな
PHPも中途半端なのに同じ分野の言語覚えても仕方ないのにねぇ やるならJavaとかCと似てない奴やれよ
752 :
nobodyさん :2011/06/26(日) 14:13:29.05 ID:Yv8I1zOT
プロセスのタイムアウトの時間はどこで設定するのでしょうか while(1){ print2(file_put_contents("test.txt",date("H:i:s.u")."<br>\n",FILE_APPEND | LOCK_EX)); sleep(1); } としたら1分以上も動きつづけています。30秒で終わるのかと思ってた
$i=0; while($i < 60){ $i++; sleep(1); }
max_execution_time
755 :
nobodyさん :2011/06/26(日) 14:50:13.21 ID:Yv8I1zOT
ああごめんなさい、コードはぶっちゃけ関係ないです php自体の、タイムアウト秒数はどのように設定するのでしょうか
757 :
nobodyさん :2011/06/26(日) 15:42:22.22 ID:W+AeykF5
「はい」か「いいえ」のラジオボタンで10問くらいのアンケートを作って 「はい」と答えた個数の合計を表示 それに応じたコメントを表示させたいのですが まず、合計を表示させるところで生き詰まってます <input type="radio" name="Q1" value="1">はい <input type="radio" name="Q1" value="0">いいえ <input type="radio" name="Q2" value="1">はい <input type="radio" name="Q2" value="0">いいえ これをpostでphpに送って結果を表示させたいのですが・・ 色々やっても駄目でした 親切な方教えてください
何をどうやってダメだったのかコードを書かないと作成依頼になりますよ
>>757 ダメって何をやってどうダメだったの?
あと「親切な方」とかやめるように。
>>757 親切な俺が教えてやるよ
<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
<input type="text" name="count" value="">「はい」と答えた個数の合計を入力してください
761 :
nobodyさん :2011/06/26(日) 16:40:30.19 ID:W+AeykF5
>>758 駄目なソースは消してしまったので・・
if($_POST["Q1"])
{
if($_POST["1"]) {$1=1}
if($_POST["0"]) {$1=0}
}
と一問づつ設定して
最後にprint $1+$2+$3+・・・・
で合計を出すとこんな感じだったと思います
762 :
nobodyさん :2011/06/26(日) 16:43:56.92 ID:W+AeykF5
>>760 助かりました親切な方
できればphp側で合計を出せるようにしたいんです
>>762 ダメじゃなくて計算出来てるんじゃん?
ダメって言ってたのは何?
あと変数名に1は使えないと思う
あとダメなソースを消しちゃ勉強にならないと思う
765 :
nobodyさん :2011/06/26(日) 17:02:44.30 ID:W+AeykF5
>>763 それが、できてないんですよ
if文がうまく書けていないのか
エラーで表示されません
わかりました次はダメなソースは消しません
>>764 す、すいません
勉強してきま寸
767 :
nobodyさん :2011/06/26(日) 18:25:18.90 ID:npr5oXlM
>>739 ObjectiveCが断トツに使いにくかった
>>767 それはたぶん、先に他の「オブジェクト指向」の言語習った為、じゃないかと思う。
ObjectC自体は面白い言語だよ。
prototypeのJavaScriptが変に感じるのと同じだな
770 :
忍法帖【Lv=14,xxxPT】 【東電 72.7 %】 :2011/06/26(日) 20:10:02.66 ID:vOsyilAC
任意のhttpヘッダを送って、そのレスポンスを取得する関数かクラスってないですか? 例えば、ボクが GET /foobar.htm HTTP/1.1 Host: example.com Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 を送りたいとして、その返事(HTMLデータ等)を取得したい。という感じです。 ないとしたら、やっぱりsocketにwriteするの自分で作るしかないのかな。
771 :
nobodyさん :2011/06/26(日) 20:13:05.40 ID:3TwWQZaU
【OS名】XP 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL 【質問内容】opendirでfilesフォルダの中を開くと、filesフォルダの中身は数万個あるにも関わらず、70個程度しか開けていません。 どういった原因が考えられますか?
>>770 curl
まぁ内部でやってることはソケット通信だよ
curl or fsockopen+fwrite+feof+fread
774 :
nobodyさん :2011/06/26(日) 20:28:52.45 ID:1bpDkxSm
googleに「ソケット通信 クッキー」
甘えるな 悪いことしたいなら自分で勉強しろ
何故ソケット通信が悪いことなのか超疑問
ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
780 :
770 :2011/06/26(日) 21:13:50.58 ID:vOsyilAC
782 :
nobodyさん :2011/06/26(日) 22:25:14.04 ID:yPaZokgH
class A{ function addp($lst){//←ここ2 $lst->add(new A("その2")); } } class B{ var $lst=array(); function add($newClass){ $this->lst[]=$newClass; } function Fire(){ $this->lst[0]->addp(&$this);//←ここ1 print_r($this->ls); } } $c=new B() $c->add(new A("その1")) $c->Fire(); 上記のようなコードで、$c->Fire();時に$Cのthis->lstにその1とその2を入れたいと思っています 矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして、クラスAで$lstに追加をしているのですが "&$this"を記述しないで、ここ2の関数内でparent->lst->addみたく参照出来ないでしょうか ここ1の箇所は何度も書く予定で、"$this->lst[0]->addp(&$this);"を出来れば"$this->lst[0]->addp();"こう、スマートに書きたいなと思いまして。
>>782 >矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして
$thisはBのインスタンスでBの$lstじゃないと思うけど
へー
779のようなことを書き込んじゃう777が可愛いw
776 名前:nobodyさん[sage] 投稿日:2011/06/26(日) 20:35:39.06 ID:??? 甘えるな 悪いことしたいなら自分で勉強しろ ↓ 778 名前:nobodyさん[sage] 投稿日:2011/06/26(日) 20:52:15.32 ID:??? ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
>>789 ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
791 :
nobodyさん :2011/06/26(日) 23:06:24.30 ID:yPaZokgH
>>783 あっごめんなさい、クラスBの$lstを渡すとすれば
$this->lst[0]->addp(&$this->lst);//←ここ1
と、なりますね
となるとますます長くなるので
$this->lst[0]->addp();で済ます方法というのがあれば教えて欲しいです
ところで
>>776 は何で悪いことしたいと思ってるんだろう
俺以外全員氏ね
vipと同じにおいがするんだが
>>793 while(true){
die();
}
>>791 $thisが付いてるとスマートじゃなくて$thisが付いてないとスマートじゃないというのが良く分からん
別に自身のインスタンス変数を引数で渡すというのは必要がある場合なら別におかしなことじゃないと思うが。
今回のはクラス間関係がないのでただ関数に渡してるのと同じ。
間違った後半のは「スマートじゃない」ではなく「スマート」
自動ログインプログラムなんて大抵ろくなもんじゃない
800 :
nobodyさん :2011/06/27(月) 04:33:58.97 ID:pkVc30mh
phpで、例えばカウンターで数値を数バイトだけ保存しておきたい時でも fopenやファイル名の衝突回避、どこでserializeするのかどこでunserializeするのか、ファイルロックは適切か・・・ と悩むところが多いですが、phpの組み込み機能で手軽に設定を保存出来る機能はありませんでしょうか $_SESSIONの全ユーザー共通版のような感じです
801 :
699 :2011/06/27(月) 06:27:59.66 ID:???
>>757 のを書いてみて、いちおう動くものはできたのですが
間違っているところやもっとスマートな書き方があれば教えて頂きたいです。
<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
>>802 あなたは既にこのスレの住人のレベルを超えました。
このスレで教わるものはこれ以上何もないでしょう。
804 :
802 :2011/06/27(月) 17:05:41.17 ID:xqyiNAlq
>>802 ID出し忘れました。すみません。
<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番目が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
805 :
nobodyさん :2011/06/27(月) 17:31:42.80 ID:lGcvt27/
function bbb() { return "bbbb"; } $hoge = 'aaabbbccc'; $hoge = preg_replace('/aaa(.*)ccc/', $a='\\1',$a(), $hoge); これを実行すると\1なんていう関数はないと言われますが、 bbbを呼び出して、bbbbという結果が返ってくるようにするには どうしたらいいでしょうか?
806 :
805 :2011/06/27(月) 17:38:00.48 ID:???
callback使って自己解決しました。
>>805 $hoge = preg_replace('/aaa(.*)ccc/e', "$1()" , $hoge);
>>802 をみて同じ様なコードを書きたくなったw 住人だと同じ案件にどんなコードを書くんだろう
#1
<?php
$TOI = Array(1=>"問題1",2=>"問題2",3=>"問題3");
if($_POST['CMD'] == "送信")
{
A_disp();
}
else
{
Q_disp();
};
function Q_disp()
{
global $TOI;
$HTML = "<form method='POST'>\n<table border='1'>\n";
foreach($TOI as $KEY => $RECORD)
{
$TR = <<< DATA
<tr>
<td>{$RECORD}</td>
<td>はい<input type="radio" name="Q[{$KEY}]" value="1"></td>
<td>いいえ<input type="radio" name="Q[{$KEY}]" value="0"></td>
</tr>
DATA;
$HTML .= $TR;
};
$HTML .= "\n</table>\n<input type='submit' name='CMD' value='送信'>\n</form>";
echo $HTML;
}
#2 function A_disp() { global $TOI; $REQ = $_POST["Q"]; $ANS = 0; $ERR = ""; foreach($TOI as $KEY => $Q) { if(isset($REQ[$KEY]) == true) { $ANS += $REQ[$KEY]; } else { $ERR .= "{$KEY} 番目が選択されていません<br>\n"; }; }; echo "合計:{$ANS}<br>\n"; if(strlen($ERR) > 0) { echo $ERR; }; }; ?> 自分だとこんな感じか
810 :
nobodyさん :2011/06/27(月) 18:52:10.74 ID:xqyiNAlq
>>808-809 関数使うのが上級者ぽい感じですね。
自分はまだまだ初心者なので関数使おうという発想にいたりません。
勉強させていただきます。
Mozilla関連のスレがもっとも活発な板ってどこでしょうか
げ、誤爆かな.... おなじ質問スレでもこっちの方が良かったか??? △▲ WebProg 初心者の質問 Part23 ▼▽
>>811 そんな曖昧な質問ではわからん
ないんじゃない?
EOF;} わろすwwwwwwwwwwwwww
816 :
nobodyさん :2011/06/27(月) 20:11:19.45 ID:xqyiNAlq
817 :
nobodyさん :2011/06/27(月) 20:39:54.12 ID:3qkhECzw
ログインしてるかどうかを確かめるのは session_start(); if ($_POST['id'] == "aaa" && $_POST['pass'] = "bbb") { $_SESSION['login_flag'] = 1; } こんな感じにするのでしょうか? それで他のページで session_start(); if (!$_SESSION['login_flag']) { exit("ログインしてください"); } みたいな感じに
>>810 関数使えば上級者というわけじゃないよ
こういうのが暇をもてあますと俺俺ライブラリ作っちゃうんだよね
820 :
nobodyさん :2011/06/27(月) 20:50:59.13 ID:3qkhECzw
>>819 どういうことでしょうか?
もう少し詳しくお願いします。
822 :
nobodyさん :2011/06/27(月) 20:54:50.65 ID:3qkhECzw
>>821 どのロジックでどうDBを使うんですか?
824 :
nobodyさん :2011/06/27(月) 20:58:11.55 ID:3qkhECzw
$_SESSION['login_flag'] = 1; これをセッションじゃなくてDBで持てってことですか?
flagでon/offより、ログインを通ったら、チケットを発行するようなイメージでログインIDを発行するような方が強固になると思うよ。
そいうログインIDをデータベースに放り込むような形でログイン中のIDを管理しているCMSとか見かけるね。
まぁ、慣れてきたら色々試してみるといいかと。
>>821 の意図はわからんが。
ログインパスワードがDBから引っ張ってきた物じゃないから DB使えとかいったただのバカ回答者だろ 簡略化して書くのは当たり前
>flagでon/offより、 >ログインを通ったら、チケットを発行する ごめん俺には両者の違いがわからん
831 :
nobodyさん :2011/06/27(月) 21:49:11.10 ID:2KhSNdB/
フラグだとユーザ管理が出来ないってことでしょう
PHPのセッションの仕組み利用してる時点でランダムなセッションID発行してるだろ。 さらにログインID発行とか意味分からん。
誰にレスしてんだよ
837 :
nobodyさん :2011/06/28(火) 07:56:14.14 ID:XSZKxvps
include/require __autoload以外に他のPHPから関数を使用する方法はありますか? どちらもしていないのに使ってるスクリプトをよく見かけるのですが あれは一体どういう仕組なんでしょう?
839 :
nobodyさん :2011/06/28(火) 09:18:04.50 ID:nyZ/thnD
PDOのprepareメソッドでデータベースsakanaのテーブルfishから ・yomiフィールド昇順 ・noフィールドが123456789のレコード を全て取り出すSQL命令を発行したいのですが try { $db = new PDO('mysql:host=lochalhost; dbname=sakana', 'kun', 'san'); $db->exec('SET NAMES utf8'); }catch(PDOException $e) { die('エラーメッセージ:'.$e->getMessage()); } $stt = $db->prepare('SELECT * FROM fish ORDER BY yomi ASC WHERE no='123456789''); $stt->execute(); while($row = $stt->fetch(PDO::FETCH_ASSOC)) { echo $row['no']; echo $row['yomi']; 中略 } では動作しませんでした $stt = $db->prepare('SELECT * FROM fish ORDER BY yomi ASC'); この状態では取り出せたので 「WHERE no='123456789'」この部分がおかしいと思うおですが、どのように記述すれば良いのでしょうか? 「WHERE no="123456789"」 「WHERE no IN ('123456789')」も試しましたが動作しませんでした。
840 :
nobodyさん :2011/06/28(火) 09:31:56.39 ID:nyZ/thnD
>>839 エラーは当該行でParse error: syntax error, unexpected T_LNUMBERが出ます
SQLの記述じゃね? SELECT * FROM fish WHERE no='123456789 ORDER BY yomi ASC
と間違った × SELECT * FROM fish WHERE no='123456789 ORDER BY yomi ASC ○ SELECT * FROM fish WHERE no='123456789' ORDER BY yomi ASC
843 :
nobodyさん :2011/06/28(火) 10:00:35.66 ID:nyZ/thnD
>>842 出来ました!ありがとうございます。
記述の順序があるんですね…
844 :
nobodyさん :2011/06/28(火) 10:19:46.23 ID:bZupiZ9q
$oya = new Oya(); $ko = new Ko(); $oya->ko = $ko; 上のようなことをした場合、koからoyaのメソッドにアクセスする方法はありますか? $oya->hoge(); を $oya->ko から使う方法です。
>>836 不正ログインするためには他人のセッションIDを取得する必要があるが、
そんなことが出来るならログインIDを別に発行しても同じこと。
>>844 >>799 の
>>782 へのレス
class Oya {
public function setKo(Ko $ko) {
$ko->parent = $this;
$this->ko = $ko;
}
}
>>845 自セッションのみだとアカとパスが有れば2重ログインは通るんじゃね?
二重ログイン等をチェックするのにログインIDを発行してDBとかに格納すると思うけどね
DBに格納するユニーク値にセッションIDが有るのにログインIDを
態々発行する必要は無いってならそれは個々の理由だと思うけどね
oyaとかkoとか下品な言葉を使うのは止めてください。
849 :
nobodyさん :2011/06/28(火) 13:14:47.30 ID:bZupiZ9q
850 :
nobodyさん :2011/06/28(火) 13:17:00.90 ID:bZupiZ9q
>>848 すいません、こんどからmanとchinにします。
>>845 セッション固定攻撃対策
セッションID自体はPHP自体からきてしまうので対策のしようがない。
発行したセッションID自体を管理できていればいいんだがな
852 :
nobodyさん :2011/06/28(火) 18:41:57.43 ID:A7Pn6kne
【OS名】windowsXP 【PHPのバージョン】5.2.8 【質問内容】 文字列を何文字かずらすのはどうやったら良いのでしょうか。 例えば各1文字づらして(減らして?)IBMという文字列をHALにしたいのです。 こんな感じとは思ったのですが・・・。 $src="IBM"; $dist=""; $length=strlen($src); for ($i=0;$i<$length;$i++) { $c=substr($src, $i, 1); $dist .= ;//$cを、ここでなんかすると思うのですが・・・ } どなたか教えてください。よろしくお願いします。
>>852 ordとascだったかな。手元にマヌアルが無いんだ。スマソ。
あと、packだとか使ってもできたはず。
854 :
nobodyさん :2011/06/28(火) 19:45:49.53 ID:B0fn7u1X
セッション管理について便乗質問お願いします。 セッションはむやみやたらスタートさせないほうがいいのでしょうか? a.phpからb.phpへの一方向の遷移を考える場合、 a.phpではb.php?hoge=ランダム値へロケーションヘッダを辿り、クッキーにも同じランダム値を保存しておき、 b.phpではif ($_GET['hoge'] == $_COOKIE['hoge'])が真の時のみにセッションスタートをして、 間違っていたり直接b.phpにアクセスした場合はセッションをスタートしないような感じにしたほうがいいのでしょうか? それともこんな面倒な処理は必要ないですか?
なんでそんなコトしようと思ったの
>>852 $src="IBM"; $dist=""; $length=strlen($src);
for ($i=0;$i<$length;$i++) {
$dist .= chr(ord($src[$i])-1);
}
>>855 まず1つめはsession_start時にセッションファイルが作成されるので、
安易に作成しないほうがいいのかな?というのと、(サーバ負荷的に)
正規のルート以外からのアクセスでセッションを始めるのはなんかまずそうな気がして・・・(よくわかっていない)
858 :
854 :2011/06/28(火) 19:53:04.52 ID:B0fn7u1X
すみません。番号入れるの忘れました。
headerを送信するだけでは404 not foundのページにならなかったのですが どうしたらいいでしょう? <?php header("HTTP/1.0 404 Not Found"); header("Status: 404 Not Found");
>>859 そういう下らないことやめてくれませんかね?
ID出してないスレで質問したのになんでわざわざ煽られなきゃならんのだ
>>859 はマルチ装った偽物ですスルーしてください
┐(´д`)┌
むこうに誘導する為の釣りだな
863 :
nobodyさん :2011/06/28(火) 21:59:29.98 ID:nyZ/thnD
フレームワークを勉強しようと思います ZendかCakeにしようと思ったのですが初学者にはどちらがおすすめですか? また、おすすめの教本があれば教えてください
>>863 入門にCodeIgniterからやっとけ
その後にZend
この二つを適当に覚えたらsynfonyにも手を出してみるのも良い
CodeIgniterとZendは似た感じなのでどちらかが分かればすんなり使えるのでおすすめ
CakePHPは汚いのでと2.0になるまでは勉強しなくておk(1.x系は害悪。信者が沸くと思うけどスルーでおk)
むこうてどこ?
電気
初心者はsmartyから勉強するべきだろ
Smarty地味に便利だよな 俺は使わないけど
たしかにSmartyはいいな 俺は使わないけど
【OS名】vista
【PHPのバージョン】 5.3.6
【質問内容】
http://localhost/hoge/index.php ( C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\hoge\index.php )に
print_r(getcwd());//A
register_shutdown_function(function(){print_r(getcwd());});//B
と書いて実行すると
AはC:\Program Files\Apache Software Foundation\Apache2.2\htdocs\hoge
BはC:\Program Files\Apache Software Foundation\Apache2.2
と表示されます。何故Bがこのパスになるのかが分かりません
http://php.net/manual/ja/function.register-shutdown-function.php を読みましたが、register_shutdown_functionでカレントディレクトリが変わるとは書いてありませんし
「Apache などいくつかの Web サーバでは、スクリプトの実行時ディレクトリを シャットダウン関数内で変更可能です。」とはありますが、変更可能≠強制変更ではないと思います
>>871 下らねぇ質問は“ID出して”書き込みやがれ
873 :
852 :2011/06/29(水) 10:04:04.54 ID:eHwOMlbc
>>853 chrとordですね。ありがとうございました。
>>856 文字列って配列だったんですね。
ありがとうございました。
875 :
nobodyさん :2011/06/29(水) 13:09:44.49 ID:DGRFcgEJ
ゲームの情報サイトをPHPで作りたいと思います モンスタードロップとかどのように設計すればいいですか?
情報が少なすぎて回答に困る
>>875 あえて釣られてやると、おまえさんには10年早い
878 :
nobodyさん :2011/06/29(水) 13:51:46.80 ID:bf3Qo/ad
ログイン成功したあとの処理って次のページにLocationヘッダで飛ばすのでしょうか? header("Location: next.php"); Locationヘッダだと302 Foundで次のページへ移動して200 OKという風になりますが、 どうもその辺のメジャーなサイトのログイン機能を見ると、 ログイン後ページが移動しているのにLocationヘッダで渡してないのか200 OKを返してるようです。 Refreshヘッダにすると200になりますが、 Refreshヘッダで飛ばすのが普通なのでしょうか? header("Refresh: 0; url=next.php"); それともなんか別の仕掛けがあるのでしょうか?
headerなんて使わなくても出来るから。
ログインで302のページはよく見る
Ajaxでも実現できるよ
882 :
878 :2011/06/29(水) 17:20:55.03 ID:bf3Qo/ad
>>879 具体的にどうやればよいのかヒントでも教えていただけませんか?
クリックする方式か、ログインとその次の画面を融合させる方法しか思いつきません。
>>880 そうですね。
調査数が少なかったようです。
883 :
878 :2011/06/29(水) 17:22:25.10 ID:bf3Qo/ad
>>881 JavaScriptとの連携はちょっと難しそうなので申し訳ないです。
Googleなんかはよくやってる感じがしますけどね。
>>882 ログインフォームの飛先変えればheaderなしで次のページに行くよねってだけ。
当たり前なんだけどさ。
885 :
nobodyさん :2011/06/29(水) 19:44:12.14 ID:OCKz1ee8
$file = file_get_contents("a.php"); header("Content-Type: text/html; charset=utf-8"); echo $file; 外からのアクセスなら実行されたものが表示されると思いますが、 当然内側から読み込んでる場合は実行されません。 実行したものを表示したい場合はどうしたらいいでしょうか?
887 :
885 :2011/06/29(水) 20:33:16.83 ID:OCKz1ee8
>>886 ありがとうございます。あとで見てみます。
いましがた、ひょっとしてrequireでいける?
と思いついたのでちょっと試してみます。
888 :
885 :2011/06/29(水) 20:37:45.22 ID:OCKz1ee8
アッーやっぱできました。
ズコー
PHPを馬鹿にする奴らを見返す方法は無いでしょうか? PHPを主に使っているだけで最下層プログラマと言われて哀れみの目で見られます。 確かにPHPはどんな馬鹿にでも扱える言語と言われていますが、 PHPプログラマの自分としてはこの現実がとても悲しいです。 馬鹿でも素人でも扱える言語というのは利点でもあるはずです。
NG指定すればいいとおもうよ
>>890 そんなの気にするこたぁねえだろw
っつか
>>891 デイイダロ
JavaだろうがPerlだろうが、スキル無い奴はあほらしい質問してくるもんだ。
Catalystのメーリングリストにもミョーな奴沸いてる事あるし・・・
要は、そんなの気にかからないくらいになればいいんだ
>>890 まず君は勘違いしている
PHPをバカにしているのではなくて、
>>1 を読まないようなプログラマーだから君がバカにされている
894 :
nobodyさん :2011/06/30(木) 00:10:11.21 ID:Zpbvub7s
for ($i = 'A'; $i <= 'Z'; $i++) { echo $i; } Zで止まるにはどうしたらいいですか? Yまでだとちゃんと出てくれるんですが A-ZだとA-YYのあとにZがくるらしく 思い通りにいきません
var_dump ( 'AA' <= 'Z' ) が trueだからな。 for ($i = 'A'; $i != 'AA'; $i++) { echo $i; } とか?
変数は極力宣言しない方がメモリを消費ぜずに 良いのかな?
897 :
894 :2011/06/30(木) 00:27:41.45 ID:Zpbvub7s
>>895 ありがとうございます
これはバグではないんだろうか・・・
アルファベット入れれること自体なんかおかしいですけどねw
比較は辞書順なので
899 :
894 :2011/06/30(木) 00:37:01.98 ID:Zpbvub7s
>>898 なんか都合よくそういうのが設定できる関数とかありませんか?
mb_detect_order的な関数があるといいですが
さすがにないですかねえ
>>896 組み込みじゃなければそんな気にするこたぁ、ねえと思うぜ。
1000とか使ってる訳じゃないんだろ?
変数とは違うが、正規表現でどのくらいまで普通に処理できるのかを、DURONで2Gのメモリ積んだLinuxで試してみた事があった。
3万行くらいで30秒だったかな。
条件によって違うとは思うがまぁ、一昔前のPCでもかなり処理できるってーこった。
902 :
nobodyさん :2011/06/30(木) 01:36:26.21 ID:l/7mI36x
urlencodeとbase64_encodeとhtmlspecialcharsとかってどう使い分けすればいいですか? 受け取った入力値をhtmlに出力→htmlspecialchars 受け取った入力値をセッションやクッキーやhiddenやurlに出力→urlencodeまたはbase64_encode って感じですか? 一番迷うのはhiddenはhtmlだからhtmlspecialcharsのほうがいいんだろうか?とか思っちゃいますが 具体的にどう使い分ければいいか目安ありますか?
ま、それでいいんじゃね? セッション変数の中身は外から見えないからencode必要ないけどな。
904 :
863 :2011/06/30(木) 08:58:08.50 ID:???
905 :
902 :2011/06/30(木) 09:14:27.73 ID:l/7mI36x
>>903 レス遅くなりました
参考になります
ありがとうございます
>>902 何となく使い分けるもんじゃない。
必要な場所で必要なものを「使わなければいけない」ってだけ。
変に兼用しても意味不明なコードになる。
読ませたくないならちゃんと暗号化する。
サーバ側で完全にコントロールしてる変数でさえ(ユーザから入力されものでない) エスケープしてから出力しろとかどっかに書いてたな どう考えても無駄だから俺はやってないけど
908 :
nobodyさん :2011/06/30(木) 09:43:46.75 ID:qcWaMuTT
preg_replaceの複数行置換について教えて下さい 【a.html】xxxxxxxxxxxxxxxxxxxxx <html> <body> <div class="a">a</div> </div> </body> </html> xxxxxxxxxxxxxxxxxxxxxxxxx というファイルを a</div> </div> </body> </html> という風に出力したいと思い、下記のように書いたのですがうまくいきません a.htmlに改行が含まれているせいだと思ったのですが 公式マニュアルのpreg_replaceの項には "デフォルトで、PCRE は、検索対象文字列を(実際には複数行からなる 場合でも)単一の行からなるとして処理します。 " とあり、よくわからなくなりました。
909 :
nobodyさん :2011/06/30(木) 09:44:29.74 ID:qcWaMuTT
>>908 function replace(){
$str = file_get_contents("./a.html");
$rep = preg_replace('/.*<div class=\"a\">/',"",$str);
echo $rep;
}
↑これだと
<html>
<body>
</div>
</body>
</html>
とechoされます
>>900 メモリ積みまくってるPCで実験しても意味ねえだろ
>>909 '/.*<div class=\"a\">/s'
>>910 phpの設定でメモリ割り当て量が重要だと思うが…
>>912 いじってなければ標準の128MBだと思うけど
共有サーバだとその割り当てられたメモリを共有するからメモリミットを極限まで長寝て実験しないと意味ないんだよね
914 :
nobodyさん :2011/06/30(木) 11:19:56.33 ID:qcWaMuTT
>>911 ありがとうございます
preg_replaceですが、容量の大きなhtmlファイル(491KB)では動作しなかったのですが
replace.php
function replace(){
}
これはPHPのメモリ割り当て量の設定が必要ということですか?
915 :
nobodyさん :2011/06/30(木) 11:25:05.55 ID:qcWaMuTT
>>914 すみません、途中で書きこんでしまいました
b.html ←491KBを、replace.phpで処理
【replace.php】xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
<?php
function replace(){
$str = file_get_contents("./b.html");
$rep = preg_replace('/.*<div class=\"a\">/s',"",$str);
echo $rep;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
<html lang="ja">
<head>
<title>replace</title>
</head>
<body>
<?php replace(); ?>
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
function replace(){ } 関数に何も定義されてないじゃん・・・・
デミリタに / は使うなッ!!!!!!!!!!!!!!!!!!!
918 :
nobodyさん :2011/06/30(木) 11:28:33.73 ID:qcWaMuTT
>>915 の出力ソースが下記のようになります。なんのエラーも出ずにスルーされるのはメモリが足りていないという事ですか?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
<html lang="ja">
<head>
<title>replace</title>
</head>
<body>
</body>
</html>
>>915 どこにdiv要素が出てくんの?張ってすぐためせるものを晒してね
920 :
nobodyさん :2011/06/30(木) 11:46:23.32 ID:qcWaMuTT
>>917 何を使うのがおすすめか教えてくださると助かります
>>919 【a.html】xxxxxxxxxxxxxxxxxxxxx
<html>
<body>
<div class="a">a</div>
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxx
↑のhtmlなら
>>915 のreplace.phpでちゃんとechoされるのですが、
【b.html】xxxxxxxxxxxxxxxxxxxxx
<html>
<body>
<div class="a">a</div>
中略
</body>
</html>
xxxxxxxxxxxxxxxxxxxxxxxxx
↑このhtmlではechoされません(このb.htmlは個人情報の含まれるファイルなので晒せません;すみません)
容量が491Kbもあるからメモリの問題なのかなと思ったのです
メモリの問題でエラーになった場合何もメッセージは出力されないのでしょうか?
すまんこ ob_get_contentsしてもソースが取得できないんだ <?php ob_start(); include('./test.html'); $bufferHTML = ob_get_contents(); ob_end_clean(); var_dump($bufferHTML); ?> 色々試した結果わかったことは、 「test.html」に以下のようなxml宣言があると <?xml version="1.0" encoding="Shift_JIS"?> だめで、これを消すと正常に取得できる。 ちなみに「test.html」をUTF-8に変換して、 宣言の箇所をUTF-8にしてもだめだた やはり宣言があるとだめみたいだ。 なんぞこれ?
失礼いたしました
【OS名】CentOS 5.3
【PHPのバージョン】5.16
【連携ソフトウェア】-
【質問内容】
>>921
荒らしかな無視でいいや
質問内容も超FAQレベルだし
926 :
nobodyさん :2011/06/30(木) 17:58:12.43 ID:OdRUAQ84
コード中一度しか使わないクラスだからとインスタンス化せず「::」でのアクセスをメインにしようと思っています class hoge{ private static $db; public static function init($str){ $this->db=$str; pirnt($this->db); } } hoge::init("テスト"); 以上のコードを実行しても、$thisがねーよとエラーが返ってきてしまいます 「::」を使ってアクセスする場合、最初にアクセスした時orコンパイル時に初期化関数が実行、プロパティを定義させるにはどうしたらよいのでしょうか $hoge=new hoge(); とすればスマートなのですが、一度しか使わないhogeクラスのインスタンスをわざわざ定義するのもスマートではないと思って気が引けています
self::$db
928 :
nobodyさん :2011/06/30(木) 18:37:41.74 ID:OdRUAQ84
ありがとうございます
>>907 それサニタイズ言うなキャンペーン云々の話じゃないの
>>926 スマートであるかスマートでないかの基準って何?
$hoge=new hoge();をみて何がスマートなのか説明してくれ
>>930-931 わからないから質問しているんです
質問を質問で返すのはマナー違反ではないでしょうか
それと質問ならIDを出してください
Ajax厨の中の人も忙しいな
基準を示してくれないとアドバイスのしようがない
だからその基準を教えろっていってんの 腹立つな
926は質問中で定義してるだろ それを聞いてるの
質問ならIDを出してください
回答だ
>>932 =質問者君
素人が$hoge=new hoge();をスマートと思い込んでる理由を説明してもらわないと回答に困るから
>>932 != 質問者 && >>932- == Ajax厨
echo "ぼくをかまって"
もうスルーでいいよ。 次の方どうぞ
ユニコードを & #876;みたいな形に変換する方法ってありますか?
943 :
nobodyさん :2011/07/01(金) 18:31:34.87 ID:LN8vUPfI
すみません、ID出し忘れました・・・。
944 :
nobodyさん :2011/07/01(金) 18:45:36.01 ID:f1cCs/uI
header('Expires: 過去の時間'); header('Cache-Control: no-cache'); header('Pragma: no-cache'); キャッシュを無効っていまいちどういうことかわからないのですが、 上記のヘッダーを入れたページにアクセス(ローカルのApacheサーバ) ブラウザを閉じる(Apacheサーバを停止する) ブラウザを開いて再度アクセスする(サーバが見つからないのでページ読み込みエラー) とここまではいいのですが、 このエラーページのソースを表示すると、 最初のページのソースが出ます。(使用ブラウザはFirefoxです) Firefoxの問題なのかもしれませんが、キャッシュを無効って、 こういうソースをクライアントにとっておかないための処理ではないのでしょうか?
>>944 結局キャッシュするかどうかはクライアントの勝手だから。
PHPスレで議論しても無駄です。
>>944 その認識で正しいからMozilla にバグ報告しませう
どうせabout:configで設定できるっておちじゃねーの
再度接続するときにキャッシュを画面に表示しないってだけで サーバーが落ちてる時にエラーでてソース表示でキャッシュがでるのは仕様
949 :
nobodyさん :2011/07/02(土) 03:35:54.12 ID:U9fkTnQu
この場合やはり毎回count関数が実行されて多少遅くなりますか? for ($i = 0; $i < count($x); $i++) $n = count($x); for ($i = 0; $i < $n; $i++)
>>949 散々既出だが・・・
http://php.net/manual/ja/function.count.php#46542 > When running loops with count conditions, the code runs faster
> if you first assign the count() value to a variable and use that
> (instead of using count() directly in a loop condition.
> As you can see, the second method (which doesnt use count() directly
> in the loop) is faster than the first method (which uses count() directly
> in the loop).
つーことで結論は出てるよ。
PHPのコンパイラがどの程度最適化してくれるのか知らんけど
後者の方が早いのは想像に難くない。
952 :
nobodyさん :2011/07/02(土) 04:58:26.18 ID:U9fkTnQu
>>950 計測方法がわからなかったのですが
今後は試してみたいと思います。
>>951 大変助かりました。ありがとうこざいますm(__)m
forでcountは使うな XAMPPは使うな Terapadは使うな FFFTPは使うな printは使うな eregは使うな
追記 dateは使うな
検索と置換機能が弱すぎるから
957 :
955 :2011/07/02(土) 13:35:47.20 ID:???
958 :
nobodyさん :2011/07/02(土) 13:48:27.46 ID:DPlLivZ1
printfとかのフォーマット形式と任意の文字列を引数にとって それらを比較してフォーマットに合致しているかどうか調べたいのですが そんな関数ないでしょうか?
合致って、フォーマットとして書いてるのかリテラルとして書いているのか判断付かないのでは?
error_reporting(E_ALL)にして $_POSTで次の画面に進んでチェックを行う場合 issetを使わないとNOTICEが出る時がありますよね? issetを使えばNOTICEが出ないからそれはそれでいいんですが ラジオボックスを未チェックで進んできた場合 input name="hoge"のように指定しているにも関わらず送られてこないようで hoge自体が送られてこないようで issetをしてもNotice: Undefined indexというエラーが出てしまいます 何か回避策はありますか?
961 :
960 :2011/07/02(土) 15:11:48.10 ID:r89l/c1b
すみませんage忘れ
>>960 issetで出ないはず
もう一度確認して質問を簡潔にまとめてくれ
963 :
nobodyさん :2011/07/02(土) 15:20:07.10 ID:JEVGTjoI
セキュリティの質問です。 暗号化してないパスワードをa.phpからPOSTでb.phpに渡す時も暗号化したり何らかの処理をした方がいいのでしょうか?
965 :
960 :2011/07/02(土) 15:28:11.57 ID:r89l/c1b
>>962 ありがとうございます
原因がわかりました
a.html
<form method="post" action="a.php">
<input type="radio" name="hoge" value="a">a
<input type="radio" name="hoge" value="b">b<br>
<input type="submit">
</form>
a.php
<?php
error_reporting(E_ALL);
function piyo($post) {
if (isset($post)) {
return $post;
} else {
return null;
}
}
echo piyo($_POST['hoge']);
このように関数を通すとだめなようです
でも関数を通したいんですけどどうしたらいいでしょうか?
967 :
nobodyさん :2011/07/02(土) 15:36:23.80 ID:JEVGTjoI
>>964 はい
SSLってyahooとかでっかい所が使ってるイメージがあるのですが
皆さんも必要があれば使ったりするものなんですか?
968 :
960 :2011/07/02(土) 15:36:53.69 ID:???
>>966 その発想はありませんでした
ありがとうございます
970 :
960 :2011/07/02(土) 16:01:54.55 ID:r89l/c1b
もう1つ質問お願いします 入力の次に入力チェックすると思いますが 入力に問題があって前画面に戻すとき URLに前画面の入力内容を入れて戻すんでしょうか? hiddenフィールドに入れてPOSTで戻すとかは クリックしてもらわないとできないですよね?
>>969 重要なデータあるんだったら小規模でも万が一の為に使うだろ
972 :
nobodyさん :2011/07/02(土) 16:42:44.42 ID:zLDecbT7
1)他のサーバにある画像のURLを取得 2)自サーバーに保存 3)保存した画像を整形(縮小) という処理をしたいと思っています。 他のサーバというのは全く別のサーバ(twitter)で、何の権限もありません。 どうやったら良いでしょうか? 1はクリアできていて、3はgdだからわかるんですが2がわかりません というかこれは不正アクセスになってしまうんですかね…
>>972 データ自体を持ってくる事ができてるんなら、file_put_contents()だかでできるよ。
とりあえずやってみることだ。。。ときどき、なんらかのフィルターが入ってたりして画像として認識されなかったりする事もあるが、その時はそのとき。
っつか、不正アクセスとか言う前に、勝手に画像を加工するのは著作権法の方からひっかかる気がする。
公開してるデータにアクセスしてるのにどうして不正アクセスになるんだよw 自サーバーに保存するのも画像を加工するのも問題ない。 ただし、その画像を再公開したら当然問題になる可能性はある。 そこら辺は公開元のポリシー次第。
>>958 sscanfを組み合わせればできそうだよ
>>963 POSTするときにMD5でもやっとけ
オンゲはたいていPOSTするときに暗号化して渡してるぞ
>>963 a.phpからb.phpへPOSTって、同じサーバー内?だったらSSLは不要だろ。
ネット上にパスワード送信されないのに暗号化に何の意味があるんだ。
えっ
>>970 「URLに前画面の入力内容を入れて戻す」だってクリックしてもらわなきゃ無理だろ。
普通はhiddenで「戻る」ボタンで送る。またはセッション変数で送る。
ええっ
>>978 あぁ、勘違い。ユーザーが表示してるa.phpからパスワードを送信するって意味か。
ユーザーがa.phpにアクセスすると自動でb.phpにPOSTされんのかと思ったが
そんな質問するわけないよなw
えええっ
ひょえっ?
>>990 までに立たなかったら俺がテンプレ変えて立ててくんでよろしく!
>>985 好きに変更していいよ
ついでにスレタイも「【PHP】下らねぇ質問はここに書き込みやがれ nnn」
形式に戻していいよ
DBに登録しないでもPOSTで受け渡しする時点でサーバー経由するわけだから MD5ぐらいは、ねぇ
a.php→b.php→サーバーのDBだったら ↑ ココでハッシュ化する意味は無いかと
あるよ
990 :
980 :2011/07/02(土) 18:40:18.73 ID:???
テンプレはやくしろ
a.php→d.php→c.php→b.php→サーバーのDBだったら ↑ ココでハッシュ化する意味は無いかと
ええええっ
えええええっ
995 :
nobodyさん :2011/07/02(土) 19:05:53.49 ID:JEVGTjoI
すみません・・・、なんだか自分の質問のせいで変になってしまって a.php→b.php→サーバーのDBだったら ↑ ココでハッシュ化する意味は無いかと とありますが、a.phpでテキストエリアにパスワード入れてPOSTする感じに考えてたんですが その場合このタイミングではMD5でハッシュ化できなくないですか? b.phpで受け取ったパスワードをハッシュ化するぐらいしか思いつかないのですが
>>995 要するにクライアントが送信するパスワードを盗聴防止のために暗号化したいんだろ?
だったら普通にSSL使えばいい
a.php→a.php→サーバーのDBなら ↑ ココでハッシュ化すれば十分かと
あのさ、POSTしたら同じファイルだろうが何だろうが 必ずクライアントからサーバーを経由しちゃうものなんですけど SSL以外の暗号化じゃサーバーに送られてから暗号化されるわけであってSSLみたいな抜き取り防止としてはあんま役に立たないわけでだな
ええっ1000ゲット
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。