【PHP】下らねぇ質問はID出して書き込みやがれ 131
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 130
http://kohada.2ch.net/test/read.cgi/php/1379566039/ ◆質問用テンプレ
【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に保存?
→ 好きにしてください
(: /⌒ヾミァ―=、=ミ、 __ ゝ_/ \ンヾ `ヽ / 7 / ヽ Y´ ̄`ヽ) / j{. {-{ー{ ト { }_} }ゝ 人 / /Yヘ {!∨八 ト、j\| ヽj彡爪 ヘ / / //!ヘY⌒ヾ\<⌒ヾ! ∧ i| li . / / // i小xx rー ┐ xx?Wノ' i| l| . / / // 厶| l> .ゝ_ノ ィ// {{ i| l| / / // 〈 |  ̄ ̄ ̄ ̄ ̄| `ヽ i| l| / / //:/?Y こ テ | 〉 j| 八 . / / // (´‐う こ .ン と)/}} '、 \ 人 〃〃 =てノ ま プ (ニ ノ ∧ ヾ. ヽ ( ゚Y⌒7'゙´ 入ヽ| .で レ .(Y}}⌒ヽ} ヾノ ノ}} /` 弋__{{ /' `‐|__________|ノヽ 八 /⌒Y⌒ヽ
30MBのテキストファイルに含まれる abcde という5文字からなる文字列を メモリを節約する方法で削除する方法を教えてください ファイル丸々読み込んで一括置換はNGです
sed
より高度なRoRに引っ越しすることをお勧めしよう Railsスレで質問すれば俺が答えてあげよう その代わり最大限の敬意を示し、パソコンの前で土下座したまえ そお誠意が俺まで伝わってきたら答えてあげる 多くの有力企業が採用するRoRにようこそ
>>7 読み込みながら別ファイルに書けばいいじゃん。
12 :
1 :2013/11/11(月) 07:35:43.60 ID:XJY1LijC
//HTML取得
$context = stream_context_create(array('http'=>array('method'=>"GET",'header'=>"User-Agent: Mozilla/5.0 (Windows 7; rv:13.0) Gecko/20100101 Firefox/13.0.1")));
$str = file_get_contents("
http://www.yahoo.co.jp/ ", false, $context);
//範囲を抽出
$hani_s = "主なサービス";
$hani_l = "みんなのアンテナ";
$pattern1 = "/(?<=".$hani_s.").*?(?=".$hani_l.")/misu";
if(preg_match($pattern1,$str,$match)) $zentai = nl2br(htmlspecialchars($match[0]));
//単語を取得
$tango_s = 'a href="';
$tango_l = '">';
$pattern2 = '/(?<='.$tango_s.').*?(?='.$tango_s.')/misu';
if(preg_match_all($pattern2, $zentai, $match2))
$con = 0;
foreach($match2 as $val){
$youso = count($val);
while($con < $youso){
echo $val[$con] . "<br />";
$con++;
}
}
HTMLを取得し、正規表現で単語を取り出したいのですが、Notice: Undefined variable: con inとエラーが出てきます
$tango_s = 'a href="';をタブルクォート外して$tango_s = 'a href=';にすれば問題なく動くのですが、何が悪いですか?
14 :
nobodyさん :2013/11/11(月) 11:56:52.28 ID:XJY1LijC
正規表現のどこが悪いのでしょうか? $pattern2 = "/href=\".+>/"; 単純にこう書いてもダブルクォートがある限りエラー出るんですが
15 :
nobodyさん :2013/11/11(月) 12:33:37.29 ID:sFgCUL53
>Notice: Undefined variable: con inとエラー if(preg_match_all($pattern2, $zentai, $match2)) $con = 0;
htmlspecialchars したらどーなるか考えよう。 オプションなしで使ってる時点で、 何をしたくてどうなって欲しいのか何にも考えてないのが分かる。
17 :
nobodyさん :2013/11/11(月) 12:51:22.02 ID:XJY1LijC
>>16 やっと解決できたありがとう
エスケープされるとか完全に失念してた
【Android】デベロッパーの集うスレPart21
http://kohada.2ch.net/test/read.cgi/prog/1381939989/l50 ここでPHPのソースがダウンロードして見られるって主張してる人がいるんですが
本当でしょうか?
>+ PHPのソースを見る方法はある
>+ その方法は誰でも出来る簡単な方法をついた盲点
>+ 方法は簡単でもその発想には普通行き付かないため今まで気づかれないでいた
>+ システム上は不正な方法ではなく正規な方法に分類されるので
> 今も放置されてる(一部のサーバーはこれに気づき、もしくは実際に攻撃され、設定で変更し対策済み)
>+ まだ放置されている場合が多いので公表はできない
>この方法が今まで何十年も気付かれず放置されていた事に恐怖するくらい
>記憶に新しい2chサーバーを襲った奴がこの方法(だけとは限らないが)を使い
>とある公開サイトに毎日莫大な量の企業の情報をUPしてる
>ヤフー、カネボウ、東京大学、etc
19 :
18 :2013/11/11(月) 16:00:52.24 ID:HoDQm5Na
すみませんID出すのを忘れていました 今年の6月くらいから発覚しているようです >+ 今までそれが正しい設定という認識で、何十年としっかり機能しているサーバー(施錠) >+ それが今年の6月頃に、特に違法な手段でもない誰にでもできる方法で壁をすり抜ける方法が発覚した > つまり鍵の意味がない >+ 発覚するまでの過去何十年とそれを一部の人が悪用し、サーバー管理者と同じ権限をフルに悪用されていたこともあわせて発覚した > つまり神話が崩れた。神話に胡坐かかず独自にさらなるセキュリティーをかけていた技術者は > たとえ侵入されていたとしても大丈夫だった。これが侵入されても大丈夫を前提に組んだシステム全般に言えた >+ この方法はバグでも違法でもないためセキュリティーパッチの対象にはなっていない >+ 回避方法はその正当な手段で機能する何かをOFFにする >+ しかしこれをOFFにすることで通常の運用にも支障をきたす運営状態のメーカーが多数存在する >+ よってOFFにしないで運用している場所が今も存在しており このセキュリティーホール(…正式には違う)は今もなお眠っている
>>18 PHPの脆弱性が見つかったかと思ってちょっとそのスレ読んだけど
発言主は恐らく闇プログラマーだと思われる
関わってはならない
最後に.txtを付けるとかね(笑)
apacheの設定でPHP関連を削除すればみれる
あと教本とかに書かれているようなPHPをソースコードとして表示する設定をしてればみれる
25 :
nobodyさん :2013/11/11(月) 22:36:28.08 ID:dmRoqQkv
header('Content-Type: image/jpeg');で読み込んだ画像を編集してブラウザ出力しようとして、失敗したのでソースを削って消去法で探っていったらincludeが原因だったんですがこれはどういった理由になるんでしょか?
>>25 回答者にエスパーがいることを期待しないでくれ
ちゃんと自分がやったことを書いてくれないと何も答えられん
27 :
nobodyさん :2013/11/11(月) 23:03:28.69 ID:dmRoqQkv
すみません。。書くとややこしくなりそうだからあえて端折って書きました。。 【OS名】mac10.9 【PHPのバージョン】5.4 【連携ソフトウェア】gd 【質問内容】 header('Content-Type: image/jpeg');で保存している画像を読み込み編集した画像をただ出力しようとしてます。 やり方として画像クラスを書いてる別ファイルをincludeで読み込んで画像オブジェクトの画像として出力しようとしてます。 最終的にimagejpeg関数で出力してるのですが画像編集して保存はうまくいくのですが画像編集してブラウザで表示する事だけが何故かうまくいきません 別の所に同じようなブラウザ画像出力を作っててそっちはうまくいくので環境依存問題じゃないと思います。パーミッションも調べました ソース削りながら消去法でしらべていったらincludeで引っかかりました。原因はほぼこれなので一応解決はしてるのですが画像objを出来れば使いたいのでincludeが原因の理由が知りたいです
解読班はよ
よくわからんがincludeではなくreadfile使ったら?
なぜrequireではないのか
うまくいかないじゃわからんわ 再現できる最小限のコードを エラーが出たなら具体的なエラーを
日商エスパー3級の俺でも分からん
33 :
nobodyさん :2013/11/11(月) 23:19:37.68 ID:FYu5xnhQ
javascript で 特定のディレクトリ内のファイル名を取得するために Ajax 通信でPHPを使用します。 <?php $res_dir = opendir('../hoge'); while( $filename = readdir($res_dir)) { echo "$filename"; }; closedir($res_dir); ?> としたのですが返り値の配列にはファイル名毎ではなく1文字ずつ入ってしまいます。 何か解決方法はないでしょうか?
34 :
nobodyさん :2013/11/11(月) 23:22:05.77 ID:dmRoqQkv
>>31 極端に言うと
<?php
//include 'objectImage5.php';
$im = imagecreatetruecolor(100, 100);
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);
header('Content-Type: image/gif');
imagegif($im);
imagedestroy($im);
?>
これを
<?php
include 'objectImage5.php';
$im = imagecreatetruecolor(100, 100);
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);
header('Content-Type: image/gif');
imagegif($im);
imagedestroy($im);
?>
するとブラウザ上でリンク切れ画像状態になります。ちょっと読み込み方includeから別に変えてきます。。
>>33 配列で返してるように見えない
サーバとブラウザの間のプロトコルがJSONだとすれば、ちゃんとJSONに整形して返してあげないと
>>34 そのincludeしたphpでなにかechoされてるんじゃない?
>>34 読み込みに失敗してwarningやcriticalエラー出力されてるのにコンテンツタイプがgifだからブラウザはgifとして扱ってるだけだろ
38 :
nobodyさん :2013/11/11(月) 23:32:06.05 ID:dmRoqQkv
すみません原因分かりました。。include先で<?php 〜〜〜?>の後に一つ無駄な改行入れてたとこでした。。。 これも伝わってますかね、、?
お決まりですね
>>38 その説明ならみんなばっちり理解できたと思う
41 :
nobodyさん :2013/11/12(火) 00:02:19.74 ID:OEcexEaQ
>>35 ありがとうございます。
json_encodeしてからだといけました。
>>38 俺は最初から原因わかってたよ、日商エスパー2級だから
DOM当たりかなと思ったけどそんなおちかよ HTMLにコード埋め込む時以外なら?>で閉じんでよろしい
DOMじゃなくてUTFのBOMの話ね もうだめかもわかんから寝るわ
header前のincludeでエラーならゴミ出力は確実だと思った
>>34 をアップする前の説明ではheader後にjpegをダイレクトにincludeしてるのかと思ってた
混乱させられただけに
>>38 の締め方で、ちょっとコメカミに血管浮いた
>>44 どう書けば分かり易かったですかねぇ。。。?
まあまあ、ありがちなミスだ エスパー研究所の中上級事例として各自再発防止方法を検討する振りをして寝よう
Rubyistの好きそうな洗脳サイトだな
ぱっとみたけどPHP初心者向けのサイトじゃないね 5.5を前提に話をすすめてるあたり 少なくともプログラム初めてって人向けではない ぱっと見た感じ公平的な視点で書いてよさそうな感じ 結局どこかに利権が及んだり偏った記事になってそうだけど後で読んでみるわ
他の言語を習得していて、PHPは始めての人向けって印象を持った 自分プログラミングはPHPが初めての初心者
テンプレは、公式サイト系だけで十分でしょ。 理由 1. サイトの記述内容の正確性が担保されてない。 2. 単に宣伝したいサイトが紛れ込む可能性がある。 3. 個人サイトだと、その後どう変わるか予測できない。
初めて読んだがよくできてる
だけどここに来るような初心者が理解できるとは思わない
更にだけども
>>3-4 の腐ったFAQよりは載せる価値はある
>>56 知ってるよ。有名すぎだもん
PHP勉強会とかで普通に有名。初心者は絶対読めって言われるサイト
ここと公式サイトと徳丸を押さえれば十分って言われてるよ
>>53 ずっと最新版を使えって書いてあるだけだよ
内容自体は5.5に偏ってない
有名なサイトじゃないでしょ。 他の有名サイト等から引用もしくはリンクされている箇所がないから。
日本で有名になってまだ日は浅いからな
ここの人ってPSRも否定派が多いの?
見てみたけど内容が難しすぎ マニュアルを最初から読んでチュートリアルに従ったほうが理解しやすい あれじゃ初心者敬遠してしまうわ
↑ 別に載せるのには反対じゃないよ 分かる人は見ればよい
>>61 定義が曖昧ですみません。たしかに、「有名」では客観性に欠けますね。
例としては、「PHP」で検索して上位20位くらいに有るサイト。
又は、ヤフーカテゴリの「PHP」に掲載されているサイト。
これらは、有名と言えると思います。
こういったサイトから引用やリンクされている箇所を見たいです。
あるのでしょうか。
67 :
nobodyさん :2013/11/12(火) 18:10:25.71 ID:FYat+6O3
>>66 根本としてさ、既に上位20位に入ってるよ
>>66 いまググったら、本家・ユーザ会・特集記事を除けば、ここが最も有名らしいぞ。
初心者用PHP入門
www.standpower.com/?
>>50 そんなの、PHPの本スレのテンプレに入れとけと思ったが、本スレと呼べるものがなかったわ
>>50 初心者向けではないな。
PHP触り始めて興味が湧いて、本気でやろうって思うときに見るサイトだ
PHPのコーディング規約ってC系が多いな 俺Java系だからあうものがない まぁ別にいいよね
>>66 普通に奥村さんとかThe Right Way推してるからリンクしてるよ
上位10位に入ってるっしょ奥村さんのサイト
>>53 5.5前提が、なぜ初めての人向けでないのか意味がわからない。
>>55 みんな十分だというが、網羅されてないことは結構ある。
>>74 初心者なんかのライトユーザがもっとも使用するレンタルサーバで5.5が入ってると思ってんの?
77 :
nobodyさん :2013/11/12(火) 19:30:01.02 ID:mGwFoyBt
phpの関数が多くて、ありそうかな?と思っただけなんですが 配列の全ての要素に@を追加するような関数ってありますか? array[0] #hoge array[1] #fuge array[2] #sage ↓ array[0] #hoge@ array[1] #fuge@ array[2] #sage@ みたいにしたいのですが
array_mapでどうにかする
80 :
nobodyさん :2013/11/12(火) 20:36:06.80 ID:mGwFoyBt
了解です フツーに作ってみます
>>76 おまえさんは、もうちょっとそのサイトの文章を読むべきだ
そのサイトの文章と5.5が初心者向けではないは関係ないからね
俺は初心者には5.5薦めるわ 共有サーバなんて使うやついないしな
初心者がXAMPPに手を出しやすいのは事実だが
そんなに共有サーバ使わせたいの?
気合いれてVPSとか上位プラン使うようなやつは開発者の中でも少数派 SNSやフリーのブログで十分なほどなのに月額300円が相場 一般人じゃ100円サーバだな
僕の周りの初心者で公開してるやついないってのが味噌だな PHP勉強したてで公開したいってただの趣味?
趣味で触ってる人と仕事でやってる人で全然違うと思うぞ 共有サーバって 趣味でやってて、しかもWordPressとか既存のパッケージいれて ちょっと手を加えてぐらいのレベル対象だろ 仕事で使うにはこのレベルじゃありえないから共有サーバなんてもたん 根本、会社でPHPを初心者に教えるときにまず、公開するなら相談しろと言う 何か漏洩されたら堪らんからな
根本って誰や
仕事で共有サーバを使うことなんてない。 仕事で教えた初心者に共有サーバを使わせることなんてない。 って言ってるんだろ
Q PHPをなんではじめるのですか? A WPのテンプレートがいまいちなので改造してみたい A 自サイトでこういうことをしたかったがPHPとかじゃないと出来ないと言われた A 仕事でやらなきゃいけません A プログラムの勉強をしたい A こういうWebサービスをやりたい 専用サーバーが必要なのは最後のケースだけ
>仕事で共有サーバを使うことなんてない。 誰が? クライアントならそんなのパッケージ開発でもない限り知ったこっちゃないでしょ ていうかWP改造案件とか多いし、共用サーバでWPだけで回してるクライアントも多い 開発者ならローカル使えばいいだけだし、共用サーバが持たないとか話がおかしい
アカマイ使ってサイト構築してる人いる? どんな構成?
IDないわ、PHPと関係ないわ
ごめん、質問変えるわ グローバル対応をするために最適な構築はどんな感じ? コスト考慮も
レンタル鯖板でどうぞ
>>92 ってか
>>89 IT土方をなめんな
PHPを使ってるのは自社サービスとか
大手の下請けで高給もらってるやつだけじゃないんだ
mixiとかヤフオクとかWebサービスが中心でない限り アプリケーション開発とかやってるとこでも 会社の紹介や問い合わせフォームぐらいだろ ようは会社のウェブサイトであるところがほとんどで 共用サーバでもおかしくないレベル
共用サーバって、コンプライアンス上使えない会社が多いんだよな
友人に毎朝8時に起動してメール配信するの作ってと言われて 無償でレンタルサ−バーのcronとphpの色々作ってあげたら 会社で使うためのものだったって経験したことあるわ その程度に考えてるところもあるんだろクソ
なんでコンプライアンスが関係するんだ?
個人情報がらみだろ
社内サーバならともかく、外部サーバにわざわざ個人情報入れるのかよw
問い合わせフォームでアウトだよ?
素人に毛を生やしただけのものが業務に使われてるのが、プログラム界だけのことだと思ってるなら、 絶望が足りない。
どっちも底辺ってことだろ。 日本は底辺が多いからな
ただの道具に、使う人間の問題もってきて道具の問題だって大騒ぎすんのはアホだってこと。 何が底辺だw
phpどころかプログラミングと全く関係ない製薬営業やってるけど webサイト作ったりメール配信できるもん作るとどんくらい貰えんの? 転職考えてるんだけど
絶 対 に 製 薬 営 業 の 方 が 稼 げ る
夢みてフリーのデザイナーやるのはやめとけマジで
>>114 まぁ、初級プログラマで50万円/月くらい
中級80万円/月
上級は青天井
あんまり大したこと無いよ
それでもよければどうぞ
釣り糸がでかすぎて話になりませんね
120 :
nobodyさん :2013/11/13(水) 14:42:48.78 ID:EC93HFLx
初級・中級・上級のスキルの区分は、どんな感じでしょうか?
(自分は、
>>114 ではないです)
せいぜい月20万ぐらいだろ 出来るやつでも30万ぐらい ITドカタに夢を見過ぎ
初級で50万はありえないけど
>>121 はもっとありえない
業界間違えてないか?
ITドカタも普通の会社員と変わりねーぞ スーツ着て出社してスーツ着て仕事して アホな上司のいう事聞いて忘年会新年会の幹事させられて・・・。
ま転職して現実を見るといいよ そんな給料良ければみんなやってる
あごめん、正社員の話か
この業界ってほとんど零細企業ばかりなのに不安定さがすきなの? キャリア積んで20年勤続とかならともかく50万? リクルートサイトが出してる年収例とかに騙されちゃう口? それともMSやGoogleとか外資系ITトップに名を連ねるとこにでも就職できるの?
プログラマーでスーツ着て出社する会社ってほとんど見たことないんですが
ないね
俺はニートだけどプログラマーやってる俺の友達仕事帰りに会うといっつもスーツだぞ
客先常駐プログラマはスーツだろ
この業界不安定なのは事実だが、零細ってわけじゃない 給与帯が上になるほど、センスとコネが重要な業界
ゲーム作成会社へスーツで面接に行ったら コスプレみたいだって言われたぞ
134 :
nobodyさん :2013/11/14(木) 05:43:47.22 ID:F7e5g5ZR
単に似合ってなかったからだw 俺レベルのチビデブハゲになると、 一切の冗談も言ってもらえなくなるから まだマシな方だだろう。
135 :
nobodyさん :2013/11/14(木) 12:24:04.77 ID:E2bhgOuX
preg_replace 系(_all や _callback含む)で、正規表現にマッチした文が大きく(長く?)なるものを置換しようとすると、 レスポンスの応答がなくなってしまいます。 開発環境でこの現象は生じて、環境はWindowsXP、PHPのバージョンは5.4.19、Apache/2.4.4 (Win32)を使用しています。 同じものをサーバーにアップロードした場合は、ちゃんと動作します。 何か改善方法はありませんか?
メモリが足りないんだろ
PCのスペックとサーバーのスペック教えてくれ
例え開発環境でもWindowsXP使ってるようでは…
139 :
nobodyさん :2013/11/14(木) 13:41:39.01 ID:E2bhgOuX
>>139 Apacheのログに
child process exited with status
が出てたら正解
Windows特有の問題やな
PHPのバグではない
Apacheの設定ファイルでThreadStackSizeを設定すれば良いだけか
>>140 ステータスコードを無視する人ってそそっかしいんだなぁ。
そそっかしいあまりWindows特有の問題だなんて思い込んでる。
>>141 これってmpm_winntに起因する問題じゃないのか?
>>142 スタックオーバーフローを示すステータスコードが複数あって、
さらに子プロセスが終了する原因はそれしかないというのならいいけど。
>>141 windows以外はスタックが無限にあると?
スタック関係はWindows特有ではないけどWindows以外では滅多におきん罠 Javaとか別途に定義する系や、スレッド系は起きるけどな
このスレでPHPの話をすることも有るんなだw いつもの殺伐したした雰囲気じゃないと不安になるわ・・・
Windowsで開発するの本当いい加減にしろよ VirtualBoxすらいれられないチンパンども
Windowsで開発してもいいけど、改行コードを勝手にCRLFにしてcommitするのだけは勘弁してくれ。
GitならコミットするときにLFにすればいいじゃん
どこの会社みても開発はWindows Linuxで開発しろとかいってんのは100%尼
どこの(へぼ)会社
なんの問題もなく出来るのに、自分ができないからって道具のせいにするのは恥ずかしい限りだな。
本番環境とできる限り揃えるかだけじゃないのか?
全員って何?会社にPC持参したり普及PC選べんの?
普及じゃなくて配給 日本語むずかしいね
うちは配給PC選べるよ。持参PCは手続きがめんどくさい。 予算上限はあるけどね MacでもWindowsでもLinuxでもなんでもいいのだが Vagrantの利用がルール
単体テストの段階は環境使い回し、結合テストで本番環境1つ用意。 PHPなんてこんなもんでいいよ。 別にPHPを馬鹿にしてるわけじゃなくて環境の差の影響を受けにくいから、 結合テストでバグが出ても数分で解決できるケースがほとんど。 もちろん要件定義がしっかりしてればの話。
PHPには、そもそも単体テストとか結合テストとか必要ないだろ? すぐに結果が出る。 すぐ修正できる。 それがメリットじゃん、サーバーサイドJavaとかと違って
規模が大きくなるとそうもいってらんないんじゃ
学生かニートの書き込み↓ 150 名前:nobodyさん[sage] 投稿日:2013/11/15(金) 17:22:00.01 ID:??? どこの会社みても開発はWindows Linuxで開発しろとかいってんのは100%尼
>>161 世界のPHPベースのWebサービスはどうなるんだい
>>163 161 にとってFacebook程度は雑魚レベルなんだろ。
>>157 配給PC選べるならそりゃMACにするだろうな
単純に値段高いし壊れやすいけどハード自体は高性能だし
つうかリッチだなとこだなオイ
>>166 Macは4割ぐらいしかいないよ
Linuxにするのが性能の割りに安いから
それにモニタ3枚とかしてるやつも多い
全員Macって言うたやん。 ま、普通の規模のとこならHPやDELLあたりから法人向けのを導入するんじゃね。 少数精鋭じゃないけど小規模のとこはハードには金をかけざるを得ないからね。
>>168 すまんな153は俺じゃないんだ
DELLも結構入ってる
自分で決められない奴はMacかDELLになる
>>164 はWindowsでしか開発したことがないからWindowsでの開発を否定されるとまるで自分を否定されたかのように感じちゃうんでしょ
またその流れかよ。 マ板に行けよ
Mac使ってるアホは文系デザイナーなんだろ
そもそも、IIS なんかで PHP を動作させてもパフォーマンスも悪いし安定動作しないよ
俺はやったことないが、IIS7でFastCGIで組むといいらしいじゃないか
>>176 (ほんの)ちょっとはマシになったってくらい
開発なんて慣れてるOSが一番 個人的にはiOSの開発もしないしVisual Studio使えないからマックはいらないって感じだけど マックはなんかデザイナーや開発者っぽい(=一般人向けではない)っていうイメージがあるし もってたら出来る男って感じがするけど 最近はiPhoneのおかげで一般人でも浸透してきてるしレア度はあんまないね
昔はVAIO持ってるとモテたけど今はMacbook Airだな。 10インチクラスのタブレット(iPad)を、 社長やってるいとこが出先でよく使ってたけど、あれは見てて滑稽だったわ。 タブレットはクールじゃないね。
Macがモテる時代は2年前ぐらいに終わってるっしょ
キモブサがどんなPC持ってたってモテるわけないだろ 鏡見ろよ
ぼくあぽー あいぽーん5が売れなくて困ってるの だれかぽすけて
プログラム自体の話は出来ないのに、混ざりたがるから、 自分でもなんか言える人の話に誘導しようと必死ないつものアホ
おこなの?
Windows最高 XAMPP最高 ということで終了
結局、質問にちゃんと答えられたのは
>>140 だけで
それ以外は無知を晒してるだけだったな
挙句の果てに Winsowsガー PHPガー XAMPPガー とか言い出しちゃう低脳っぷり(笑)
いや、140は質問者が自分でほぼ答えを出した後だろ まあ、それ以前の間抜けな回答や以降の低脳っぷりってところは同意だが。
まぁこんな雰囲気にした
>>147 がチンパンだったということでもういいだろ?
まぁ、いいけど、PHP と Windows は、そもそも相性が良くない。 遊びならなんでもいいけどね
開発環境と動作環境は別の話。 相性がよいかどうかは開発環境には関係ない。
>>193 開発環境が Windows で、動作環境が Unix系 + Apache ってこと?
なんと無駄なことを
無駄と発想する時点でお前が底辺なのは判った
>>194 それは無駄ってか、単なる情弱なだけだろw
>>194 apacheなんてのはおまけなんだよ
開発に主眼をおくべきものは自分にとって使いやすいOSと使いやすいIDEだ
httpdに何を使ってるか OSが何かで影響受けないプログラムもあれば、受けるものもある それ次第だから、勝手にすればいいんじゃね? 大体ひっかかるのがWindowsにImageMagickをインストールするのが大変ってとこか 開発環境と、開発実行環境も別か 俺はPhpStorm派だから、IDEはWindowsでもMacでもLinuxでも動くから問題ない Windowsでやってたときは、当然VMだった
IDEがクロスプラットフォームでも、それを使えるまでにかかる労力や、 その他全体の使い勝手・作業効率なんかを考えると、 慣れ親しんだOS使うのが一番いいに決まってるわ。 最悪プログラムなんてのはメモ帳で書ける。 WindowsクライアントからSSHでLinuxサーバにログインして、 サーバのファイルを直接viで編集なんてのは昔ならよくあった話。
スクリプトでOS依存書いてる時点で極限のアホだろ とは思う
204 :
484 :2013/11/16(土) 08:24:54.41 ID:???
>>201 redis依存書いたら前までWindowsじゃ無理だったしな
OS依存なんて腐るほどあるっしょ
スクリプトのPATH_SEPARATORとかそういう意味を言ってるなら同意だが
C:\WINDOWSとかOS依存がわかりやすい記述は無意識に排除しちゃうし PHPの場合OS依存で書くほうが難しいな 初めて使う関数はマニュアルちゃんと見るし知らずにOS限定の関数使うなんてこともない この手の問題に遭う低スキルの人はちゃんと環境構築したほうがいいだろうね
最近はネットだけでいいって人もいるだろうけど 現実問題PHP開発以外にもやることはたくさんあるのでWindowsじゃないと不便 だからWindowsでいい VMはOSが重くなるし汚くなるから入れない 世の中の人間そんなにPCいっぱい持ってませんよ
人それぞれってことだ 俺っは今Linuxで苦労したことないし Windowsじゃないと駄目なことが今のところない
Windowsで苦労したことないし Linuxじゃないと駄目なことも今のところないね
OS依存で書くバカは他人に使ってもらう前提のフレームワークやライブラリを 書いたことがないんだろうな、とは思う
OS依存の話はやめよう C:\WINDOWSとかならただのバカだし 使用するミドルウェアの問題ならどうしようもない 話すだけ無駄ですよ
Linuxで開発すれば OS依存しないのかよwwww
>>211 誰かそんなこと言ってるか?このスレで
被害妄想なのか劣等感の現れなのか
今更どうしたの?悔しいの?
( ゚,_・・゚)ブブブッ
WindowsでPHP使えるの? てか、そんなことして何か意味あるの?
レンタルサーバに変更するたびにアップロードして開発するやつにはわからない話
>>218 > アップロードして開発する
この意味がわからないんですが、解説してくれる?
全体も意味不明なんだけど
>>217 アドベソフトと仲良くさせるためです。。わし的には、
>WindowsでPHP使えるの? 無知の極みだな
225 :
nobodyさん :2013/11/16(土) 23:20:32.23 ID:F3TLx1sI
$ints = array(1,3,4,5,6,7,8,9....∞); $intsの中にある数字の最大値maxのキーを収得する関数はありますか?
あぁ、sortすればいいのか。 めんどくさいこと考えてたわw
sortしたらキーは失われるけどいいのけ?
配列操作のパターンと sqlite::memory:に1回いれてmax使うパターン試してみたけど やっぱ配列操作でやるほうが断然早いしメモリ使用量も少ないな
>>217 Windowsだろ?
使えるわけないじゃんw
アホなの?
誰も反応してくれないからって自演か
232 :
nobodyさん :2013/11/17(日) 13:01:07.39 ID:iaEwZT+S
>>229 あなたみたいに、無駄かもしれないけどとりあえずやってみようっていう人は素晴らしいと思う。
「使える」ってのがどういう意味なのかにもよるな 「動作する」って意味ならLinuxでもWindowsでも使える 「実用に耐える」って意味ならLinuxでもWindowsでも使えない
あるログインサイトが、Operaには対応していないため、 [ID]と[パスワード]の入力欄は表示されますが、肝心な[ログイン]ボタンが表示されないので、ログインできません このOperaは、ガラケーのフルブラウザなんですが、どうにかしてログインさせる方法はありませんでしょうか? [ID]と[パスワード]の入力欄は問題なく入力できます 宜しくお願いします。
EnterでFormにSubmit飛ばない?
つうかPHP関係あるのかよ
>>237 どこの言語の人って言いたかったかw
PHPが使えないって言ってるやつは大体本人が使えないだけって決まってるからな
239 :
nobodyさん :2013/11/18(月) 12:57:44.49 ID:+1FXVq0T
PHPのオブジェクト指向における多態性(ポリモーフィズム)について質問です。 多態性(ポリモーフィズム)とは、端的に、どういうことを指すのでしょうか? わかりやすい要点や具体例、使いどころなどをご教示ください。 なお、自分で調べて次のことを知りました。 ネットで調べると、複数のクラスのメソッドの命名を同一にして、場面により切り替えることとありました。 また、ある本では、オブジェクトの引数に他のオブジェクトを渡してそのメソッドを切り替えることとありました。(ストラトジーパターン) Javaの本では、オーバーロードという仕組みで、引数の数の違いによりメソッドの振る舞いを変えることとありました。 ただ、調べても抽象的で理解が困難です。 ご回答よろしくお願いします。
>>239 いろんな言語にある ToString メンバがソレにあたるよ
241 :
nobodyさん :2013/11/18(月) 14:05:27.46 ID:JW8eEpfY
【OS名】xampp 【PHPのバージョン】5.4.7 【連携ソフトウェア】MySQL 【質問内容】 PHPでDBの内容を複数取得して表示する時、どの方法がいいんでしょうか? PDO::query、PDOStatement::fetch+execute等色々あるようで、 検索しても色々な方法があってよくわからないです。。。 最新のものがいいとは思うのですが、最新のものもどれかよくわかりません。お助け下さい。
>>241 複数取得の意味が良くわかんない
どうゆうこと?
>>239 PHPのような動的型付け言語(インタープリター)では、基本的にオーバーロード(多重定義)という仕組みはない。
PHPの場合オーバーロードを実現するために、func_get_argsなんかを使って条件分岐でやる必要がある。
ようは引数に渡す型の種類や引数の数は違えど、処理内容が同じになる場合とかに使うわけだけど、
何が嬉しいかというと、メソッド名(関数名)を1つだけ覚えとけばいいとか、メソッド名を考えるのに困らないとか、
まぁそんなところ。(多重定義否定派やそれがよくないと感じる人もいる)
オーバーロードを使わない場合、
>>240 のあげるtoStringは、
intToString($int)とかboolToString($bool)とか冗長な名前でごった返すことになる。
ただPHPではfunc_get_argsでやると複雑になるので、そういう実装を取る人も多い。
http://php.net/manual/ja/language.oop5.overloading.php ここで書かれているPHPのオーバーロードというのは、
注釈にも書いてる通り他の言語のオーバーロードとは意味あいが違うので注意。
何を取得しようとクエリ使っとけば無難
つか、オーバーロードじゃなくてオーバーライドだろ
>>239 > ネットで調べると、複数のクラスのメソッドの命名を同一にして、場面により切り替えることとありました。
> また、ある本では、オブジェクトの引数に他のオブジェクトを渡してそのメソッドを切り替えることとありました。(ストラトジーパターン)
これらがポリマーフィズム
> Javaの本では、オーバーロードという仕組みで、引数の数の違いによりメソッドの振る舞いを変えることとありました。
これはポリマーフィズムじゃない
多態性(ポリモーフィズム)は複数のクラスに同じメソッド名を設定することで
どのクラスが来ても同じメソッドの呼び方で実行させられってもの
大体は、インターフェースか継承で実現するもの
ポリマーフィズムに関してはJavaもPHPも差がない
Javaだと仮引数に型を明示しないといけないが、PHPは型を明示する必要がなく(しようと思えばできるが)、 その場合、全く関連性の無いオブジェクトでも同一メソッド名のメソッドがあればポリモーフィズムを実現できる。 というのが、JavaとPHPの違い。
え?オーバーライドもポリモーフィズム実現手段だけどオーバーロードもポリモーフィズム実現手段だろ 素人ばかりだな
オーバーライドっていうか継承ね
オーバーロードがポリマーフィズム実現手段かは SmallTalkのときから長らく議論されてる問題 僕はポリマーフィズム実現手段派
ポリマーフィズム → ポリモーフィズム SmallTalk → Smalltalk
ポリマーってエチレン思い出すからやめてくれ
俺は破裏拳
257 :
239 :2013/11/18(月) 17:27:24.47 ID:hjGdNC9C
ご回答ありがとうございます。とても参考になりました。
>>243 多態性(ポリモーフィズム)のメリットを理解できました。
メソッド名の統一により楽できることが利点の一つなのですね。
>>246 抽象クラスで、メソッドの実装と名称を強制するのと同義と考えて大丈夫ですよね。
>>247 同一のメソッド名にすれば、その効果が、結局、ポリモーフィズムであるということですよね。
>>251 そのページの説明を読みましたが、解答がポリモーフィズムからずれて、オブジェクト指向全般の概要になっている気がします。
ただ、次の部分は、ポリモーフィズムの説明だと思いました。
もっとも、PHPのオーバーロードは、Javaとは別物のようです。
『他にも "オーバーロード" といった便利な機能があります。
引数の種類を変えれば、同名のメソッドを定義できるというものです。
いい例えが思いつきませんが、攻撃する際に "こうげき" のみでダメージ判定されるものと
"こうげき" と "まりょく" でダメージ判定される攻撃の二つがある場合、必要な引数が前者で1つ、後者で2つなのでどちらも記述できるといったカンジです。』
ありがとうございました。
>>241 外部からのデータを扱う場合、prepareメソッドを使う(無害化する機能有り)
外部からのデータを扱わない場合、queryメソッドを使う(無害化する機能無し)
分からなければ常にprepare使えばOK
order by ascかdescかを選択するときなんかの時はprepare使いづらいよね
入力値でどっちにするか決まるけどbindできないじゃん 条件文使わないといけなくなるから使いづらい
262 :
nobodyさん :2013/11/18(月) 21:53:41.23 ID:HK3o2Mp0
プリペアードステートメント使うことと 条件によってクエリが変わることは全く別物だぞ
はい じゃやっぱクエリ2つ用意するのね
何のためにプリペアードステートメント使うか理解してから使おう、な
気持ちは分かる。 パラメータを無害化することしか知らない人には分からないだろうけど。
267 :
234 :2013/11/18(月) 23:36:38.28 ID:???
済みません、スレチでしたら誘導お願いできませんか?
>>267 そもそもなんでPHPスレだと思ったの?
>>234 それはそのサイトの管理者問い合わせしたほうがいいんじゃね?
連絡がつくなら修正してくれるんじゃね?
>>266 プリペアドステートメントの他の使い方って?
PHPがレベル低いって思われる最たるものが大手のFWでprepare使わずに、自前やquoteメソッドで対応してる例があることだ
そういうのをPHPガーって言うのが恥ずかしくない頭なんだろうな。
>>273 これに関しては仕方ないんじゃないか
FuelPHPとかあそこらへんも終わってたような
個別のソフトの問題や、使ってる人の問題を、言語自体の問題にすり替えて仕方ないと言ってるから、 あおりのレベルが低いんだよな。
使えないFWが多いのはちょっと問題だとは思うけどなー 使ってる人の問題だけど、そういうFWを推してる人はどうにかならんかな
下見て暮らしてる奴だからしょうがない
FWなら結局、CakePHPがいいよね。
よくない
CakePHPは日本と日本のオフショア先だけまだまだ盛んだな
fuelは出た手の頃、ormがPrepare使ってなくて使うのやめたんだが 今も治ってないの?
283 :
nobodyさん :2013/11/19(火) 12:53:02.64 ID:hKBGRur1
私JKで試したわけぢゃないけどーprepare+bindXxxって query+quoteに比べて処理工数が多いだけに遅そうだしー ただでさえ遅いFWの速度をあげるには仕方ないのでゎ
ちっちゃいのが積み重なると大きくなるけどね
>>284 一昔前の文字コードやエスケープ処理での脆弱性を知らないんだろうし
シングルバイト系の人は知らない人多いし
289 :
nobodyさん :2013/11/19(火) 13:37:06.01 ID:hKBGRur1
>>284 >> 288
だめなの?
fuelphpてSQLインジェクション防げないんだ…
これはオワコンだわ
SQLインジェクションは、Prepare使わないと防げないわけではない。 そもそもでいえば、インジェクション防止の機構じゃねーし。 SQLの機構じゃなくて、ライブラリのラッパなので、仕様によっては 使っていても問題ないというわけではない。
>>285 クエリを実行するとき、データベースサーバでは、
1. 構文解析
2. 実行計画立案
3. クエリ実行
の処理が必要で、prepareでは1または1&2が行われる。(構文のみで実行計画を立てて固定する場合と、3で渡された
パラメータをもとに実行計画を立てる場合がある)
一方、exec queryでは毎回1〜3が行われる。
なので、同じ処理をパラメータを変えながら複数回実行する場合、プリペアードステートメントを使った方が速い場合がある。
レスありがとうございます
>>268 PHPが何なのか解らず、単にネットプログラムの質問スレで質問させて頂きました
>>269 大手企業サイトなので厳しいですね
ど素人ながら、ログインボタンのURLとかPCでログイン後のURLとか試したんですが、無理でした
>>293 > 大手企業サイトなので厳しいですね
大手こそ対応してくれそうなもんだが。
「○○のサイトって、ガラケーのフルブラウザだとログインもできない糞サイトだわ」
とかネットで言われると困るだろうし。
>>289 そこそこ有名なPHPのフレームワークにそんな基本的な脆弱性があるなら、大垣氏あたりが騒いでるよ。
>>288 の話ってPHPの脆弱性の話じゃないだろ、常識だろ?
>>295 quoteだけでは防げない問題を見つけてつぶしていってくれてるんだよ。
今htmlフォームのradio,cheakbox,selectを使ってphpにポストしています ポストしたデータ類はdbやcsvに書き込んだり保存したりするわけでもなく switch($_POST["color"]) { case "red":return imageColorAllocateAlpha($i,200,200,200,$alpha);break; ~~~~~~ default:return imagecolorallocate($i,255,255,255,$alpha);break; } で最終的に変な物が飛んできてもdefaultで処理されると思うんですがセキュリティ的にこれ$_POSTを正規表現やstrlenで弾くべきですか?
>>301 一応、問題ない。
ただ、不正な値をエラーとして弾くと、ログから変な操作をする奴を突き止めやすい。
自分はpost値をひと通りチェックして処理入る前に 想定外のものがあったらexitして真っ白にして不気味感を演出したり headerでbad requestあたりを返すと思う
俺は大抵302でヤフーにお任せするわ
headerにbad request(400)なんてあるんだね。 余談だが、404にすべきページをエラーページに飛ばしてたら ソフト404とかで注意されたよ。
うわー自前で正規表現やらintvalだの使ってvalidationしてたけどfilterなんてあったのか
<?php
header("HTTP/1.0 404 Not Found");
header("Location:
http://www.example.com/error/ ");
こんな感じにしたら、なぜか、最初のヘッダーは無視されて、
結局、302でのリダイレクトになっちゃうから404を出すのは諦めたんだけど。
404出してから更にエラーページに遷移するのは無理っぽい。
fiddlerでステータスコードを確認した限りの話だが。
>>310 そりゃだめだろ
リダイレクト先で404出さないと
>>310 それおかしいだろ
リダイレクト先のそのURLで404を返すようにしなさいよ
リロードしてなかったのごめんね
315 :
310 :2013/11/19(火) 21:37:04.47 ID:XtFCM7Hl
まじですか・・・。 いや、エラーページは200を返す普通のページにしてたんだけど。 もちろん、存在しないページ用の404ページ(ヘッダー404)は別に用意してるんだけど。 つーか、むしろエラーページに飛ばさないで、素直に404ページに飛ばせばいいのか。
316 :
310 :2013/11/19(火) 21:42:44.27 ID:XtFCM7Hl
普通、エラーページも404ヘッダーを出すものなのですか?
エラーページで404が必要なときは404 厳密には200を返す必要があるときはない
404 FOT FOUNDとかechoしておいて200返してるのはかなりかっこ悪いとは思う
319 :
310 :2013/11/19(火) 22:48:57.12 ID:9JiWXD43
レスありがとうございます。 どうも頭が混乱してしまいました。 こうすれば大丈夫でしょうか? POSTパラメーターが不正 → エラーページ (200ステータス: echo ”リクエストが不正です”) GETパラメーターが不正か不存在 → 404ページ (404ステータス: echo ”ページが存在しません”) GETパラメーターの場合に、エラーページに飛ばしていたのが、 ソフト404の原因だと思うのです。
>>319 RFC2616か、WikipediaのHTTPステータスコードでもいいから読んで
どういう時にどれを使えばいいか分かるから
パラメーターの問題じゃない hoge.phpというファイルは存在しているんだから404を返すのは不自然
322 :
310 :2013/11/19(火) 23:29:26.30 ID:9JiWXD43
>>320 ご指摘に従い、HTTPステータスコード等について調べてみます。
>>321 mod_rewriteで、GETパラメーターを静的URLに書き換えてリンクとして活用しているのですが、
この場合もhoge.phpは存在するとみなされるのでしょうか?
(例)
ttp:example.com/hoge/2013/11/29 9999とか不正な値がきたら、404に飛ばせばいいかなと思ったのですが。
わかりづらい説明ですみません。
mod_rewriteでやってもアプリケーション側で弾かない限り 実質的にはhoge.php?y=2013&m=11&d=29みたいな感じで見れると思うけど hoge.phpが存在するというのを表向きに知られたくないのなら好きにすればいいんじゃね 目的とか実装によりけりだよそのへんは
ブログ記事を表示するページのurlが example.com/post/ブログ記事のid だとして、存在しないidだったときは404返してたんだけど間違ってる?
326 :
310 :2013/11/20(水) 00:10:19.19 ID:VLPy2k85
訳もわからず404や403を返しちゃうのは恥ずかしいよね。 自分で書いてるスクリプトなのにw 400と500のどちらかを返すだけの方が無難だよねw
>>328 httpステータスコードでググってこい
331 :
nobodyさん :2013/11/20(水) 11:28:24.00 ID:35fCUlou
通常、ファイルが存在しない場合に備えて、.htaccessに次の様な設定をすると思います。
ErrorDocument 404 /error/404.php(404ヘッダーを出力)
ここから質問です。
次のURLのid値が不正な場合、404となるよう、同様に、/error/404.php に遷移できますか?
ttp://example.com/post/id header('Location:
ttp://example.com/error/404.php ');
post.phpで出すこのヘッダーは302ですが、遷移すれば、結果として404扱いになるのでしょうか?
その 404.php は何を返すの?
333 :
331 :2013/11/20(水) 11:36:20.51 ID:35fCUlou
>>332 オリジナルに作成した、いわゆる404ページです。
もしかしたら、(404ヘッダーを出力) という部分は間違いかもです。
UAがリダイレクトを許可する設定なら404 そうでないなら302 不安ならPHP側で処理に合わせてheaderとresponse返すようにすればおk
>>331 Locationは「リソースの別の場所を案内する」ために用いられるもの
「リソースが見つからない」場合の挙動は定義されていない
各ベンダーの実装は404とLocationを一緒に出すと無視される
よって include('error/404.php'); 等とするしかない
336 :
331 :2013/11/20(水) 12:41:10.58 ID:35fCUlou
>>334 >>335 ありがとうございます。
header("HTTP/1.0 404 Not Found");
このヘッダー出力だけで、自動で遷移する、ErrorDocument 404 と
同様の効果があると良いのですが、どうも無理なようですね。
<?php
//idチェック処理後不正な場合
header("HTTP/1.0 404 Not Found");
include('error/404.php');
exit;
やはり、こうして読み込むしかないということですね。
ありがとうございました。
404.php側でヘッダに404を出せよというだけじゃね?w
>>337 404.phpに移動していいならそれでいいね。
ただ、.htaccessにErrorDocument設定をしたのと同じ振る舞いを希望するなら、その手じゃ駄目なんじゃ。
変な質問ですみません。 最近転職してPHPを触るようになったのですが、Linux上のvimで開発しています。 開発時にインデントをある程度入れると思うのですが、普通はどのようにインデントを 入れるのが正しいソースの書き方なんでしょうか? 今触っているソースは特に改行やTABインデントがなく、そのまま1行でずっと 書かれてあり可読性としてどうなのかなと思いつつも、そういうルールかもしれないと思い 自分も特にインデント等を入れずに開発しているのですが。。 わかりにくい書き方で申し訳ありませんが、どなたか教えて頂けないでしょうか
難読化してんのかね? 整形して編集してリリース時にまた改行消す、とかでいいんじゃ?
コーディング規約ないならご自由に 後で自分が追うことになっても苦労しない程度にね
>>337 >>339 次の文は正しい?それとも間違い?
『転送元で302を出しても、転送先で404を出せば「ソフト404」にならない』
>>344 Googleの話だよな?ソフト404って
正しいよ。ただ転送は301がオススメ
>>346 そうGoogleの話。
理解できた。ありがとう!
>>342-343 パッと見た時に「読みにくい」と思ったのが最初です
例えば
$hoge = array('aaa' => $aaa, 'bbb' => $bbb);
のようなものがあったとして(実際はもっと多いです)
$hoge = array
(
'aaa' => $aaa,
'bbb' => $bbb
);
のように書いた方が後で見た時に読みやすいと思いまして。。
>>345 資料の方ありがとうございます。
そちらを見てみます。
>>341 それって最終的にそうしてるってだけで、
編集用のコメントが入ってたりインデントもちゃんと入ってるソースが別にあるでしょ?
つうか会社に人に聞きなさいよ。
350 :
nobodyさん :2013/11/20(水) 18:08:46.70 ID:7VTPw3qr
変なこと聞きますが、base64_encodeでダブルクオーテーションが 含まれる文字列に変換されることってありえませんよね?
インデント、手で入れてるんですか?
>>341 インデントはスペース4つが普通。
いろんな文法チェッカーツールも、デフォルトではタブでインデントしてると警告を出すのが多い。
>>349 ないんです
聞いてみたら「昔からこうだった」らしいので。
そういうものなのかなと少し疑問に思って質問しました。すみません
>>353 TABじゃないらしいですね。
>>345 さんの教えてくれたページを見て驚きました
スレ汚し申し訳なかったです
355 :
nobodyさん :2013/11/20(水) 18:17:34.09 ID:7VTPw3qr
>>352 ですよね。CSVファイルに保存するとき、base64_encodeして保存してるのですが、
たまにダブルクォーテーションが余分についてファイルが壊れている事があります。
原因が全くわからないので、バグを見つけられずに困っていました。
他の原因を探ってみます。
>>354 PHPのインデントはスペース派が多いけど
どっちでもいいよ。会社やプロダクトで決められたほうを使うべきかな
>>356 PSR-2がスペース使うのがMUSTだから、どっちでもいいならスペース使っといた方がいい。
>>341 vimの設定ちょこちょこしておけばインデントは勝手にやってくれるよ。
インデントを入れずに書くのはやめといたほうが。
>>354 やべえなその会社w
お前が引っ張っていってやれ
>>357 PSR-2に従うならだな
従うかはMUSTではないからな
うちはPSR-1までは従ってるけど、コーディングスタイルは全然違うな
>>346 いい加減な事を教えないでくれ
301はリソースが一時的に別の場所に「ある」時に使う
ソフト404エラーは404を返すべきところで「404を返さない」事を指す
>>361 違うよ、まず301は恒久的だぞ、一時的は302
301にしろ302にしろ、リソースが新しいURIに移動したことを示す。
404はURIに一致するリソースが見つけられない、リソースはあるがリクエストを拒否したい等々
移動させることは勝手だし、リソースのあるなしは関係ない。
>ソフト404エラーは404を返すべきところで「404を返さない」事を指す
その通りだが、そのURIを301にしてその先で404を返すのは勝手。
その場で404を返そうがどっちでも良い
返せるならその場の方が好ましいとは言えるかもしれない
363 :
nobodyさん :2013/11/20(水) 19:48:23.17 ID:ZNkS7nHy
PHPで重複組合せを簡単にやるにはどうしたらよいでしょうか? もし関数やライブラリがあれば教えてください。 無ければサンプルコードを教えてください。よろしくお願いします。
364 :
nobodyさん :2013/11/20(水) 19:52:53.93 ID:ZNkS7nHy
補足です。 仮に、[1, 2, 3, 4, 5] の5つから3つ選び出す場合、 $result = [ [1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 1, 4], [1, 1, 5], [1, 2, 2], [1, 2, 3], [1, 2, 4], [1, 2, 5], ... ... [1, 5, 5], [2, 2, 2], [2, 2, 3], [2, 2, 4], [2, 2, 5], [2, 3, 3], [2, 3, 4], [2, 3, 5], ... ... ... ... [5, 5, 5] ]; このように出力したいです。
PHPマニュアルが変わった?
変わった
>>362 > 違うよ、まず301は恒久的だぞ、一時的は302
ごめん、俺が取り間違えてる
> 404はURIに一致するリソースが見つけられない、リソースはあるがリクエストを拒否したい等々
> 移動させることは勝手だし、リソースのあるなしは関係ない。
404は適当な理由による拒否として使うコードではない (RFC 2616#10.4.5)
拒否する理由に合わせて400、401、403、406等が用意されている
> その場で404を返そうがどっちでも良い
> 返せるならその場の方が好ましいとは言えるかもしれない
Googleが決めたソフト404エラーを回避する義務がないのは同意するけど
無いものを無いと知っててクライアントに教えないのはHTTPサーバーとして行儀が悪い
今回のケースではPHPで対応できるのだから404を返すべき。この点は譲れん
>>364 $a = [1, 2, 3, 4, 5];
print_r (combine($a,3));
function combine($a, $n) {
if($n==1) return $a;
$result = array();
foreach ($a as $v1)
foreach (($n==2?$a:combine($a,$n-1)) as $v2)
$result[] = array_merge((array)$v1, (array)$v2);
return $result;
}
>>367 10.4.5
This status code is commonly used when the server does not wish to
reveal exactly why the request has been refused, or when no other
response is applicable.
書いてあるよ。
>無いものを無いと知っててクライアントに教えないのはHTTPサーバーとして行儀が悪い
301と404のセットで教えてるから良いんだよ
301を返さずに404の方が好ましいかもしれない。だがMUSTじゃないし問題なし
>>369 > 10.4.5
それは404の説明ではなく commonly used な
「リクエストを拒否する理由を隠したい、適当なものがない時にも使われている」という使用例だ
ソフト404エラーの話とはまた違う
> 301と404のセットで教えてるから良いんだよ
だから選択ではなくセットで使えという事が
ソフト404エラーに該当するしHTTPサーバーとしての振る舞いとしても良くないと言ってるんだ
まだやってたのか
>>370 HTTPステータスの話とソフト404の話をごっちゃにしないでくれ
ソフト404はあくまでGoogleがこれ404がいいよねってURLだ
あくまで提案であり、このままだと404と見なすよって意味だ
元の質問が、302→404としたらソフト404でなくなるかだ
答えは「なくなる」だ。これはHTTPステータスではなくGoogleの話だ
>それは404の説明ではなく commonly used な
>「リクエストを拒否する理由を隠したい、適当なものがない時にも使われている」という使用例だ
>ソフト404エラーの話とはまた違う
そのとおり、最初からソフト404エラーとしてそれを説明してないので問題ない
>>372 どうみてもあってるんですが、どこが間違ってるんでしょうか?
>>373 そうだな対Googleの話に絞ろう
https://support.google.com/webmasters/answer/181708?hl=ja > 存在しないページに対して 404 と 410 以外のコードを返すこと
> (または 404 を返す代わりにホームページなど他のページにリダイレクトすること)は、問題となる可能性があります。
> まず、その URL にページが存在することが検索エンジンに明示されます。
> その結果、URL がクロールされ、コンテンツがインデックスに登録される場合があります。
質問者はそのURLに対するリクエストをリダイレクトすると
ソフト404エラーにならなくなるのか?を訪ねているのだから答えはNOだ
>>376 どうやってコンテンツがインデックスに登録されるんだい?
404返してるページはgoogleはインデックスしないぞ
>>375 ごめんリロードしてなかった
俺のサーバーじゃないならリダイレクトしようが何しようが全然構わないけど、
初心者が見に来るスレだからこそ理想的な手段でやって欲しい
スレチだしそろそろ終わらせようか
>>377 404や410を返さないURLをどう扱うかは俺ではなくGoogleが決める事
そしてソフト404エラーを回避するためには404、410を返す以外の解決手段が書かれていない
それ以上何を語ればいいんだ
>>344 >>346 404か410をその場で返す方が
301や302を利用して404に飛ばすより好ましい
ってレスすれば良いだけではないか
>>361 の暴走が全てを狂わせた感じだな
>>380 はいはい俺の暴走俺の暴走
質問者も居ないみたいだしもう終わらせよう
>>377 これこれ。
> (または 404 を返す代わりにホームページなど他のページにリダイレクトすること)
404を返さずに404らしきページを返すことを、google用語でソフト404という。
だから、404らしきページを返すんなら、ちゃんとステータスコードも404にしろよってことだ。
>>382 俺の暴走だからもういいからPHPの話をしよう
/j
/__/ ‘,
// ヽ ‘, 、
// ‘ ! ヽ …わかった この話はやめよう
/イ ‘, l ’
iヘヘ, l | ’
| nヘヘ _ | | l ハイ!! やめやめ
| l_| | | ゝ ̄`ヽ | |〈 ̄ノ
ゝソノノ `ー‐’ l ! ¨/
n/7./7 ∧ j/ / iヽiヽn
|! |///7/:::ゝ r===オ | ! | |/~7
i~| | | ,’ ’/:::::::::::ゝ、 l_こ./ヾ.. nl l .||/
| | | | l {‘:j`i::::::::::::::::`ーr ‘ ||ー?{
| ‘” ̄ ̄iノ .l::::::::::::::::::::::∧ | ゝ ‘,
, 一 r‐‐l γ /、::::::::::::::::::::::::〉ー= ___ ヘ ヽ }
/ o |!:::::} / o` ー 、::::::::::::i o ,’:::::::{`ヽ ヘ ノ
/ o ノ:::::∧ /ヽ o ヽ::::::::| o i::::::::ヽ、 / /
/ ノ::::::/ /::::::::ヽ o ヽ:::| o {::::::::::::::Υ /
>>383 分かってる人が多い中で、単にかみ合わなかっただけに見えるけど、
そんな荒れなさんな。よくあること。
>>376 > ソフト404エラーにならなくなるのか?を訪ねているのだから答えはNOだ
ならなくなるのがNOなのか、
なるのがNOなのか。
386 :
nobodyさん :2013/11/21(木) 13:55:32.19 ID:z+wm09wI
ところで、フレームワークについてはどう思う? 俺は、Symfony、Zend、Cakeを利用したことがあるけど、 実際は、PurePHP派なんだ。 フレームワークは重い。 人材を探すのが難しい、学習コストがかかる(特にSymfony) そして、案件が少ない。 と商業的にはいいとこなしなんだけど。 逆に、標準PHPは、PHPプログラマならどんなフレームワーカーでも、対応できる。 設計書とオブジェクト指向さえしっかりしていればね。 こう思うんだけど、皆はどう思ってる?まさかクールだからって理由でフレームワークを使っているわけではあるまい。
387 :
nobodyさん :2013/11/21(木) 13:59:57.42 ID:z+wm09wI
PureなPHPと、一般普及してるフレームワークを利用しているPHPとどちらの 案件が多いのだろうか? やっぱ、殆どがフレームワークでの案件?
フレームワーク指定の案件を受けたことないわ フレームワークを知ってる人たちが使うと早く案件が終わるから使うってパターンが多いんじゃないの?
フレームワーク禁止案件ならいくつかあった
自社フレームワーク禁止案件ならあったな
何を使うかは受注側、それもメインプログラマが決定すべきものでしょ 既に開発が始まってるPJにアサインされたらやるしかないけど 開発中から開発後まで使うことでメリットを感じるフレームワークならそれでいい
392 :
389 :2013/11/21(木) 15:32:28.62 ID:???
>>391 > 何を使うかは受注側、それもメインプログラマが決定すべきものでしょ
リリース後、自社メンテを睨んでたんだと思うよ。
393 :
363-364 :2013/11/21(木) 16:58:54.01 ID:Bf2F+E9Z
>>368 ありがとうございます!!
神様と呼ばせてください!!
神様ありがとうございました!!!
ごめん、一箇所無駄があるわw
>>368 これだと数が増えるにつれ際限なくメモリ使うから糞コードだぞ
phpで掲示板を作ったのですが、次は何を作るのがオススメですか?まだ3ヶ月の初心者です。
>>396 PHPから離れて別の言語を探索してみるのもよし
流体シミュレーションでも作るといいよ
>>396 次はwordperssを使いましょう
それでHPを作成販売すればお金が稼げます。実際にやってる企業も多いですよ
>>396 次はDBMSを勉強しよう
お薦めはPostgreSQL
日本では使用例も日本語文献も多いから
>>396 WordPressのようなものは初心者にはおすすめしません。
まずはPHPをしっかり理解して自分である程度のシステムを組めるようになること
WordPressこそ初心者向けだろwww 使いこなすだけでプロとなんら変わらない事が出来るからやっておけw
全くつられやすいなお前らは
>>402 おまえが初心者だろ?
プロの仕事わかってないだろwww
いや、今時主流になってるサイトはWordPressで作れるだろ しかも簡単。面倒臭い事は全部WordPressでやってくれる まさに初心者向けな 必死になっちゃってる奴はライバル増えておまんま食い上げられる事でも危惧してんのか?www
という自演でしたwww
釣られてやったんだ感謝しろよ
>>396
407 :
nobodyさん :2013/11/23(土) 11:05:07.08 ID:co3F0dNX
TwitterのOAuthログイン実装してるんだけど ローカルの開発環境だとどうやって試せばいいの?
408 :
nobodyさん :2013/11/23(土) 11:45:06.48 ID:HUwpIheR
PHPは社員研修で習ったばかりの新卒エンジニアです PHPで利用できるフレームワークの選定のための準備を任せられまして ORMでセキュリティが問題ないものを探しています フレームワークからORMが分離できないものでも問題ないです ・クライアントの文字コードを接続時に指定できること ・クエリパラメータはプリペアードステートメントを利用していること ・識別子はクォートされること は最低条件です 最終的には先輩エンジニアと全コードを見ることになっています 目星をつけておきたいのです お願いしまうす
411 :
nobodyさん :2013/11/23(土) 12:07:02.08 ID:HUwpIheR
>>410 smartyはテンプレートエンジンだと習ったのですが
ORMでsmartyがあるのでしょうか?
URLを教えていただけるとうれしいです
>>408 Doctrine、ZF2、PHP ActiveRecordは大丈夫
使うと怒られるだろうがPhalconPHPも大丈夫
FuelPHP、ZF1はダメ
選定の準備を任されたってことの意味を理解してないな こんなところで聞いてるのがバレたらお叱りを受けますよ
最終的に「オレオレフレームワーク」が最強ってのに辿り着くんだけどね。
415 :
nobodyさん :2013/11/23(土) 13:06:08.32 ID:HUwpIheR
>>412 ありがとうございます。PhalconPHPおもしろそうです
Cは会社の人で触れる人多いのでこちらも候補にあげさせてもらいます
>>413 選定のための準備でWeb上のブログ記事や質問サイトを使うことは許可されてるので大丈夫です
目星をつけたものを全ソースコードを読むことになっています
教育係がめんどくさくて新人に全部丸投げとかwww
417 :
nobodyさん :2013/11/23(土) 13:51:08.24 ID:xzL6Vqsq
http://kohada.2ch.net/test/read.cgi/php/1362790136/62 の
<?php
$body = "submit=%8F%91%82%AB%8D%9E%82%DE&FROM=%21ninja&mail=sage&MESSAGE=Hello+world&bbs=php&key=1362790136&time=1";
$length = strlen($body);
$head = "POST /test/bbs.cgi HTTP/1.1\r\nHost: kohada.2ch.net\r\nUser-Agent: Monazilla/1.00\r\n".
"Referer:
http://kohada.2ch.net/test/read.cgi/php/1362790136/l50\r\nContent-Type: application/x-www-form-urlencoded\r\n";
$out = $head."Content-Length: ".$length."\r\n\r\n".$body;
$fp = fsockopen("kohada.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
$cookie = "Cookie: ";
while (!feof($fp)) {
$str = fgets($fp, 128);
if (strpos($str, "Set-Cookie: ") === 0) {
$str = str_replace("Set-Cookie: ", "", $str);
list($cook, ) = explode(";", $str);
$cookie .= $cook."; ";
}
}
fclose($fp);
$cookie .= "NAME=\"\"; MAIL=\"\"; yuki=akari; HAP=*ここに FOXdayo〜から始まる文字列を記入*;\r\n";
$out = $head.$cookie."Content-Length: ".$length."\r\n\r\n".$body;
$fp = fsockopen("kohada.2ch.net", 80, $errno, $errstr, 30);
if (!$fp) {echo "$errstr ($errno)<br>\n";exit;}
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
?>
418 :
nobodyさん :2013/11/23(土) 13:57:05.37 ID:xzL6Vqsq
のPHPで2chに書き込むコードを使いたいのですが、 このまま使うと HTTP/1.1 200 OK Date: Sat, 23 Nov 2013 04:43:35 GMT Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8q PHP/5.3.8 mod_antiloris/0.4 Vary: Accept-Encoding Content-Length: 344 Connection: close Content-Type: text/html; charset=shift_jis <html lang="ja"> <head> <title>書きこみました。</title> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> (以下略) という感じで2chの書き込み完了ページがそのまま出てくるのです。 でも最初にレスポンスヘッダが排出されて出てくるので、レスポンスヘッダと実際のページ内容を分けたいのですが、 できますか? できれば、<HTML>で分けるなど、他のページで使えない方法ではないものを教えてほしいです。 よろしくお願いします。
ヘッダは空行までというのはhttpに限らず広く使われてる
421 :
nobodyさん :2013/11/24(日) 17:32:01.73 ID:BjxkHZDb
【OS名】Mac OSX 10.8.5 【PHPのバージョン】5.3.26 【質問内容】 ウェブ上のサンプルコードを参考に、 PHPからアメブロに投稿しようとしているのですが、 403エラーが返ってきて、うまく行きません。 ホームページ・ビルダーのブログ投稿機能では投稿できているので、 API自体は生きていると思うのですが・・・ 原因のわかる方、よろしくお願いします。
423 :
nobodyさん :2013/11/24(日) 17:48:32.03 ID:BjxkHZDb
>>423 実行したコードと
403エラーを認識したもの
があれば大体いけるんじゃないか?
425 :
nobodyさん :2013/11/24(日) 19:08:52.68 ID:97obQaT5
>>419 >>420 ページ本体にも空行が使われていたら、一つ目の空行で分割
ということで良いのでしょうか?
426 :
421 :2013/11/24(日) 19:41:29.93 ID:BjxkHZDb
>>424 文字数制限とリンク制限で書き込めないのですが、
「phpを使ってアメブロへ投稿する方法」などを参考にしました。
cURLのレスポンスを見ると403エラーになっています。
>>426 アメブロは調べる限り公式な情報が不足しすぎてるから
根本AtomAPI理解できてないなら難しいと思うよ
401エラーでないってことはWSSEでこけてるわけではないな
403エラーは、根本何か間違えてる以外にも、記事の中にYoutubeの動画をいれるとか
iframeいれるとかでもおきるみたいで、いろいろ謎
ソースを
http://codepad.org/で公開して 、パスだけ貼るとか
リクエスト全部を貼るとかか
いろいろ長いので投稿テストしてるなら、短いのにしてくれな
428 :
421 :2013/11/25(月) 03:25:17.64 ID:kknZe82B
>>427 丁寧にありがとうございます。
ソースはcodepad.org/p9CmA3rZです。
nonceの値を変えてみたり、パスワードのハッシュ化あり・なしなど、
いろいろな組み合わせを試したのですが、
すべて403になります。
ホームページ・ビルダーにアメブロに投稿できる機能があり、
パケットキャプチャで解析したところ、
同じエンドポイントを使っていて、そちらはちゃんと投稿できているので、
PasswordDigestの仕様が変わったのか、もしくは根本的に何か間違えているのか・・・
よろしくお願いします。
>>425 そうだよ、ヘッダに空行は無い約束だけど、本文に空行はありうるからね。
あ、ついでに、ヘッダの先頭が空白(TAB含む)だったら前行からの継続ということね
名前空間使うと、new \Exception() とかに \ 付けなきゃいけなくなってめんどくさいですね
どういうつもりでそんなこと言うんだろうか
相対参照する場面すべてで .\ をつける羽目になるよりはいいと思うんだよね。
435 :
nobodyさん :2013/11/26(火) 03:31:23.15 ID:5uCWNNk/
初心者ですが、教えてください。 サイトのトップページにコンテンツの更新情報を載せたいのですが、 データベースを利用せず実現したいです。 どのようにすればいいですか?
【OS名】windows 7 【PHPのバージョン】5.3.26 【質問内容】 <div id="exa"> <select name="exmanple" id="exmanple"> <option selected value="test1">test1</option> <option value="test2">test2</option></select></div> でPOST通信を行ってます。一部JSでselectタグを書き換えており document.createElement('select')〜document.getElementById("exa").appendChild("select")して います。動的に書き換え後にPOSTした遷移ページでhistory.back()すると JS書き換え前のHTMLが復元されてしまいます JS介さない場合は、POSTした要素が復元されますが、動的に書き換え後にselect要素を 復元するためにする事はなんでしょうか?
クラスのメソッドにpublicは省略せずに付けるべきですか?
好きにしろ
>>435 require_once('koushinjouhou.html');
>>435 どういうサイト形式なのか知らないけど、いずれにしても
更新と連動して記事タイトルとURLを蓄積するデータファイル
を作成する必要がある
必要なデータをデータベースに放り込んでおけば、後は必要に応じてリクエスト
するだけなので楽ができる
データベース使わなくても、PHPでCMS作って記事投稿と同時にkousinjyouhou.htmlに
<a href="example">記事タイトル</a>を追加して、それをincludeしたり、iflameで
読み込んだり、JSでdocument.writeしたり諸々方法論はあるけど
>>441 > <a href="example">記事タイトル</a>を追加して、
それをするためのソースをどうやって作っておけばいいのかって質問だと思うんだが。
443 :
nobodyさん :2013/11/26(火) 18:54:53.30 ID:QvBM31iq
>>441 >>442 みなさんご回答ありがとうございます。
私の説明不足で申し訳ございません。
考えていたのは「yyyymmdd.csv」という更新情報ファイルを日ごとに作成し、
ディレクトリに保存しておく(5日分のみ)。
トップページにアクセスすると、ディレクトリからファイル一覧を取得し
最終更新日ファイルの内容を表示させるというものです。
気になっていたのは、
FTPで更新情報ファイルをアップする際に、PHP側のプロセスと排他制御ができるのか
という点です。
444 :
nobodyさん :2013/11/26(火) 19:23:45.69 ID:QvBM31iq
435です。 追記します。 FTPに限らず、サーバーのApache(PHP)とは 別のプロセスで更新される「update.txt」があるとして、 ファイル更新中に、ユーザーからのリクエストを待たせることは可能ですか? ニコニコ動画のランキングのようなものをDBを利用せず実現したいです
445 :
nobodyさん :2013/11/26(火) 20:22:42.40 ID:QvBM31iq
PHPで画像サイズを縮小するためにEXIF情報を削除することは一定レベル以上の方であれば実行していると思います このEXIF情報ですが削除してはいけないものというのはありますでしょうか? 熟達者の方のご意見をいただければ幸いです 一定レベル以下の方はEXIF情報削除などしていないでしょうから、コメントしてくださらないで結構です
マルチなのか〜なんなのか〜上から目線の変な人 EXIF情報を使う予定がなければ削除して問題ない
449 :
446 :2013/11/26(火) 22:18:16.15 ID:???
>>448 アホやな
てめえみたいな低レベルには聞いてないんだよw
全部消したら、お前のへぼサイトみたいになってまうやないか
分かる奴おらんのか?
教えたろか?
450 :
446 :2013/11/26(火) 22:30:07.63 ID:???
もうええわ 自己解決したし
バイナリプログラミングなんて誰でもできるのに exifでドヤ顔()
>>450 hetakusonaengiyana
>>451 おたくはちょっとできそうやな
他の虫けら先生とは違うようや
バイナリプログラミング、ここにいる分かってない連中に解説したれや
RFCとか技術仕様書をちゃんと読めて理解できる人もこういうスレには多いので、 ちょっと先の段階に進めたからって天狗にはならないほうがいいですよ。 傍から見てるとかなり恥ずかしいので。
455 :
446 :2013/11/26(火) 22:43:37.79 ID:???
>>453 解説などできないさ
このスレには
>>448 みたいな低レベルがド素人に教えるスレなんだから
Railsスレで門前払いされたもんだからここで何とか回答を引き出そうと必死
まぁここは入門生に下級武士が教える場だから 込み入った質問には答えられないよ 上級武士探しな
459 :
446 :2013/11/26(火) 23:03:44.72 ID:???
いや、わしは答えを知っているから探さないでもよい ここにいる人間がそんな簡単な質問にも答えられない分際で偉そうに教えてるという証明がしたかっただけ
460 :
446 :2013/11/26(火) 23:05:37.89 ID:???
無能同士仲良くやっとけ ほな
Railsにもいたかまってチャンか あぼーんしとこ
ある一定以上っていうからどんな話かと思ったら ただのバイナリ操作とか・・・ あんまり僕をがっかりさせないでくれ
でも低レベルな解答が出ちゃったのも事実
>>462 も上から目線だけど解説できないんでしょw
自演が特長なんで、ほっといたほうがいいよ Railsスレだと釣られて、かわいそうなことになってたよ
そうやって解説させようとするいつもの煽り教えて君
解説してやるから金用意しろ
ここにはチンカス素人しかいないから難しい解説はムリポ 前から思ってた
いきり立っても正解は答えられず 結局無能集団の証明になっちまったな(-_-;)
暴言入り煽りの自演が入るのが特徴
技術的に負けちゃったね 今の所不正解しか出てないし
446の一人芝居に付きあわんでいいよ はい次のかたどうぞ〜
自分も実はこのスレ低能ばかりだなと思ってた
ちょっと難しい問題には不正解者しか出なかった それが全て・・・・
474 :
nobodyさん :2013/11/26(火) 23:28:09.89 ID:QvBM31iq
445をお願いします
477 :
nobodyさん :2013/11/26(火) 23:33:47.55 ID:QvBM31iq
>>475 キーワードだけでも教えていただけないでしょうか?
478 :
nobodyさん :2013/11/26(火) 23:35:40.53 ID:QvBM31iq
>>476 「ニコニコ動画のランキングのようなものをDBを利用せず実現する」場合、
一般的にどのような方法が用いられるのでしょうか?
でお願致します。
初心者の私は446の答えが448に思えてしまいます。 446さん、解説願えますか?
>>480 ここには正解出せる人はいないよ
そういうスレだから
残念ながら
>>449 の反応が理解した人間の反応
>>481 そうでしたね446さんには答えられないんでしたね
ちょっとお前ら黙ってみな 446が名無しに戻って荒らしてるからそのうち連投規制かかるから それまでスレ放置しとけ
484 :
nobodyさん :2013/11/26(火) 23:52:56.53 ID:fv8eO2Pf
PHP5.4です。 bindvalueで演算子を変更することはできるでしょうか? WHERE id > 5 や、 WHERE id < 5 など、bindvalueでsql文を変更したいと思っています。無理でしょうか。 $query = 'SELECT * FROM table WHERE ? ? ?'; $st = $pdo->prepare($query); $st->bindvalue(1, 'id', PDO::PARAM_INT); $st->bindvalue(2, '<', PDO::PARAM_STR); $st->bindvalue(3, '5', PDO::PARAM_INT); $st->execute();
無理です
446も答えられないのか
間違った解答者が出てから446が興奮しだした railsにも出没したが446は正解知って問題を出す やや難しいレベルの んで間違えた解答者が出たら馬鹿にして罵る でもスレの1/5か1/10程度の人間しか解答できないくらいの難度設定の問題だから馬鹿にされた解答者に援軍は来ない railsでは何度かあったよ 正解の最後の文字を言ったりしていたから質問が目的じゃないみたい
だから黙っとけって!
>>489 馬鹿らしい
解答できなかったからって見苦しい
一人で黙っておきな
>>443 >>1 といいたいところだけど、ほっといても連投するだろうから。
参照されるパスに直接アップロードすることを避ければいいよ。
一般に言われる、cp -> mvと同じ。
誰もまともに取り合ってないだけなのに、空気読めないって怖いね。
493 :
443 :2013/11/27(水) 00:35:23.02 ID:???
>>491 ありがとうございます
あまり参考になりませんでしたのでもう少しググって調べます
>>488 Railsスレだと2人に釣られてたみたいだが
>>493 具体的にいうと、creatだと途中を読まれるかもしれないから排他制御が必要かもって思うんでしょ?
だったらinodeを別にすればいいって話。単純だよ。
railsスレでは一人正解者が出ていたかな ここは今のところゼロで不正解者一人 railsの方が優秀だね
そうだね じゃ早くrailsスレに戻ったほうがいいよ ここにいると優秀じゃなくなっちゃうからね
498 :
493 :2013/11/27(水) 00:41:43.37 ID:???
>>495 そんな簡単なことを聞いているのではないんですよ
しょうもな
>>496 railsスレって正解者一人だと思ってたんだ
釣られた事実に気づいてなかったとは驚き
>>498 ?じゃあ、改めて質問を書いてくださいな。
> FTPで更新情報ファイルをアップする際に、PHP側のプロセスと排他制御ができるのか
これについてはこれ以上情報いらないでしょ。あとID
とりあえずIDがないのは無視する方向に切り替えるか
まぁ、スレのルールだしね。日付も変わってるしどうにもならん。
503 :
nobodyさん :2013/11/27(水) 00:44:57.28 ID:bulawsjl
>>491 >>495 493は私?ではありません。
491、495さんありがとうございます。
上げていただいたキーワードで調べてみます。
何度も同じようなことを書き込んでしまい申し訳ありませんでした。
大丈夫弁解しなくても荒らしてるのは1人だけなのはみんな知ってるから
別人なんだ ならいいや
Railsスレと一緒 質問者にも暴言吐いて絡んでくる荒らしだから無視してあげてね
風呂入ってる間に部下どもが騒いでしまったようだな さぁ、ものども、RoRスレに帰るぞ phpにもまた来てやるから、もう少し勉強して正解出せるように鍛えときな
--------------------------終 了-------------------------- --------------------------再 開--------------------------
正直何が正解なのか分からなかった 分かってる人はすごいな
誰も回答してないのに正解も不正解もないし
>>448 が回答じゃなくて単にあしらってるだけ
最近写真にGPS情報入ってるかもしれないのを知ってはしゃいでるガキにしか見えない
消しちゃいけない例外項目は何で、それを実装するには? てな問題意図なのかな? そしたら一つは思い浮かぶけど
言葉遊びには付き合わなくていいと思うの
516 :
nobodyさん :2013/11/27(水) 01:20:04.87 ID:bulawsjl
>>514 思い浮かばない人もいるだろうね
それで上げ足を取られたという構図か
思い浮かばないってのは普通だから気にしなくてもいいんじゃない? 技術っていうものは必要になったときに都度調べてやるわけで、 EXIFがどういうものかは知っていても、その細かな仕様までは普通知らないでしょう。 特にプログラムの世界では、前提知識から調べたいことに早く辿りつくのを目的として、 用語と大雑把にどういうものかを把握してるだけで良い。
>>518 でも通過した人ならある程度は覚えてるよね
こんなことも通過していない人が多いのにはびっくり
ここで教える前に自分が制作したサイト見直した方が良いと思う
厳しいかもしれないけど
車輪の再発明とかオナニーが好きな人はそう多くないと思うの
中学生ぐらいまでだったら無意識でやってたかもしれないけど 今の俺にとって覚えたのを披露したくてドヤ顔して質問スレで問題出してくるとかちょっと理解できないwww
>>519 それはある
予想される正解を辿っていない人が結構いそうで驚き
悔しいのか荒らしに一々反応してるところから低レベル
おっと、こういうレスすると自演とか言われちゃうなw
世の中には画像のないWebサイトだってあるわけで 何がその人の通過点であるかなんてのは個人によりけり 俺もexifにはjsでライブラリ作ったことある程度には詳しいけど 煽ってる人はたまたま知ってる話題でよかったね
画像ないWEBサイトかw
少なくともここで教えるには値しないよな
>>523 のような熟練者なら何を気をつけるのよ
>少なくともここで教えるには値しないよな なんで? 画像処理には疎くてもパフォーマンス厨でキャッシュ周りは任せろとかいうやつもいるだろ 何が得意かというのは人それぞれ
通過点とか学校の授業みたいに一定のカリキュラムでもあるのかよwww ウルトラC級の馬鹿が混じってるなー
論より証拠でEXIF削除で気をつけることぐらい瞬殺で答えたら? 別に出し惜しみするレベルの問題でもないじゃんw
人を試すような人間に答える義理もないし煽っても答えは出ませんよ
529 :
527 :2013/11/27(水) 02:29:17.20 ID:???
a〜〜〜〜o〜〜〜〜 ヒント これすぐに出てこないのに熟練者気取りか 荒らしと同レベルか偉そうにしている分ひどいなw
偉そうって・・・ 通過点なんてのは個人によりけりと当たり前のことを言っただけなんだがな あんたのことなんて鼻から相手にしてません
531 :
527 :2013/11/27(水) 02:36:04.47 ID:???
>>530 こちらは知っていて、あなたが知らない事を馬鹿にされているわけだから、
当該問題に即答するのが手っ取り早いのに
御託ばっかり並べてるところを見ると知らないね?
知らないなら恥さらしのように熟練者なんていきがらなければいいのに
普通これ知らないとまともなサイトには遠く及ばないよ
誰も熟練者と名乗った覚えはないしw まぁ熟練者でもいいけどいくら煽っても答えませんけどね >普通これ知らないとまともなサイトには遠く及ばないよ こういう馬鹿なことを言うから突っ込まれてるだけなのをそろそろ理解したほうがいい 普通って何?まともなサイトって何? 主観なんてどうでもいい
533 :
527 :2013/11/27(水) 02:45:39.79 ID:???
>>532 まぁこれやってないと普通とは程遠いよ
簡単な質問にばかりドヤ顔で答えてないで少しは自分の精進をはかった方が良いよ
あなた低レベルだからこちらは得るもの少ない
ヒントを頼りに考えて脳ミソ鍛えなノシ
はい論破完了 もう少し頭使いましょうね
荒らしの要求は徹底的に無視して相手にせず、 矛盾をつきまくってピエロにしていくとはなかなかいい勉強になりました。
おこなの? くやしいのうwwww
>>527 はとりあえずめちゃくちゃ恥ずかしいやつ。
顔真っ赤にしてもっと怒れよ!
荒らしの愉快犯より技能低いとか正直恥ずかしい しかももてあそばれて大激怒してるとかどんだけw
Webサイトを作るためにExifを除去しなければならないことがマストになる日が来てたとはなぁ。 言い換えると、Webサイトを作る際にはjpegだったりtiffだったりを使わなければならないのか。 実に面倒だなぁ。gifを排除せよってときよりも面倒だ。
タイプヒンディングいいな スカラー型には使えないのが残念だけど phpにもuse strictみたいなの作って型宣言強制してほしいわ
545 :
nobodyさん :2013/11/27(水) 06:41:19.95 ID:i5P0J2fr
そりゃbindValue(Param)は字のごとく、(変数)値拘束だからな。
カラム名や文や演算子には使えない。
>>484 の例で使えるのは3番の5の部分のみ。
'<'っていう演算子にPARAM_STRしてるのはちょっと笑ってしまったわ。
$col = 'id'; $com = '<'; $query = "SELECT * FROM table WHERE {$col} {$com} ?"; $st = $pdo->prepare($query); $st->bindvalue(1, '5', PDO::PARAM_INT); $st->execute(); $colと$comが外から受け取る値なら、適切な処理をしないと、 全部SELECTしてしまうような事態になりかねないので、 セキュリティに自信がないならお勧めしない。
548 :
nobodyさん :2013/11/27(水) 07:30:14.33 ID:i5P0J2fr
>>546-547 おぉ、ありがとうございます
>>547 さんの方法で行けそうです。使わせていただきます。
↓みたいな感じならセキュリティ的にも大丈夫そうですね。
if(分岐条件){
$com = '<';
}else{
$com = '>';
}
かまってちゃんは 顔真っ赤ってワードが好きなんだよな〜
語尾に縮れ毛も好きだよね
純粋にわからんわ EXIFの中身さわったことないしな まいっか。正答も見当たらんし、ないのかもしれん
EXIFにはGPSデータが入ってるし除去するのが適切として 確かに消してはいけないものが一つ(私は一つだけ思い浮かぶ)ある さすがに多くの人が使っているのだろうとは思ったけど皆の反応見ると意外に対策してない?てかEXIFすら除去してない? 私は上にあったようにimagemagckではaから始まるコマンドで対処する
Exifで消しちゃいけない情報とか画像スレじゃないんだから、どうでもいいっすね。 消しちゃまずいとこ消さないで、画像閲覧に支障がない部分を全部消すにしても、 出来るマーならライブラリを使ってさっくり解決すればいいこと。 中の仕様とかそんなの隅々まで知る必要もないし時間の無駄。 というか知らんでも同じ結果に至るのに、知ってなきゃまともなサイト作れないとかイミフ。 だいたいExif関連が問題になりそうな不特定多数のWebサービスを、 仕事じゃなしに、低効率なPHPで気合入れて個人で作るんですか?(笑) XAMPP使うなとか、FWのソース嫁とか、マシン語やれってのもそうだけど、 問題が起きたら自己解決できないからとか言って、 不必要なことまでやりたがるのは研究ならいいけどマーには向いてないね。
stripImageしかしてないわ
>>552 自尊心とかくすぐる煽りが足りないから無視してるだけ
少なくともこういう時困るってのを出さないと誰もまともには反応しない
exifなんてgdでimagecreatefromjpegで読み込んでそれをimagejpegして画像作成するだけで全部情報吹っ飛ぶわ
どーせ 例の縦横のこと言いたいんだろ。
orientaionの話なら、対応しないよ iOSのブラウザ以外基本対応してないから要件で特別なことがない限りしない exifから削除したらいけない情報でもなんでもない どちらかというとiPhoneだって認知したときのみ対応等の特別処理
スペル間違えるし。orientationだ
>>552 というか
>>527 というか
>>446 が直接ImageMagickを叩いてるとは驚いた
IMagickあるんだから使えよ、auto-orientに値するものはまだないけどな
あと、ImageMagickの-auto-orientはコマンドじゃなくてコマンドラインオプションだからな
間違えるなよ
別の言語系のImageMagickの実装はauto-orientのメソッドあるのにPHPはまだだな
getImageOrientationで方向とってrotateか
いや、聴きもしてねーことをぐだぐだ書くスレじゃねーし。 優越感に浸れて気分いいんだろうけどさ
まぁ落ち着けよ
もう
>>446 は恥ずかしくて出てこれないだろうし
ただこういうやつはまた現れるものなので
夜になったら帰ってくるかもしれないからそれまでにとりあえず話題を変えてくれ
あれ、これ
>>446 の質問が間違ってね?
もし、auto-orientのことだったら
EXIFから削除してはいけないものでなくて
EXIFを削除するときにやらなければいけないことってだけ
(やらなくても実は良いんだけど)
って考えると
>>448 の回答えぐいな
えぐくないよ。 GPS情報を消すのが適切って言ってる人いるけど、場合によるもの。
exifなんてものはユーザの意図を知らないサーバ側でどうにかする問題じゃないし 本来無知なユーザに責任を持つ必要はないが 問題になる可能性を考慮してSNSやアプロダでは消してもいい 無知は問題がおきたときにサイトのせいにするので評判にも関わるからな
>>563 至極当たり前のことだけ書いてるからさ
これに
>>446 が鬼の首を取ったように反応する
って構図がえぐいなと
>>436 自己解決
ユーザーが指定するoptionタグを1つに絞るためselectタグを
parentNode.removeChild(select);
としてからselectタグをcreateElementしてた事がhistory.back()で復元されない原因
単にJSで指定のoptionをselectedさせると動的に書き換え後のselectも復元された
>>558 >>559 おっ、正解者出たね。それにしても正答率少ない。
他の奴にいたっては、あぁそれね、みたいなリアクション取ってるねw
昨日いたぶりまくっても答えなられなかった分際で¥
ときに、
>>558 さんよ
EXIFでは気を付けるところってそんなもんでいいんだよな?確認のため
他にもアドバイスあるかい?
俺もここにいる多数と同様エキスパートでも何でもないから、何かあったら教えてくれ
ちなみに俺はRoR派でimagemagick直接はいじっていない。
他にもって、画像周りでEXIF除去以外の分野ってことね
>>567 知ってる人いた!僕に何か教えてください!
まだ頭悪いやついたのか 馬鹿にされてんのに上から目線で何が正解者だよ
IDのない質問は無視
573 :
nobodyさん :2013/11/27(水) 23:14:33.16 ID:ZK+gtB40
>>558 >>559 おっ、正解者出たね。それにしても正答率少ない。
他の奴にいたっては、あぁそれね、みたいなリアクション取ってるねw
昨日いたぶりまくっても答えなられなかった分際で¥
ときに、
>>558 さんよ
EXIFでは気を付けるところってそんなもんでいいんだよな?確認のため
他にもアドバイスあるかい?
俺もここにいる多数と同様エキスパートでも何でもないから、何かあったら教えてくれ
ちなみに俺はRoR派でimagemagick直接はいじっていない。
他にもって、画像周りでEXIF除去以外の分野ってことね
・ 質問者として、態度をわきまえること。
> EXIFでは気を付けるところってそんなもんでいいんだよな?確認のため > 他にもアドバイスあるかい? 最初からちゃんとこれで質問してれば回答する気にもなったが、さすがになぁ。。
578 :
nobodyさん :2013/11/28(木) 00:34:21.10 ID:HGMmiVb1
皆さんのやり取りを見ていて一つ疑問が exif情報を消して保存した後にauto orientをしたくなった場合はどうすれば良いのでしょうか? つまりEXIF削除し元データとして保存しその後別のサイズで画像を作りたくなった場合です 根本的にorientation情報だけ残して他を消すという方法はないのでしょうか?
>>578 EXIF情報のorientationはおまけ
消したらその方向はもうわからない。
>根本的にorientation情報だけ残して他を消すという方法はないのでしょうか?
ない。
>つまりEXIF削除し元データとして保存しその後別のサイズで画像を作りたくなった場合です
リサイズするだけで良いでしょうに、元データと同じ方向にはなるよ
580 :
nobodyさん :2013/11/28(木) 01:21:26.95 ID:HGMmiVb1
>>579 非常に助かりました。ありがとうございます。
上記で言う所の元データ保存時には、auto-orientで方向の情報がついたものが保存されるということでしょうか
auto-orientというのはEXIF情報から違うところへ方向情報を移し替えるものという理解になりつつあります
>>580 >auto-orientというのはEXIF情報から違うところへ方向情報を移し替えるものという理解になりつつあります
auto-orientは実物の画像を回転させるの。物理的に
本来画像にEXIFで向きなんて必要ない。元の画像がその方向を向いてれば良いだけ。
582 :
nobodyさん :2013/11/28(木) 01:27:33.55 ID:HGMmiVb1
>>581 ありがとうございます。
PHPからは少し話題が外れてしまいますが、実践では欠かせないポイントとなりそうですね
助かりました。
>>582 EXIFに関しては
>>448 が完璧。これはEXIFの宿命
EXIFのorientation情報で回転させるかは要件次第だからむやみにやるものではないってのも認識すべき
584 :
nobodyさん :2013/11/28(木) 01:45:42.77 ID:HGMmiVb1
>>448 さんのコメントからすると、とりあえず消してOKということですね
私の場合はユーザーが意図した方向を向いてアップロードされていれば良いという要件だけなのでauto-arientを活用させていただきたいと思います。
なんだ、ちゃんと質問できんじゃん
人格が入れ替わっトルw
久々に見に来てみたら、PHPと関係ない話で盛り上がってた。 95%以上、データ取扱の仕様の話じゃん。
>>587 そして俺とお前のようにゴミしかいなくなった
589 :
nobodyさん :2013/11/30(土) 10:06:52.02 ID:W5pThAv1
【OS名】FreeBSD 9.1-RELEASE-p7 amd64 【PHPのバージョン】5.3 [mysql]5.5 古いサーバーから新しいサーバーへサイトを移転したんですが、何故かDBのデータが表示出来ません。 Mysqlのデフォルト文字コードはutf8なんですが、set names ujisとデータベースに接続した時にクエリーを発行しています。 サイトの管理画面である設定を更新した所、DBへはデータが更新されてるんですがなぜかPHP経由で表示しようとすると出力出来ません。 (phpMyadminで確認) set namesで以前は古いサイトを新しいサーバーへ移転した時は問題なかったんですが、今回のサイトだけは上手く行きません。 DBのデータをprint_rで見たところ、日本語だけ出力出来ないようです。 何か解決策はあるんでしょうか?
set names utf8
set names utf8 は使うな
593 :
nobodyさん :2013/11/30(土) 12:58:27.16 ID:R4pRLN+y
【OS名】win7 【PHPのバージョン】5.3 PHP+MYSQLで掲示板を作成・運営してます。所が、外国の人から スパムコメントをされる事があり、日本語以外のコメントは受付ないように 設定した所、英語+ソニーのようにこちらの対応をかいくぐってスパム コメントを残されてしまいました。 当然、ipでその都度BANしているのですが、イタチごっこです。 やはり画像認証等を導入すべきでしょうか?
ドメインで、国外を排除したら?
ipで国判定して弾くとか geoipってあったきがする
掲示板やブログコメで画像認証ってハードル高いよな 「じゃあ書くのやめるわ」って思われるのがオチ
お前らが今書き込んでる2chはどうやって海外IPを弾いてるかも知らんのか・・・ まともな解答者いねーな、ここは。
>>599 海外IPを弾くのがベストアンサーとは限らんだろ。
海外に住んでる日本人や外国人と交流するサイトもあるんだから。
自分の視野の狭さに気づかず上から目線とか恥ずかしいね。
そもそも英語のコメが海外のIP発とも限らんし。
2chは海外ipウェルカムでしょアメリカ合衆国とかドイツとか 地域表示欄に度々表示されてるがな
>>593 スパムがbotなら、JavaScript+PHPでbotか人かを判別できるよ。
たとえば、投稿ボタンがクリックされたら、仕込んだトークン値をJavaScriptで加工してからPOSTで送信。
PHPでは、その加工したトークンの値が正しいかを確認。
これだけでも随分スパムは減るよ。
604 :
nobodyさん :2013/11/30(土) 23:11:17.51 ID:HGPAKAoD
(>>)1,2,3は「array(1,2,3)」、(>>)4-10は「array(4,5,6,7,8,9,10)」 というように2chの投稿にある安価の数字から配列を作りたいのですが、 (>>)1,2,3,4-10,11,12 というようなアンカーを処理するにはどうすればいいでしょうか? カンマでexplode()して配列ループ、ハイフンがあったら分割して range()する三度手間しないといけないでしょうか?
>>603 JavaScriptオフの人は・・・
まあ今どきそんな人考えなくてもいいのかね
607 :
nobodyさん :2013/12/01(日) 22:33:57.70 ID:AEFe7KWl
YouTubeのリンク先の動画が消されてるかどうかを調べる事ってPHPでできる?
>>606 ワンタイムトークンをhiddenに入れときゃいい
トークンまで読み取るSPAMなら負けを認める
JavaScriptを解釈するHTTPクライアントは難しいけど hiddenフィールド読みとりは簡単で対策にはならんな
612 :
nobodyさん :2013/12/02(月) 06:49:31.44 ID:dhG1eR96
$fp = fsockopen('tls://smtp.gmail.com', 465, $errno, $errstr); //echo fread($fp, 4096); fwrite($fp, "EHLO localhost\r\n"); echo fread($fp, 4096); こんな感じで2行目のfreadをコメントアウトすると 4行目のfreadには3行目のEHLOのレスポンスは含んでおらず 1行目でソケット接続した際のwelcomeメッセージが返ってくるだけになり スクリプトが進行していないように思えます これはソケット接続の際とfwriteをした際には 毎回freadを使わないといけないのでしょうか?
は?
配列定義のリテラルが十年も拒否られ続けた理由って何? 一度聞いた気がするけどあまりに昔のことなので忘れてしまった
>>614 同じ事をするために複数の構文は要らない
>>612 4行目のfreadの後でもう一回freadしてみ
617 :
nobodyさん :2013/12/02(月) 19:40:09.11 ID:dhG1eR96
>>616 レスありがとうございます
fsockopenの1回+fwriteした回数分freadしたら全部表示されました
ということはちゃんとリクエストは到達してるということなんですね
fread使うのは直前のコマンドのレスポンスでエラー処理や条件分岐なんかをするだけで
正常に実行されてるなら使わなくても問題なさそうですね
どうもありがとうございました
>>617 直前のコマンドのレスポンスが返ってくるの?
君の質問と矛盾しているように見えるが
>>619 お前言いたいことはわかってるのにわざと揚げ足取る友達いないタイプだろ
いや、fsockopenの仕様なんて知らないけど文章読んでるだけで矛盾があったから聞いただけだけど・・・ 何なのこの人・・・
>>617 やろうとしてることって、直前のレスポンスが取れるまでぐるぐる読むってことだよね。
気持ち悪いしメモリにも悪いんで都度レスポンスは読んでください。
内部使用しらないけど、ソケットバッファあふれてもしらないよ
623 :
612 :2013/12/03(火) 02:01:56.77 ID:Fpfk36ag
日付変わってるのでID変わってると思いますが612です
>>619 freadを使う目的としての話をしました
コマンド実行後freadすれば直前のが返ってくるという意味ではありません
>>622 fsockopenの使用例と関連関数ではいまいち使い方がわからなくて
おかしなこと書いてたらすみません
>>617 は
>>616 にヒントを頂いてそう書いたのですが
都度レスポンスを読むとは
>>612 の最後の2行で言ってることでよいということなのでしょうか?
それともfreadの使い方や使う関数間違ってますか?
>>623 向こうが送ってきたデータは読み取り用のバッファに消えずに蓄積されると思いなさい
625 :
612 :2013/12/03(火) 07:21:36.31 ID:Fpfk36ag
>>624 なるほどだいたいイメージが掴めました
レスポンスが必要なくてもfreadは使ってどんどんデータを消していくってことですね
レスポンスが必要ない場合
>>612 のコメントとechoを外した感じのソースでやろうと思います
ありがとうございました
https://paiza.jp/poh/ec-campaign 言語 最速実行時間 最遅実行時間 受験数
Java 0.07 秒 0.59 秒 293
PHP 0.01 秒 9.08 秒 295
Ruby 0.02 秒 9.47 秒 274
Python 0.08 秒 9.61 秒 302
Perl 0.02 秒 8.56 秒 183
C 0.01 秒 0.08 秒 205
C++ 0.01 秒 2.05 秒 453
C# 0.04 秒 2.95 秒 159
PHPってCやC++と同じくらい速いんだな(驚愕)
Ruby(笑)Python()
多言語を貶す人ってちょっとおかしいよね。
628 :
nobodyさん :2013/12/03(火) 16:42:06.00 ID:c8Q9t4rO
formからボタン押して、PHPでファイルのダウンロードダイアログを出した時って、 画面の更新されないけど、これってダウンロードダイアログ出さずに意図的に行えないですか? ダウンロードとは全く関係ない、formからのボタンを押した際、画面の更新無しで処理進めてほしいんだけど。
>>626 あの記事に450人は釣られたってことか
何やってんだか
>>626 CとC++は2.5倍の試行回数じゃないか?
PHPがJavaやC#に勝てるはずないじゃん。 実行時に文法チェックしてんだから。
定期的にこういう話題出るけどもう秋田
633 :
nobodyさん :2013/12/04(水) 03:38:21.32 ID:RQaJn6C5
捨て台詞を標準エラー出力に吐いてプログラムを終了する関数ってありますか?die()みたいな感じのです fputs(STDERR,"aa")を使って自前で作るしか無いですかね?
die()
637 :
nobodyさん :2013/12/04(水) 12:34:33.47 ID:PBvUKlOP
>>628 ですけど答えがわからず困ってます。
他で聞いてみますありがとうございました。
ってダウンロードの話じゃないのか Ajaxで
rssで画像表示させたいんだけど、simplexmlって関数じゃ出来ないかな?
言語も関数も関係ないわ。RSS 仕様 でググれ。
PHPの関数なら実装しかねないからなそういうの
文字列の加工は正規表現でいいじゃん 正規表現使えるならxml関数使う必要ない
645 :
nobodyさん :2013/12/06(金) 04:34:47.39 ID:KKHOJGxq
file get contentsをログインが必要なサイトで使いたいです ログイン画面でurlにidとpasswordのパラメータ含めてログインして、目的のページに遷移してからfile get contentsしてもログインしてない状態のhtmlを取得してしまいます 何か知恵を下さい お願いします
第三引数のcontextを作成してクッキー食わせろ まぁcurlでやるのがより簡単だろう
647 :
nobodyさん :2013/12/06(金) 09:59:38.77 ID:Z8WCy1ZX
超初心者ですみません。 ファイルを読み込んで、ファイルの中身が10文字以下の場合、アラートを出したいのです。 以下のようにしてしまうと、一行が10文字以下の場合になってしまいます。 hogehoge.txt全体で10文字以下の場合にアラートを出すようにするには、どのようにしたらよいでしょうか? $file_name = "hogehoge.txt"; $fp = fopen($file_name, "r"); while ($line = fgets($fp)) { アラートを出す処理; } fclose($fp);
10文字ってのが10バイトでいいならfilesizeでやれば? そのコードでやるならwhile内で文字数カウントしてループ外でアラートを出せばいい
whileの後
マルチバイト文字は考慮するのかうんぬん
>>647 $data=file_get _contents("./hoge.txt")
if(strlen($data)<10){
echo "alert";
die();
}
マルチバイト考慮するならmb_strlenを使う 10文字以下なので<=もしくは11にする echoのあとにdieとか冗長die('alert')でよい
curlでcookie使う時にCURLOPT_COOKIESESSIONってcookie受信する時はtrueで 送信する時はfalseでいいですか?
654 :
nobodyさん :2013/12/06(金) 13:21:29.61 ID:KKHOJGxq
>>646 ありがとうございます
できればそのcurlでの具体的なプログラムを記述して頂ければ幸いです
curl php cookieとかでぐぐれよ
656 :
nobodyさん :2013/12/06(金) 13:32:47.14 ID:KKHOJGxq
ごめんなさい ググってきます
657 :
nobodyさん :2013/12/06(金) 19:59:55.57 ID:bFPQLUri
質問です curlでログイン処理をしているのですが、ログイン失敗してもエラーが出ません。 どうしたらエラーがでますか?よろしくお願いします。
>>657 ID変わってるが
>>654 だろ?
>>1-4 を読め。テンプレうめろ。ルールも守れないなら人に頼るな。
自分の仕事を人に無料で書かせてコピペで済ませようとすんな。
659 :
nobodyさん :2013/12/07(土) 02:33:21.08 ID:f05rVb/u
>>658 656ですけど657は私ではありませんよ
660 :
nobodyさん :2013/12/07(土) 02:52:12.25 ID:epRjxDfQ
いや私が656です 自己解決しました
ログイン失敗してもエラーが出ないってそりゃそうだろ PHP側で問題がおきてるわけじゃないしな 相手サイトのログイン失敗時のメッセージでもソース中から探し出すしかないわな
662 :
nobodyさん :2013/12/07(土) 08:01:32.52 ID:Pb/7pHpN
みなさん騙されないでください、私が本人です。 違う場所で質問して回答貰えたのでここでの回答受付は終了します。
つまらないし誰もそんな低レベルな自演煽りなんて相手にしないのでさっさと帰りな
回答受付って何様こいつ。心配しなくても誰も答えんよ。
header関数でページ遷移したいのですがうまく行きません。 a.phpからb.phpに遷移したいのですが、遷移せずにhtmlとbodyだけが出力された状態になります。(エラーメッセージは出ません) しかし、不思議なことにローカルホスト上では正常に動きます(遷移します) わかる方いたら教えて下さい!
お前はそれで質問してるつもりなのか?
しまった、ここにはゴミクズしかいなかったか
arrayの内容がkey=>valueの配列でkeyがstringであった場合において そのkeyが存在する要素が先頭から何個目のindexなのか調べる関数は あるのでしょうか? 無いから大人しく回そうかと思います。
連想配列として使うなら順序が保証されない前提でプログラムした方がいい。 順序が必要ならキーを別の配列に入れておくか値をオブジェクトにして順序をつっこんでおいた方がいいんじゃないかな。
671 :
669 :2013/12/08(日) 16:34:31.90 ID:???
無いから → 無いなら
>>670 構造体だとindex管理が面倒なのでclassで作った方がよさそうですね
ありがと
連想配列に順序なんてねぇよなw
PHPの配列は順番保証されるよ この程度も知らんでおまえらよくやってるな PHPしかやってないからかえってPHPのことがよくわかってないのでは?
何のために順番保障してんの?
順番が保証されないと思ってるのは
>>672 だけか。。がんばりな。
言語仕様マジ重要。
PHPの配列使う上でその違いがユーザになんか影響あんの?
順序保証がないとksortも無意味になるな
>>678 活用できる場面で活用すれば、レスポンスがはやくなる。
681 :
nobodyさん :2013/12/09(月) 15:20:10.15 ID:qNQlBpJg
GETで値を取得して、比較する文がたくさんある場合、 一度GETを変数に取り込んで、 その変数で比較した方が早かったりするの? めんどくさいから、すべてGETのまま比較してるんだけど、 一般的にはどちらでするの?
見やすい方で
>>681 速い・遅いって、100万回比較して1ms違うかどうかレベルの話でしょ。
なので
>>682 で。
>>681 まず最初に、get で期待どおりに値を取得できてるかどうかを判定するのが基本。
isset とかでね。
だから、そんときに別の変数に代入されるな、普通は
普通はこう変数に取り込むでしょ。速さは知らないが。 $val = isset($_GET['key']) ? $_GET['key'] : '';
>>685 それだと空文字列のパラメータが渡されたのか、パラメータ自体がなかったのかわからなくなる
>>686 たしかに、そうだね。
しかし、いずれにしても、空文字の場合には、エラーとして弾けば問題ないよ。
まあ、要件と実装の方法にもよるけど。
688 :
nobodyさん :2013/12/09(月) 19:33:11.49 ID:qNQlBpJg
$hennsuu = HtmlConvert($_GET['nantoka']); おらはゲットダイレクトしない場合は こんな感じで、関数を5つくらい作って パターンによって取り込んでる。 isset使ったことなかった。 速さは変わらないのか。今のままでいいかな。 なんかGETダイレクトだと、イメージでは 遅くなる感じしたもんで。どもでした。
>>688 論点がずれるけど、それだと $_GET['nantoka'] が存在しない場合に、
noticeエラーが出るよ。その点でよくないと思う。
組み込みのFilter使ってる
issetって不思議な関数だよな それに渡すときだけはそれがなくてもNoticeにならない
>>691 別に自前の関数でも
func($foo = '') {
…
}
とかしとけばNULLを渡してもNoticeにはならんだろ
>>691 issetやemptyは関数ではなくて言語構造だからですよ。
>>692 $ary['存在しないキー'] 使った時点でNoticeでるよ
なんでベンチとらないんだろ
みんながやってるのと同じことを選んでで安心を得たいだけなんだから、 自分で確認するわけが無い。
ベンチの問題じゃないよこれは。
698 :
nobodyさん :2013/12/10(火) 17:13:14.99 ID:ZXq0cpwg
class none{ var hairetu = array(); } $h = new none; $h->hairetu['newkey'] = ''newvalue; こういうことをしようとすると Cannot use object of type stdClass as array と怒られるわけですがnewkey付きで要素は追加できないの?
699 :
698 :2013/12/10(火) 17:24:01.12 ID:???
$h->hairetu[] = ''newvalue; ←これだと問題ないけど $h->hairetu['newkey'] = ''newvalue; ←こっちだと arrayではなくてobject(stdClass)になるからだめなんだね classを違う書き方することにします。
>>698 うちの環境(5.3でも5.5でも)だと普通にそのソースで通る
ダブルクォーテーションは足した
何か他間違えてるよ
>>698 うちでは問題無いけど。
PHPのバージョンいくつ?
>>698 通らないはずがない
別のミスはないか?
703 :
698 :2013/12/10(火) 18:05:04.88 ID:???
$php5 -v PHP 5.5.6-1 (cli) (built: Nov 21 2013 09:55:16) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies $time = time(); $h->hairetu[] = $time; ←これだとvar_dumpはarray()だしvalueはintだけど $h->hairetu[$time] = 'value';←これにするとarrayではなくobject(stdClass)になって キーがstringにになってしまう。$timeを123の数字に置き換えても文字列になるから 仕様なのだと思う。
704 :
698 :2013/12/10(火) 18:10:49.00 ID:???
あ、ごめん 確かにこっちに書いた部分だと通ったw 出直してきます!
var hairetu →var $hairetu
706 :
698 :2013/12/10(火) 18:31:47.41 ID:???
同じ部分でjsonを使っていたので何となくjsonで読書していたのが原因でした。 お騒がせしました。 夕食後にserializeにしたいと思います。 class none { var $hairetu = array(); } class s { var $Value = 'value'; } $s = new s(); $h = new none; $time = time(); $name = 'hairetu'; $h->{$name}[$time] = $s->Value; var_dump($h); $json = json_encode($h); var_dump(json_decode($json));
仕様なのだと思う(キリッ
708 :
nobodyさん :2013/12/12(木) 18:44:48.26 ID:fJCy4SYM
PHP4で作ってたサイトをPHP5環境に移行させてます 変数を <?=変数?> で表示してたんですが、PHP5で表示されなくなりました この書き方は廃止されたのでしょうか? また廃止されていた場合、 <?php echo 変数; ?> の書き方しかないのでしょうか? ググりたいんですがなかなかこの点について書いてるサイトが見つからず困ってます
>>708 php.iniのshort_open_tag
ビルド時に無効にしてたら効かないかも
>>710 大垣が完全論破されたってことでいいの?
712 :
nobodyさん :2013/12/12(木) 20:07:51.06 ID:fJCy4SYM
>>711 実務上ではそうみたい
バインドを使わないのはゴミって言われたに等しいな
php5.4~ではShort_open_tag=0でも<?=が使えるらしいよ
あっちでやってくれ
大垣ってほんとウザイな
大垣ってなんでそこまで必死になれるんだろう 功績は認めるけど、性格が小物すぎる
わざわざこんなスレで叩いてるやつも同一人物で必死に見える
721 :
719 :2013/12/13(金) 16:28:40.67 ID:yL3mhT89
ちげーよ ID出しておくわ
>>720 わざわざって、2chでPHP関連の総合スレ的役割なのは、このスレしかないじゃん
俺からすると、別の場所で書く方がわざわざ感を感じるけどな
PHP関係なくね? それを言うなら2chで大垣関連の総合スレがこのスレだからここでやるおだろ
何をしたいんだか。 どこがどうおかしいのかの説明がなければ意味不明だぞ。
727 :
nobodyさん :2013/12/13(金) 17:27:51.83 ID:yL3mhT89
>>724 さすが徳丸さんだな
とてもわかりやすい解説してるし、意見を押し付けていない
何より徳丸本と大垣本も解説してくれたのはよかった
エスケープエスケープうるさいんだよ
わざわざここに書いて賛同を得るような話題でもあるまい。 そもそも質問じゃねーから、勝手に総合スレ扱いするのが間違い。 俺様の気になった事柄がみんなの話題になるとうれしいだけだろう。
つうか名前出してるやつ叩くなら同じ土俵に上がれよ ツイッター参戦すればいいだけでここは場違い
大垣はどうでもいい このスレの回答者も平気でプリペアてかバインド使わないで良いとか言うから心配だ
昔はそんなもんなかったからな
>このスレの回答者も平気でプリペアてかバインド使わないで良いとか言うから そんなの見たことないけど無理して妄想ででっちあげしなくてもいいのよ
734 :
nobodyさん :2013/12/14(土) 13:34:25.00 ID:N7nQofZQ
質問させて下さい。 cmsを使わずに、phpのみのプレーンでサイト製作中なのですが、 cmsのような投稿記事の仕組みを実現したいと思っています。 トップページ(index.php)に「お知らせ記事」の最新1件だけ、表示させて、「全件見る」のリンクから「お知らせ記事」のアーカイブページ(archive.php)に全件表示させたいです。 それで記事なのですが、archive.phpにソースを追加していくのではなくて外部ファイル(info.inc)に記述してそれを読み込む形にしたいと思っています。 info.incには <div class="post num001"> <h3>お知らせ1</h3> <p>文章。文章。文章。文章。文章。</p> </div> <div class="post num002"> <h3>お知らせ2</h3> <p>文章。文章。文章。文章。文章。</p> </div> ・・・続く といった形で、お知らせ記事をエディタで追加記述しようと思っています。 ・index.php、・archive.php、・info.inc にどのような構文を書けば実現できるでしょうか?宜しくお願いします。
>>734 info.inc のフォーマットにもよるけど、上のような内容なら、index.php では空行まで読めばいいんじゃないかな
もちろん、require は使えないから、ファイルを読む関数を使って echo で出す感じになると思う
archive.php では単純に require すればいいと思う
736 :
nobodyさん :2013/12/14(土) 13:46:08.86 ID:N7nQofZQ
>>735 早速のご回答ありがとうございます。
しかしながら、php素人でして、具体例的なソースコードを教えていただければ幸いです。
>>736 素人でも書いてみなよ
そしたらコメントつけるからさ。他の人もコメントしてくれるよ
ただ教えてもらうより、学習の能率が断然違う
>>736 >>1-5 読め
お前が書いたソースを貼れば校正や意見はもらえる。
てめえの仕事を人に無料でやらせようとすんな。入門書読んでから取り組む程度のことができないなら大人しく人に金払ってやってもらえカス。
皆さん、こういうカスは職業プログラマの質を下げ単価を下げる原因を作り技術者を安くこき使うことしか考えないカスな輩ですので相手にしないようにしましょう。
739 :
nobodyさん :2013/12/14(土) 23:01:51.81 ID:N7nQofZQ
>>738 info.incには
<!--Post STA-->
<div class="post num001">
<h3>お知らせ1</h3>
<p>文章。文章。文章。文章。文章。</p>
</div>
<!--Post END-->
<!--Post STA-->
<div class="post num002">
<h3>お知らせ2</h3>
<p>文章。文章。文章。文章。文章。</p>
</div>
<!--Post END-->
とコメントをいれ、
archive.phpには
<?php
$src = file_get_contents('
http://URL ');
$src = mb_convert_encoding($src, 'UTF-8', 'auto');
$res = preg_match('/<!--Post STA-->(.*)<!--Post END-->/su', $src, $mch);
echo $mch[1];
?>
こんな感じでなんとか表示させることはできました。
あと、indexの最新が分かっていない状況です。
修正やご指南宜しくお願いします。
740 :
nobodyさん :2013/12/14(土) 23:58:11.16 ID:3rH+tT3X
まず プログラムは魔法じゃない つまり 指示したようにしか動作しない つまり 1件だけ取り出したいなら 基本的にはそれを区別して取り出せるように保存する必要がある 細かいところにまで行き届いてるプログラムには一々そういう手間をかけてこさえてあるんだよ
>>739 自分である程度やったなら少しアドバイスする。
最新をinfoの上に追記するか下に追記するかでプログラムは変わるが、お知らせなら上に追加して行く方がいいだろう。
上に追加するならstrpos関数で最初に出てくる<!--Post END-->の位置までを取得してsubstrで一つ目の記事を取得するといい。
$latest = substr($text, 0, strpos($text, '
<!--Post END-->'));
みたいな感じだな。
保存フォーマットがスマートじゃないが手書きなら仕方あるまい。
>>739 ではヒントを
正規表現の (.*) の部分は greedy match といってなるべく長い文字列にマッチするようになっている
abcabcabc に a(.*)c をマッチさせると、 bcabcab がひっかかる
>>739 自分である程度やったなら少しだけアドバイスしてやる。
最新をinfoの上に追記するか下に追記するかでプログラムは変わるが、お知らせなら上に追加して行く方がいいだろう。
上に追加するならstrpos関数で最初に出てくる<!--Post END-->の位置までを取得してsubstrで一つ目の記事を取得するといい。
$latest = substr($text, 0, strpos($text, '
<!--Post END-->'));
みたいな感じだな。
保存フォーマットがスマートじゃないが手書き更新で素人でもできるが目的があるなら仕方あるまい。
だが、なぜURLから読み込むのとかarchiveはそんなプログラム書く必要あんの?とかツッコミどころは多すぎるからもう身近な人にレビューしてもらえよ。あんた一人で納品は無理だわ。
744 :
nobodyさん :2013/12/15(日) 01:23:13.20 ID:ASKbBAVd
>>739 大人しく聞いてたらアンタ何様?趣味で作っているサイトだから納品とか言ってもねーこと勝手に述べてんじゃねーよ。
たかだかphpごときで、2chで素人相手にえらそーにして喜んでるレベルじゃ、現実社内で誰にも相手されて無い日陰もんのさびしー奴なんだろな。
ろくに教える事もできないんだったら黙ってろよ。無視すればいいだろ?お前みたいな存在が、掲示板の質を落とすんだよ。
注意したいことがあっても、いい大人だったら言葉使いくらいちゃんとしろよ。
「カス」とか言ってる事が低俗な人間だぞ。まあ頑張れ
これがあの煽り教えて君か
教えて君がキレたな。カス程度言われてきれるなら2chにくんなよカス。 たかがそのpho「ごとき」だってさ。たかがなら人に聞かずにひとりでやれば?
>>739 archive.php:
<?php
$src = file_get_contents('./info.inc');
preg_match_all('/<!.+?>(.*?)<!.+?>/s', $src, $m);
foreach ($m[1] as $v) {
print($v);
}
index.php:
<html>
<body>
<?php require './archive.php'; ?>
</body>
</html>
POST STA☆
>>739 CSVかDBにしなよ
正規表現で無理やり取得する珍回答が続いてるが
info.inc を直接修正したい、という要求があるんだろう その要求自体がなんだかなあと思わないでもないが、分からないでもない
趣味とか言い訳してたがそう言う要求がある時点で趣味じゃないだろ。趣味や勉強ならDB使うわな。 やっぱ教えて君で人に仕事させようとするカスだな。もうスルーしよ。
PHP素人が手を出すようなことじゃない やりたいなら場数を踏みなさいって言ってあげればよかったのに
>>750-751 趣味なんだから自分からの要求だろ
自分からの要求は容易に変えられる
CSVに変えるのが一番まとも
754 :
nobodyさん :2013/12/15(日) 13:55:45.36 ID:NrEa4Wnc
phpでmysqlに接続したいけど、こんなエラーが出る。 Error:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) phpのソースはこれ。 <html> <body> <?php $link = mysql_connect('localhost:/tmp/mysql.sock', ‘root’, ‘password’); if (!$link) { die('Error:'.mysql_error()); } $close_flag = mysql_close($link); ?> </body> </html> コマンドラインでは接続できる。 # mysql -S /tmp/mysql.sock -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.5.31-log Source distribution 環境はCentOS 6.4でhttpdもphpもyumで入れた。 なんでこんな簡単そうなのが動かないんだろう?
>>754 エラーメッセージの13はpermission deniedだから、その辺を疑ってみては?
httpdユーザから/tmp/mysql.sockにアクセスする権限があるかどうか、とか
>>755 サンキュウ。一応誰でもアクセスできるはずなんだけど。勘違いしてるかな?
# ls -la /tmp/
drwxrwxrwt. 13 root root 4096 Dec 15 05:03 .
dr-xr-xr-x. 23 root root 4096 Dec 15 03:38 ..
…
srwxrwxrwx. 1 mysql mysql 0 Dec 15 05:03 mysql.sock
httpdはユーザapacheで動いてる。
>>755 apache使わずに直接phpでならアクセスできるんで、
apache側の権限の問題みたい。
とりあえず、ありがとう。
restart
restartしてもダメだった。 httpd.confもいじるところがない。困った。 php単体では動くからスレ違いだよね。
$link = mysql_connect('localhost', ‘root’, ‘password’);
だから、php直なら動く。 apacheからだとダメ。 明示的にソケット名を書いても書かなくても同じ。 そのくらいは全部試してるよ。
>>761 Secure libuxがonとかない?OSの環境が詳しくわからないとなんとも言えないが。
763 :
nobodyさん :2013/12/15(日) 20:31:36.75 ID:y5Xmkgcg
CSVはないわ ,使うだけで面倒な手間かかるとかないわー
>>754 mysql_connect('127.0.0.1:/tmp/mysql.sock'...で
765 :
nobodyさん :2013/12/15(日) 22:30:06.88 ID:r6HNRZ2+
>>759 centosでyumで入れた、php.iniの
mysql.default_scoket =
は空。空だと、mysqlの設定に従う。
こっちはデフォルトだと
/var/lib/mysql/mysql.sock
/tmp/mysql.sock
になってるってことは、どっかの設定をいじってるか、
他の環境で書かれた見本をそのまま使ってしまったか。
sq.safe_mode=1の可能性も微レ
ソケット名は制御できてる。明示的にmy.cnfもphp.iniも書いた。 そもそも最初の質問時、mysqlコマンドでソケット名を明示的に書いてるよ。 そんで、やっとわかった。SELinuxが邪魔してた!!! /etc/selinux/configでdisabledにしてやった。ざまあみろ SELinux最低。あの海外って奴も最低。ろくなドキュメントも資料もなしで こんなダメダメ機能作っちまうんだから。
ID出してなくて態度も悪い質問者なのにな
初歩的なサーバ設定で躓いてましたか クリアできて良かったですな
>>767 だめなのはお前の頭だ
Windowsでも使ってろよ
バカはお前らだろ
ソケット名がどうしたとかrestartしろとか、見当違いの意見ばっか書きやがって。
何にもわかってないの、お前らだろ。
基本的な設定でつまずいた?その基本的な設定について想いもよらず、書いておいたソケット名も観ないで、
php.iniがどうしたとか、知ったかかましたのは誰だよw
そもそもこんなレベルのyohgakiってバカがPHP認定試験なんてやってる時点で
お前らPHPやろうどものオツムのレベルも知れるってもんだよw
http://bogus.jp/wp/?p=1452
ふーん。いろんな意味で乙
馬鹿が使っちゃいけないわけではないからな。
>>772 おまえのサーバ環境はここの住人にはわからん
誰よりもおまえが一番わかってるじゃんか
おい、何なんだよ、クソZendのサイトの重さは!! 一番模範にならんといかんのに、あんだけ重いと、 PHPで作ったサイトなんてゴミじゃないかと思うだろ
は?
780 :
nobodyさん :2013/12/16(月) 16:20:51.66 ID:AASW/wKp
誰かさ、IDE、Zend-Eclipse-PHP使った場合のPleiadesの反映の仕方しってる人いたら教えてくれない? 使ってる人PHPerいると思うんだけど 昔のEclipsePDTと設定方法変わってるようで出来ないんだけど
781 :
nobodyさん :2013/12/16(月) 16:23:13.48 ID:AASW/wKp
782 :
nobodyさん :2013/12/16(月) 22:30:47.92 ID:xJSmvJCz
こいつアフィikuraだろ
783 :
nobodyさん :2013/12/17(火) 15:03:14.51 ID:YSE5hBqx
785 :
nobodyさん :2013/12/17(火) 15:35:45.50 ID:YSE5hBqx
getっていうかQUERY_STRINGだな
file_get_contentsでリクエストしているプログラムでタイムアウトの検知が思うようにいきません。 php.iniのdefault_socket_timeoutの設定を30として、 30秒以上たったらタイムアウト処理をしたいのですが、 file_get_contentsがタイムアウトの判定をして戻り値が帰ってくるのがリクエストしてから60秒後になります。 なぜ30秒後ではなく60秒後になるのか理由がわかる方いましたらお願いします。
まずスレタイを読もう
789 :
787 :2013/12/17(火) 23:40:28.62 ID:3IDEqrk4
突っ込んだんなら答えてやれよ… 俺はhttpリクエストにfile_get_contents使ったことないから内部実装知らんし 使う気ないから調べる気もないから確認手順くらいだが。 iniに直接書いたんだよな?webサーバの再起動はしたよな? 直前でini_getしてみたか?タイムアウトの値はちゃんと変わってる? 変わってないなら書き換えたiniは正しい? ini_set使ってるなら権限あるか? ちゃんと反映されてるのにそうなるなら ソケットタイムアウトとリクエストタイムアウトの設定別なんじゃないか? 他の言語でもcurl関数でも別に設定できるもんだし。リクエストタイムアウトの方が60になってるとかじゃないの? 第三引数にstream contextでタイムアウト渡せるみたいだし、それも渡して見たらどうだい?
ピコーン 30秒指定して60秒になるなら15秒に設定すればよい
>>791 それでうまくいかない(60秒のまま)なら、設定すべき場所が違うってことだな。
しかしなんでPHPは設定ファイルが変に散らばってるんだ
設定ファイルが変に散らばってる・・・?
うちのPHPは設定ファイルが変に散らばったりしてないいい子だよ。
796 :
nobodyさん :2013/12/19(木) 08:48:51.27 ID:wgY346L5
【OS名】- 【PHPのバージョン】- 【連携ソフトウェア】- 【質問内容】PHPの設定方法を解説しているような書籍はないでしょうか? mbstring.languageを設定せず、mbstring.internal_encodingのみ設定すればどうなるか などがわかるようになりたいです
そこまで実験したいデータが整ってるなら実践すればいいのに ローカルにxamppでもインスコしてphp.iniいじればいいだけの話よ
799 :
nobodyさん :2013/12/19(木) 19:55:29.39 ID:+TJKY+xb
$opts = array(
'http'=>array(
'method'=> "GET",
'header'=> "User-Agent: Agent\r\n"
)
);
$context = stream_context_create($opts);
echo file_get_contents('
http://example.jp/ex.php ', false, $context);
上のようにUser-Agent(UA)などヘッダーを変えてサイトにアクセスしたいのですが、
アクセスするとUAが分かるサイトにアクセスしてもUAは「PHP/5.2.17」のままで、ヘッダーが変更されていません。
WindowsのPHPで試すと普通に変更されているのですが、
どうすればちゃんと変更されるか、おかしいかもしれない所を教えて下さい。
OSは多分Linuxで(ディストリビュージョンは分からない、)
PHPのバージョンはUAの通り5.2.17、
ホスティングサービスは「000webhost」です。
stream_context_createのユーザノートで、5.2系のバグだって言ってる人いるね ini_set(user_agent', ...しろってさ でもこれbtsでは見つからんね
PHPのリファレンス的な本てない? Webで調べられるんだけど、どうも本がないと落ち着かない性分で。
PHPのリファレンス的な本があるかないかだって Webで調べられる
これはひどい
>>801 たぶんない
本にすると広辞苑も真っ青の厚さ
印刷すればいい
持ち歩くの大変そうだな 3kgぐらいにはなるんじゃね?w
808 :
nobodyさん :2013/12/21(土) 16:54:16.17 ID:Fs+OLeyH
艦橋変数を取督したかったんだけど、$_ENV だと 中身が空っぽで、 getenv() でならちゃんと取れた。 $_ENV って廃止にでもなったの?
わざとなのか知らんが誤字がうざすぎる
811 :
nobodyさん :2013/12/22(日) 10:52:42.43 ID:ZRst6cJ1
>>800 stream_context_create()を実際に使いたい所では
User-AgentだけでなくPOST送信や他のヘッダも送信したかったので、
ホスティングサービスを変えてしまう事で解決しました。
他のPHP5.3系のホスティングで同じようにテストしても
UAが「PHP/5.3.20」になっていた物があったので、バージョンのせいでは無いと思います…
ですが、ありがとうございました
>>811 デフォだとUAは空かPHPやから、バージョンまで入ってるのはどっかで
設定されとんのやろな
管理者に聞いてみるのがはやそうと思う
function ikioiSort( $a, $b ) { $var="ikioi"; if ($a[$var] == $b[$var]){return 0;}return ($a[$var] < $b[$var]) ? -1 : 1; } function timeSort( $a, $b ) { $var="time"; if ($a[$var] == $b[$var]){return 0;}return ($a[$var] < $b[$var]) ? -1 : 1; } $s = array( array( 'id' => 1, 'ikioi' => 0, 'time' => 30 ), array( 'id' => 2, 'ikioi' => 0, 'time' => 10 ), array( 'id' => 3, 'ikioi' => 56756, 'time' => 10 ), array( 'id' => 4, 'ikioi' => 87, 'time' => 10 ), array( 'id' => 5, 'ikioi' => 86, 'time' => 90 ), ); usort($s, "timeSort"); usort($s, "ikioiSort"); timeとikioiで連想配列を二段ソートしたくてusortを二回かけてみたんですけどうまくいきませんでした。 上の例だとikioiとtimeが最小のid=>2が一番上に来てほしいんですがどうすればいいでしょうか??
IDないね
815 :
nobodyさん :2013/12/28(土) 03:32:26.02 ID:ylfqKSgs
ゲーム・漫画作品の検索結果にAMAZONからリンクした画像を表示するシステムを組んだのですが ブラウザが広告非表示アドオン(Adblockなど)をかけている場合表示されません 自サーバー内にも画像は用意できるのですが、 弱小サーバーの趣味サイトですので、できるだけ転送量は減らしたいのです ユーザーにAdblockを外すよう促すのもユーザビリティ的に良いとは思えません ですのでAdblockがかかってる場合のみ、自前のサーバーからの画像を表示するようにしたいのですが、 アドオンの有効無効をPHPで判定することは出来ますか?
アフィ消えてユーザもよろこんどるやろ
818 :
nobodyさん :2013/12/28(土) 13:06:29.45 ID:0EjFEbqK
parse_url
820 :
nobodyさん :2013/12/28(土) 13:46:19.96 ID:0EjFEbqK
サンクス
$url = '
ttp:// 〜';
print_r(parse_url($url));
この後は?
$parseUrlArray[count($parseUrlArray)-1]
822 :
nobodyさん :2013/12/28(土) 13:59:16.82 ID:1zQ6eOqn
s|.*/||
823 :
nobodyさん :2013/12/28(土) 14:08:07.49 ID:0EjFEbqK
ごめん わかんないや 配列が表示されるんだけど、どうやって最後だけ表示するの? Array ( 〜〜〜
$arr = explode("/", $_SERVER["SCRIPT_NAME"]; echo $arr[count($arr)-1];
>>823 $URL = "
http://www. 〜";
$path_info = pathinfo($URL);
echo $path_info['basename'];//拡張子あり
echo $path_info['filename'];//拡張子なし
826 :
nobodyさん :2013/12/28(土) 19:15:36.85 ID:0EjFEbqK
>>824 >>825 ありがとう!
$URL = "
http://www. 〜";
$path_info = pathinfo($URL);
echo $path_info['basename'];//拡張子あり
echo $path_info['filename'];//拡張子なし
で逝った!
ご愁傷様
828 :
nobodyさん :2013/12/30(月) 01:27:01.42 ID:pS70nk2t
スレ違いかもしれませんがちょっと質問させてください。 海外サーバにお名前.comで取得したドメインを割り当てサイトをWPで構築しています。 そのサイトには、特定のホスト(プロバイダ)からアクセスした際には ドメインがうまく認識されず閲覧する事が出来ません。 具体的には、 http//hoge.com/ というテストサイトに対して e-mobile.ne.jp からならアクセス出来るのに ***.cims.jp からアクセスすると”ページが見つかりません。” というエラーメッセージが表示されてしまいます。 もうドメインをサーバに割り当ててから随分と時間がたっているのでドメインの浸透具合では無いと思うのですが・・・ 一体何が原因なのでしょうか?
ネームサーバーにでも問い合わせて調査したら?
IEならDNSミスの場合はページを表示できませんじゃなかったっけ ページが見つかりませんはWPのRoute設定がおかしいやもしれんぞ
hostとかdigとかで調べたら
まずは、3日待てw
>>828 Webサーバのログ見れば403か404か500かわかる
>>828 このスレにまったく関係ないのに質問してる所がたちが悪い
835 :
nobodyさん :2013/12/30(月) 19:48:41.84 ID:cOhuElU4
キレやすい若者
断り入れると許されるのか、斬新だな
839 :
nobodyさん :2013/12/31(火) 22:34:55.40 ID:8qYMp9pv
>>838 ちんぽ も アナルも小さいおっさんだなw
断れば許されるかもしんないけど、いきなりフルスロットルの正義面はやりすぎやろ せめて解決まで本性隠すべき
841 :
nobodyさん :2014/01/01(水) 06:28:54.74 ID:JfNBMGF/
ページャーを作っています。 1ページに20項目表示(0〜20番目)、$_GET['page']の値が1なら21〜40、といった感じで SQLで取得しようとしています ですが、以下だとうまく取得できません。行数が0になっているようです。 下から三行目を $query = 'SELECT id , comment , time FROM db WHERE 1 = 1 ORDER BY `id` ASC LIMIT 0 , 20'; とLIMIT ?をLIMIT 0とすればうまく動くのですが、どこが間違っているのでしょうか? $queryに直接 ・・・ LIMIT' . $_GET['post'] * 20 .' , 20'; と代入するのは避けたいです。よろしくお願いします $_GET['post'] = 0; /* デバッグ用。任意の数値が入ります */ $server = "localhost"; $mydb = "db"; $usr = "root"; $pass = ""; $pdo = new PDO("mysql:dbname=" . $mydb . ";host=" . $server, $usr, $pass); $query = 'SELECT id , comment , time FROM db WHERE 1 = 1 ORDER BY `id` ASC LIMIT ? , 20'; $st = $pdo->prepare($query); $st->execute(array($_GET['page'] * 20));
$_GET['post'] $_GET['page'] 存在しない変数*20=0
843 :
nobodyさん :2014/01/01(水) 07:21:24.17 ID:JfNBMGF/
>>842 ありがとうございます!
ですが、まだだめです。。。
エラーなどは表示されず、SELECTの結果が0行になってるようです。
>>841 以降は
foreach ($st as $key) {
echo 1;
}
などと書いています。
また、MYSQLで
SELECT id , comment , time FROM db WHERE 1 = 1 ORDER BY `id` ASC LIMIT 0 , 20
と流してみても結果はちゃんと返ってきました
844 :
nobodyさん :2014/01/01(水) 07:29:05.40 ID:JfNBMGF/
*20してる時点で数値になってると思うのだが
[test.php] test.php?page=n <?php $pdo = new PDO('sqlite::memory:'); $pdo->query('create table t (id integer)'); for ($i = 1; $i <= 100; $i++) { $pdo->query("insert into t (id) values ({$i})"); } $st = $pdo->prepare('select id from t limit ?, 20'); $st->execute(array($_GET['page'] * 20)); print_r($st->fetchAll(PDO::FETCH_ASSOC)); 設定かもしれないけど自分の環境じゃ普通に動くよ
>>846 Sqliteは型変換するからPHPコードではテストにならん
どうでもいいけど、queryの中身も一緒に出力してみりゃ一発だろう
851 :
nobodyさん :2014/01/02(木) 12:23:34.40 ID:tWkHXUai
質問のテンプレを省略させていただきます 【質問内容】 エラーメッセージの出力レベルに関する質問なのですが、開発中はE_ALL 運用中はどのような設定にするべきなのでしょうか?
>>851 回答を省略させていただきます
【回答】
>>851 E_ALLで開発したならE_ALLのままでいいんじゃない。
ただ、display_errors はoffにして、error_log でログを取るようにする。
854 :
nobodyさん :2014/01/02(木) 23:14:21.14 ID:tWkHXUai
>>852 テンプレの省略申し訳ない
>>853 ありがとうございます
display_errorsについてもう少し調べてみます
855 :
nobodyさん :2014/01/03(金) 03:48:55.99 ID:kSb+qF3j
swatchのようなログをリアルタイムで監視するスクリプトを作りたいのですが、 どういう関数なんかを使えば、ファイルを監視できるでしょうか?
while filesize sleep
857 :
nobodyさん :2014/01/04(土) 14:39:20.45 ID:2QKgJdHW
switch文について質問です。 case句に、変数を使って大丈夫でしょうか? 試したところエラーにはならなかったのですが、念のため、ご教示ください。 (簡易サンプル) $a = "a"; $b = "b"; switch($c){ case $a: echo "aaa"; break; case $b: echo "bbb"; break; default: echo "default"; } よろしくお願いします。
大丈夫だよ
859 :
857 :2014/01/04(土) 19:54:00.11 ID:YYfpyfup
>>858 問題ないみたいで良かったです。
ありがとうございました。
860 :
nobodyさん :2014/01/06(月) 15:07:22.97 ID:WdppQndE
Smarty3の最新版ってHTML5に対応してますか?
スレ違いです
えっ? だってSmartyスレ存在しないし、PHPじゃん
何がどうなってたらHTML5に対応してるってことになるんですか?
smartyスレがないのは使う人がいなくて必要ないからだよ そんな要らないものを使いたいなら頼ってこないでくれる? 自分で調べて頑張りなよ みんなそうしています
>>864 要らないものを使いたいんじゃなくて、スレを立てるほど困ることがないんだと思うよ。
スレ立ててしまえばいいんじゃね すぐ落ちるだろうけど
アホか、Smartyはデファクトスタンダードだろうが
過去にも何度かスレは立ってたけど、今はないね。
実際スレがあったとして、
>>860 のような質問をされても困るというか。
>>868 使ってる人まわりにいないや
生のPHPのほうが百倍マシだろ
smarty()
>>870 じゃぁどうやってViewを実装してるんだ?
<?php foreach ($a as $key => $value) : ?> <tr><td><?php echo $key; ?></td><td><?php echo $value; ?></td> <?php endforeach; ?> まぁFWでもviewロジックなんて普通にあるだろ
キャッシュ機能つきでもテンプレートなんて50行あれば余裕でかけるし viewの実装ごときにsmartyの導入なんて必要ないだろjk
>>872 とりあえずZendFWでも使ってみたら?
smartyを併用する!!ってブログは多々見つかるけど、普通に使ってみたらいい
>>860 パーサコアはデリミタの外側はほぼテキストと見なすので、テキストデータなら何でも - html5でも - 大丈夫です
プラグインの出力はxhtmlだったり4.01だったりします
やぁ〜れやれ ここはマスターベーション野郎どもが巣食ってるようだな
ジェネレーションギャップを感じるものすごいオッサン臭いのがきたな
</tr>
今時PHP使ってるのなんてオッサン老害だけだから仕方がない。 まともな人はほとんど皆Rubyに移行してしまったしね。
Rubyはないわ100%
Ruby 使ってる人にまとまな人がいるんだ!?
Rubyとかw
rubyはまじでないわ。メリットがない PHPやらないならJavaかC#だろ もしくはスマホアプリやゲームエンジン系
885 :
nobodyさん :2014/01/08(水) 00:15:45.37 ID:KwLq/Ik2
rubyとPHPはメリットがないよなあ
PHPは仕事でもバリバリ使ってるが ちょっとしたバッチ作るときはこの上ないほど最強
PHPでバッチねぇ…ナンカチガウ それならPerl使うな
perlはさすがにないな
889 :
nobodyさん :2014/01/08(水) 10:09:38.08 ID:KwLq/Ik2
perlかpython100歩譲ってtclかrubyだな phpはない
>>889 独り言を書くのはやめましょうね。
質問をするスレですよ。
バッチなんてどの言語でもいいわ
Perl利用者の高齢化問題
他言語の質問スレでこんなこと書く程度のやつだけ見て perl利用者を悪く言うのは他の人たちに失礼ですよ。
895 :
nobodyさん :2014/01/08(水) 16:31:50.53 ID:KwLq/Ik2
tcl,ruby,phpは基本的にインスコされてないからなあ
PHPはない、とか言ってるヤツ、なんでこのスレに来るの? ツンデレってやつか? ほんとはPHPを愛してるんだろ(笑)
phpが入ってたら使ってもいいけど入ってないからな 自分で使う処理ならなんでもいいけど ある程度広く使わせるものならphpはない バッチ処理での話だけど
他人にわざわざインスコしろと
他人って別にLinux管理者だろ。 1コマンド3秒ぐらいどうってことないだろ。
そういう問題じゃない いらんものをインスコさせるなということ
最初からインスコされてるという理由で言語を選ぶのかおまえは。 他に重要な要素があるだろ。
お前全く話を理解してないだろ? 自分で使う分にはいいって言ってんじゃん 他人にばら撒くようなやつでは 最初からインスコされてるというのは重要であり phpでバッチとかどう考えても親切じゃない
だから言ってるだろ、ここはバカな奴らしかいないんだって ゆとりの底辺集団しかいないんだよ
906 :
sage :2014/01/08(水) 21:04:35.31 ID:???
functionは実行していなくてもincludeすると処理時間に影響するんでしょうか?
他人にばら撒くってなんだー バッチだよな?ツールの話してないよな? PHPを使ってるWebサーバ以外で動かすバッチをPHPで書いたら 普通の会社ではただの嫌がらせ
>>906 するかしないかで答えたら、する
ただ、どれぐらいするかは量によるとしか
ほとんどの場合は気にするほどではない
windowsのphp-cgi超便利だな、バッチ書くのに最適
俺はバッチとかツール書く時はJavaだな 実行時に文法エラー起きるのは耐えられん
バッチ程度のコード書いて文法エラーとか
>>907 アプリケーションの設定とかバッチですんだろ
インストール〜初期設定なんかの環境構築に使うな
914 :
nobodyさん :2014/01/09(木) 00:23:03.46 ID:GwAoR65D
$r = file_get_contents($url); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $r = curl_exec($ch); curl_close($ch); この二つがあった場合、何故か一部のサイトだと 後者のcurl_exec()では空文字が返ってきます。 接続自体は成功しているみたいなんですが空文字です。 file_get_contents()の方は普通に文字列が返ってきます。 curl_setopt()のパラメーラに何か不備がありますか? まったく問題無く文字が入っているサイトもあるのですが…
915 :
914 :2014/01/09(木) 00:27:58.27 ID:???
恐らくアクセス先が転送されている 場合の問題だと思いました。 お騒がせしました。
916 :
nobodyさん :2014/01/09(木) 03:28:50.53 ID:nfYPkA56
ヴァーチャルドメインでドメイン毎に別々の php.ini を使い分けることはできますか? どうやったらいいでしょうか?
918 :
nobodyさん :2014/01/09(木) 03:55:44.61 ID:nfYPkA56
>>917 早速のご回答ありがとうごさいます。
おーこれでいけるなって思ったら、よく読んだらCGIモード専用なんですね(泣)
初期設定ってbashじゃだめ?phpのような大げさなものを持ち出すほど複雑な初期設定なの?
>>910 不安ならlint使えば?
インストーラーがやることに初期設定が含まれてだな
921 :
nobodyさん :2014/01/09(木) 05:56:11.90 ID:GwAoR65D
なんか糞スレあげまくってる阿呆いるなと思って他のスレ見てたら どこも古参スレばかりだな 2ch離れ加速しすぎワロタ もはやこの板ってこのスレのためだけにあるようなもんだな
>>910 バッチにjavaって一番ありえないだろ
文法エラーなんて先にチェックしろよ
>>913 インストーラーなら
その鯖で使う予定の言語なら何でも良いよな
インストーラーがその言語も入れるなら考える必要あるけどさ
>>924 自分の環境も書かないで 「よく読んだらCGIモード専用なんですね(泣)」 とか書いてるバカだから
触らない方がいいよ。
今頃になって CVE 2012-1823 の攻撃がモリモリ来てるわ うちだけかな?
927 :
nobodyさん :2014/01/11(土) 00:30:15.92 ID:jaRfR0WQ
stream_socket_enable_crypto() が成功しません 実際のコードはこのようにしています $modes = array( STREAM_CRYPTO_METHOD_TLS_CLIENT, STREAM_CRYPTO_METHOD_SSLv3_CLIENT, STREAM_CRYPTO_METHOD_SSLv23_CLIENT, STREAM_CRYPTO_METHOD_SSLv2_CLIENT ); stream_set_blocking ($fp, true); $len = count($modes); for ($i=0; $i<$len; $i++) { // すべてエラーになる if (stream_socket_enable_crypto($fp, true, $modes[$i]) === true) { $success = true; break; } } stream_set_blocking ($fp, false); どなたか解決方法がわかる方お願いしますorz
928 :
927 :2014/01/11(土) 00:31:13.10 ID:jaRfR0WQ
補足です phpinfo()ではOpenSSLは以下のようになっています openssl OpenSSL support enabled OpenSSL Library Version OpenSSL 1.0.0-fips 29 Mar 2010 OpenSSL Header Version OpenSSL 1.0.0-fips 29 Mar 2010 よろしくお願いします
929 :
927 :2014/01/11(土) 01:32:53.49 ID:jaRfR0WQ
上から順に、 STREAM_CRYPTO_METHOD_SSLv3_CLIENT error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number その他 stream_socket_enable_crypto(): SSL/TLS already set-up for this strea のエラーメッセージが出ています。 誰か助けてくださいorz
いや、そのメッセージ通りじゃないの
931 :
nobodyさん :2014/01/11(土) 16:07:30.22 ID:z+c05/rZ
932 :
927 :2014/01/11(土) 19:04:53.96 ID:jaRfR0WQ
どなたか助けてください
>>932 >>929 が上から順じゃないんだけど
STREAM_CRYPTO_METHOD_TLS_CLIENTはどこいった?
934 :
927 :2014/01/11(土) 19:49:35.40 ID:jaRfR0WQ
>>933 失礼しました。上から順は誤りです。
STREAM_CRYPTO_METHOD_SSLv3_CLIENT のみ error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number と出て、
残りの
STREAM_CRYPTO_METHOD_TLS_CLIENT
STREAM_CRYPTO_METHOD_SSLv23_CLIENT
STREAM_CRYPTO_METHOD_SSLv2_CLIENT
が
stream_socket_enable_crypto(): SSL/TLS already set-up for this stream
と出ています。
>>934 stream_socket_enable_crypto(): SSL/TLS already set-up for this stream
このエラー通りでしょ
最初が本当にSTREAM_CRYPTO_METHOD_TLS_CLIENTなの?
そうだとすると$fpを作ったところから書かないと意味ないよ
第一さ、ソースのほうもさ
ループで一個づつ設定する意味が理解できん
936 :
927 :2014/01/11(土) 19:57:07.38 ID:jaRfR0WQ
>>935 エラーの解決法はどうすればいいんですか?
ループで設定しているのはZendを参考にいていますけど・・・。
// If all is good, switch socket to secure mode. We have to fall back
// through the different modes
$modes = array(
STREAM_CRYPTO_METHOD_TLS_CLIENT,
STREAM_CRYPTO_METHOD_SSLv3_CLIENT,
STREAM_CRYPTO_METHOD_SSLv23_CLIENT,
STREAM_CRYPTO_METHOD_SSLv2_CLIENT
);
$success = false;
foreach($modes as $mode) {
$success = stream_socket_enable_crypto($this->socket, true, $mode);
if ($success) break;
}
if (! $success) {
require_once 'Zend/Http/Client/Adapter/Exception.php';
throw new Zend_Http_Client_Adapter_Exception("Unable to connect to" .
" HTTPS server through proxy: could not negotiate secure connection.");
}
937 :
927 :2014/01/11(土) 19:57:52.80 ID:jaRfR0WQ
他にどなたかわかる方、お願いします。
>>937 このプログラムより前に
ストリームにSSL/TLSを設定してしまってるってエラーに書いてあるでしょうに
ZendのソースはZend/Http/Client/Adapter/Proxy.phpのことかい? このソースだと$this->negotiatedをつかって 二度stream_socket_enable_cryptoで設定するのを防いでるよ
940 :
nobodyさん :2014/01/12(日) 01:18:23.34 ID:q2C1gqcI
【OS名】Windows 【質問内容】初歩的なことです phpを使った練習を始めたいんですけど、 <php? echo "Hello world!"; って書いて拡張子を.phpにして、 ブラウザ画面でHello world!って見たいんですけど、 php.netからどこで何をダウンロードすれば良いかわかりません。
942 :
nobodyさん :2014/01/12(日) 08:12:14.48 ID:z78hdL9x
vmに犬糞でも入れるのがベスト
943 :
940 :2014/01/12(日) 12:23:32.90 ID:q2C1gqcI
>>941 <?php あ、はい。
最新版の5.5で、VC11
64bitなので、x64
マルチ対応スレッドで、Thread Safe
をとりあえず選択しとけば困らないと思ってるのですが、
zipとは別に、debug.puckをダウンロードすべきですか?
debug.puckって何するんですかね?
944 :
940 :2014/01/12(日) 12:46:35.96 ID:q2C1gqcI
ダウンロードしたのを適当に展開して、 php.exeとかの.exeファイルを実行すると MSVCR110.dllがないから再インストールしろとか言われる
945 :
940 :2014/01/12(日) 13:20:02.29 ID:q2C1gqcI
>>944 の問題はググって解決したし、
>>943 はとりあえずdebug.puckも展開までした。
で、結局、
>>940 をどうすれば良いのかわからないです。教え下さい。
ウェンドウズなんかそういうのを一括でセットアップしてくれるインストーラなかったっけ?
Xampp入れて、htdocフォルダにファイルを置けば簡単なのに。
予想通りというか単にphpバイナリの場所がわからないってだけじゃなかったんだな apacheとかwebサーバが必要 どうせ設定出来なくて挫折するだろうからxamppでも入れときゃいいよ
950 :
940 :2014/01/13(月) 01:33:05.70 ID:mgMypIex
とりあえず、xampp入れました。 色々教えて下さった方々、ありがとうございます。
951 :
nobodyさん :2014/01/13(月) 15:03:01.17 ID:qnOxD/aG
[mysql5 apache cakephp2] バッチ処理中にテーブルロックをかけており、 バッチ処理中はクライアントからのselectをエラーとして返したいです。 こちらで試したものは、 innodb_lock_wait_timeoutを設定し、selectをタイムアウトさせる というものでしたが タイムアウトしませんでした。 (詳細) バッチ処理側でlock writeをしているので、 クライアント側からselectするとタイムアウトすると思われたのですが、 タイムアウトすることなく、ずっとクエリ結果を待っている。 さらに、クライアント側が結果を待っている間に、 バッチ処理側でunlockをすると、 クライアント側にphp実行時間オーバーというエラーが表示されます。 どのようにすればタイムアウト(もしくはテーブルロックを検知)できるのでしょうか?
クライアント側でinnodb_lock_wait_timeout
> innodb_lock_wait_timeout applies to InnoDB row locks only. A MySQL table lock does not happen inside InnoDB and this timeout does not apply to waits for table locks. バッチ処理入ったら自分でDB内にフラグ立てるのがいいんじゃない? SHOW ENGINE INNODB STATUSを元にビュー作ってもいいかしらんがめんどくさそう
>>953 毎回ロック状況を確認してからSelectはナシでしょ
タイムアウトするほど長いロックならサービス止めればいいんじゃ
つかTable lockがInnodbと関係ないなら普通にロックタイムアウトしないのかね?
955 :
nobodyさん :2014/01/13(月) 17:31:29.78 ID:M4MkuiNS
PHPをそれなりに勉強し初めて1年 なにか作ろうと2か月ぐらい大垣氏の「Webアプリセキュリティ対策入門」やWebの連載読みこんだ でもサーバの負荷とか全くわからないから、ストレッチングとかどのくらいやっていいのかとかもわからない 俺がWebアプリを勉強し始めたのは間違いかもしれない 公開することを前提としたら一番難しいアプリケーションの形態ではないのか……? 結構時間も金も本につぎ込んでしまったしどうにか物にしたいんだが、何かアドバイスないでしょうか先輩方
>>954 バッチプロセスのロックはタイムアウトで開放されると思うけど、待たされる方(SELECT)が任意にタイムアウトできるかは分かりません
ごめんね!
958 :
nobodyさん :2014/01/13(月) 19:23:17.22 ID:pkO99UiH
質問 演算子で+=ってのは俺もよく使うんだが Arrayでこれをやるとどういう意味になるの? $options += array('cache' => true); $optionsが空だったら$options['cache']がtrueになるだろうけど cacheが既に指定されていたら上書きされるの? と思って試してみたらされなかった。空っぽの時のみ追加という意味なのか?
$optionsに追加という意味 $options['hoge'] = true; $options += array('cache' => true); //$options['cache'] = true; print_r($options);
960 :
nobodyさん :2014/01/13(月) 19:54:20.80 ID:pkO99UiH
>>959 それは実際に確かめてわかったんだけど
$options['cache'] = false;
$options += array('cache' => true);
とした場合、$options['cache']はfalseから変わらないことを確認したので
2行目は$options['cache'] = true; とイコールではない。
じゃあ何なんだろう?というのが質問の意図。
961 :
nobodyさん :2014/01/13(月) 19:58:57.94 ID:pkO99UiH
配列の演算でぐぐったら、答はこれか
http://php.net/manual/ja/language.operators.array.php + 演算子は、右側の配列を左側の配列に追加したものを返します。 両方の配列に存在するキーについては左側の配列の要素が優先され、 右側の配列にあった同じキーの要素は無視されます。
つまり
$options += array('cache' => true); は
$options = $options + array('cache' => true); と全く同じだとすると
同じキーがある場合、元からある値が優先されるってことか
配列の結合はいつもarray_mergeを使ってたから、知らなかったわ
ただのバグだろ PHPにはよくある話だ つうかそんな気持ち悪い書き方すんな
>>961 値じゃなくインデクスを集合とみた演算になってるわけか
そこのユーザノートにも書いてあるけど誰得仕様だな
$lhs = [1, 2, 3];
$rhs = [4, 5, 6];
print_r($lhs + $rhs); # => 1, 2, 3
unset($lhs[1]);
print_r($lhs + $rhs); # => 1, 3, 5
>>955 サーバ負荷なんてユーザーが殺到してから考えればいい
大企業でも人を集めるのは相当難しいからね
965 :
nobodyさん :2014/01/14(火) 06:00:48.15 ID:ayHjqoXt
質問です。 ログインが必要なページのログイン後のページソースの一部を取得したいのですが file_get_contentを利用してソースまるごと取ってから正規表現で分解するしかありませんか? <span class="number">5</span> 一々全部取得せずに上記タグの5だけを取得したいのですが可能でしょうか?
967 :
nobodyさん :2014/01/14(火) 06:13:57.33 ID:ayHjqoXt
>>966 レスありがとうございます。
申し訳ないのですがどこのサイトかは答えられないです。
広告の管理画面で、一つの広告の成果を見るたびに毎回ログインが必要なサイトで
自分用として一括して見れるようにしようと思っています。
相手の構成次第だけど多分無理かなー
969 :
nobodyさん :2014/01/14(火) 07:11:21.44 ID:ayHjqoXt
>>968 ですよね・・・
ありがとうございました。
970 :
nobodyさん :2014/01/14(火) 07:35:35.69 ID:Sq6mFv9G
在日の親は、子供を朝鮮幼稚園・朝鮮学校に入れたいっていうのが多いのよ。 日本人からすると、なんでだろうって思うけど、日本人の学校では、民族の誇りを持った教育がしてもらえないんだそうだ。 よく分からないけど、流刑者の白丁が密入国して住み着いたじゃ誇りが持てないけど、日本人に強制連行された被害者なら誇りが持てる、とかそういう事かな?? 市原市の能満は昔から市街化調整区域で、新規の建物は造れないことになっている。 そのため土地が安く、日本の法律を無視した在日が、次々と移り住んできた。 そこで問題になったのが、朝鮮学校だ。なかなか許可が下りず、一番近くても千葉市にしかない。 そこで在日居住区の能満内にあった、能満幼稚園・市原小・市原中・緑高の保育士や教師を、朝鮮化する事を考えた。 今では通称在日幼稚園の保育士は全て朝鮮帰化人で、在日の父兄からの絶大な支持を受けている。 遠くからでも、わざわざ通称在日幼稚園に入園させたいという在日の親は、後を絶たない。 この在日幼稚園卒園者はほぼ朝鮮系の帰化人と在日だ。
>>967 file_get_contentsでIDとパスワードをPOSTすればいけるんでは?
HTMLのパースはまた別の話
>>965 場所が常に明白(または、今回のような個人用途)で、かつ、rangeリクエスト可能ならそうしてみるとか。
全部取得するほうが大抵楽だと思うけど。
973 :
965 :2014/01/15(水) 19:29:11.05 ID:INbU8D8p
>>971 ,972
遅くなりましたがレスありがとうございます。
現在は既にfile_get_contentsを使用して一括確認出来るよう
自分用の管理画面を作っております。
rangeリクエストを調べてみたのですが少し実装がややこしそうなので
相手方の管理者に問い合わせ、filegetcontentsを利用した一括確認を
利用していいか問い合わせてみます。
ありがとうございました。
API提供してくれりゃいいのにね。
APIの方が 鯖の負荷大きかったりしてな
976 :
nobodyさん :2014/01/18(土) 22:44:23.71 ID:JLR/e4Bf
符号なし整数って使えますか? long integer が使えればそれでもいいです。
30分毎に○○(RSSなど)を更新する みたいな処理はどういう設計にしたらいいですか? マルチスレッドでがんばるんでしょうか?
cron使え
979 :
nobodyさん :2014/01/19(日) 00:51:50.34 ID:+Tp+kBdt
現在のセッションから他の全セッションの変数の値を取得したいのですがどのようにしたらいいですか?
980 :
nobodyさん :2014/01/19(日) 01:36:53.31 ID:qd8Uvbtv
>>979 現在のセッションってどういう意味?
一度セッションをクローズしてから、クローズした元のセッションのデータを取得したいってこと?
981 :
nobodyさん :2014/01/19(日) 01:39:30.66 ID:+Tp+kBdt
983 :
sage :2014/01/19(日) 02:13:15.45 ID:qd8Uvbtv
>>981 いまいち言ってることが良くわからんなぁあ
984 :
nobodyさん :2014/01/19(日) 02:35:03.38 ID:+Tp+kBdt
3人のセッションが開始されているとしてPHPSESSIDがA、B、Cとすると AがアクセスするとB、Cのもつ変数が表示されるようにしたいのです
DBとかキャッシュ使え
何をしたいのか分からんね セッションが動くたびにトランザクション走る設計なんて嫌でしょ 共有データは正規化してCascadeで消えるようにしたら楽な気がする
セッションIDを固定にすれば?
そもそもそんなことして何がしたいのかよく分からん 具体的にやりたいことのイメージを書いてみ? もっとマシな解決方法あるから
まあたぶん
>>985 の言うようにキャッシュ使うのがいいだろうな
3人でA〜Cってことは全部っぽいな 想定人数が異常に少ないから同時間っぽいな B、Cと特定的に書かれてるが、たぶんB、CのIDは不明なんだろうな
>>979 の言ってることはわからなくもない。
たとえば、チャットアプリで、チャット中のユーザーAとユーザーBがいた場合、
ユーザーAのセッションを読み込む際に、ユーザーBのセッションも一緒に
読み込めたら便利なのにと考えたことがある。
だけど、無理なんだよね。相手のセッションやクッキー情報を読み込むのは不可能だし。
結論は、取得できない。
というかチャットみたいにユーザモデルが存在するサービスならどうにでもなる FW使ってるならモデルにSession統合するだけで済むし 管理パネルで整合性が必要だとか、ブラウザゲーで遷移管理を共有したいとかってケースが面倒
おまえら想像でモノ言ってもしょうがねぇだろ
そういうのをセッションを使って、セッションの値自体を使わないで実装するのが普通
別に行数足りないわけでもないし消す必要もないだろ
997 :
nobodyさん :2014/01/20(月) 03:56:37.85 ID:elKBZme8
関数がバイナリセーフかそうでないかなんてどうやって判別するの? リファレンスに「この関数はバイナリセーフです」とか書いてないよね
290 :デフォルトの名無しさん:2014/01/20(月) 03:26:19.69 PHPで長々とひどいソースコード書いて おそらく多大な時間をかけたんだろう、Rubyとかなら5分もいかないようなものを「○○作れたー^^」とかいって ブログ書いてる奴が多い PHP自体でマシなアルゴリズムや記法を提供してやればマシになるのかなと思って ちょっとPHPの言語仕様見直したけど、それも不可能だと悟った 彼らはなんなのアレ。マジアレ何。それで良いのかと問いかけたい。 ほんの一週間でいいからRubyやらPythonでまともな書き方を覚えたら 考えも変わってくれるとは思うんだけど 前提を疑えよな その$とか->とか意味のない記号で埋め尽くされてるソースを見て 何かを感じれば他の言語を試すだろ普通は プログラミングのような「誰がやっても同じようなもの」に対して 時間をかけて丁寧に一字一句かいていくとか、固執とかはいらないんだよ、 もっとササッとかいて、見やすい、速い、動く、 これだけで良い こだわりを持って時間かけて何かやりたいならそれは間違いなくプログラミングでやるような事じゃないから 効率の悪いソースコードはリファクタリングでソースファイルごと削除される PHPで書いてるソース全部がそれだからね
だから言ったろ?PHPはゆとり向けじゃないんですよ上級者向けなんです
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。