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

【PHP】下らねぇ質問はID出して書き込みやがれ 130

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/09/19(木) 13:47:19.93ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 129
http://kohada.2ch.net/test/read.cgi/php/1375636484/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0413nobodyさん2013/10/15(火) 16:33:06.55ID:???
>>378が馬鹿で>>379が答えってことでいいじゃん
pythonにもmvcフレームワークなんてあるのに
ttp://aka-note.blogspot.jp/2012/01/pyramidpythonwsgiweb3mvcbankaccount.html
サンプルのindex.makがhtmlに書いてるように見えないのかね?
0414nobodyさん2013/10/15(火) 16:56:34.02ID:???
>>413のはテンプレートエンジンとFWわけてるみたいだから非MVCFWかも
http://www.ibm.com/developerworks/jp/linux/library/l-django/
こっちは正統なMVCFWみたいだけどね
0415nobodyさん2013/10/15(火) 16:58:33.59ID:???
あ、テンプレートエンジンとMVCは関係ないか・・
まぁテンプレートエンジンはWeb開発じゃ必須だろうし
PHPに最初から組み込まれてるのは別に不思議じゃない
ASPやJSP参考にしてるんだろうしね
0416nobodyさん2013/10/15(火) 17:02:00.67ID:???
>>405
1つじゃ無理って言うから5つ出したのに、5つ出してもまた無理ってそれじゃ困ります。
PHPの復号化は数種類の関数しかないので凄い人なら簡単に出来ると思ったのです。
まず暗号化されたデータはurlencodeされていることがわかりますよね?
凄い人はそこからさらにあと少し問い詰めたら簡単に復号できると思うのです。
0417nobodyさん2013/10/15(火) 17:14:57.36ID:???
>>416
おまえ、まわりのみんなから基◯外って呼ばれてるだろ?
0418nobodyさん2013/10/15(火) 17:17:21.55ID:???
>>378
eRubyをwikipediaでみてきて下さい

>>416
例えば与えられた文字をbin2hexでASCIIコード16進数に変換
そこからさらに2進数にしてビットをシフトしたり反転させたり・・・
なんてことをしていたらその処理をした人でないと中身がどうなってるかなんてのはわからないわけで・・・
0419nobodyさん2013/10/15(火) 17:21:12.67ID:???
>>416
なんかウケるわ
0420nobodyさん2013/10/15(火) 17:55:11.85ID:???
preg_matchである文章で1000円とある部分文をマッチさせたくて¥1000円とある部分文は一切マッチさせたくない場合
/(?<!¥)[0-9]+円/
にすると、¥1000円という文でマッチさせると、000円でマッチしてしまいます。
先読み否定で貪欲さみたいなのって指定出来ないのでしょうか。
0421nobodyさん2013/10/15(火) 18:00:46.85ID:???
>>1
0422nobodyさん2013/10/15(火) 18:08:40.98ID:???
そもそも↓のがいい気が

正規表現道場 Part2
http://kohada.2ch.net/test/read.cgi/php/1348048723/
0423nobodyさん2013/10/15(火) 18:13:14.94ID:cu6CA9hv
>>420
1000円だけにマッチさせたいんだよね?
/(?<!¥)(1)[0-9]+円/
0424nobodyさん2013/10/15(火) 18:13:44.08ID:???
>>416
バイナリ扱える時点でPHPで扱える復号化処理は数種類だけではないよ。
そもそも復号化処理ってなにやるかわかってんかね。
わかってるんだったら、何故誰も取り合わないのかよく調べて考えろ。それで解けるかもしれない。
わからないんだったら、その数種類しかないもの、自分で試してこい。それで解決するんだろ?
0425nobodyさん2013/10/15(火) 18:17:58.40ID:???
>>423
それだと¥1だけ破棄して000円にマッチするんです。
0426nobodyさん2013/10/15(火) 18:23:54.33ID:???
やめたげてーもう416のライフは3よ
0427nobodyさん2013/10/15(火) 18:24:53.68ID:???
残機3あればラスボスまでいける
0428nobodyさん2013/10/15(火) 18:35:02.66ID:???
>>425
000円にマッチしないよ?
0429nobodyさん2013/10/15(火) 18:45:57.68ID:???
>>428
私が試して来た方法とどの辺りに違いがあるんでしょうか。
調べても説明が端的なものばかりで、本当によく分からないんで
なぜ000円にマッチしたりしたのか教えてください。
0430nobodyさん2013/10/15(火) 19:46:08.71ID:???
>>1
0431nobodyさん2013/10/16(水) 11:36:10.36ID:???
>>429
¥でない文字の後に [0-9]+ でなるべくなんだから、
¥でない1という文字のあとにつづく000がマッチして何がおかしいの?
これ以上は該当スレで


/(?<!¥)(?<![0-9])[0-9]+円/
0432nobodyさん2013/10/16(水) 11:54:42.55ID:???
>>431
役にたたねーなカス
それ使ってやるから感謝しろよw
0433nobodyさん2013/10/16(水) 12:03:54.01ID:???
いいぞもっとやれ
0434nobodyさん2013/10/16(水) 15:14:27.41ID:???
PHPの勉強をはじめ,アップローダなどを作ってみたのですが,
初心者がWAFを用いずWebシステムを作成するのはセキュリティ的に好ましくないですか?
いきなりWAFを使うのはどうかと思いガリガリ書いてましたがセキュリティを考えるととてもじゃないけど手に負えません
0435nobodyさん2013/10/16(水) 15:20:54.31ID:???
setcookieで質問です。

setcookieでクッキーを設定して、すぐにheader()で指定のページに移動させるとクッキーが設定されていません。
setcookie後、とりあえず何かしらページを出すと、クッキーが設定されるのですが・・・
前者のやり方は良くないのでしょうか?

よろしくお願いします

×クッキー設定 → header( "Locatoin... → 次のページ クッキーなし
○クッキー設定 → 何かしら完了画面 → 次のページ クッキーあり
0436nobodyさん2013/10/16(水) 16:02:01.39ID:???
ID出してな。
ググったら出てくるやつじゃないのか
0437nobodyさん2013/10/16(水) 17:01:40.05ID:???
別のページに飛ばしてもcookieは保存されるぞ?
04384352013/10/16(水) 17:05:05.39ID:rEUN+AXc
ちょっとした設計ミスでした
お騒がせ致しました
0439nobodyさん2013/10/16(水) 17:49:55.85ID:+GFXtXqV
yieldって使えて何が嬉しいのですか?
http://www.php.net/manual/ja/language.generators.syntax.php#control-structures.yield
この例は、
$arr = array(1, 2, 3);
foreach ($arr as $value) {
echo "$value\n";
}
に置き換えれるわけで、どういうときに使うのかいまいちピンときません。
どういうときに使うと嬉しいのでしょうか?
0440nobodyさん2013/10/16(水) 17:55:09.15ID:???
いろいろあるけど、、その例なら、3じゃなくて1000000だったら?とか
0441nobodyさん2013/10/16(水) 18:25:50.09ID:???
http://ja.wikipedia.org/wiki/%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AC%E3%83%BC%E3%82%BF_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29#PHP
0442nobodyさん2013/10/16(水) 19:46:06.88ID:???
>>434
スレ違い
>>1読め

WAF使うなら、コードと両方でやることになると思え。
かぶっている所作もあるがそもそも得意分野と機能が全く違う。
むしろ、HTTPから知らないと書けない上に
PHP組む上で必要なセキュリティに関する知識も加わる。
ルールの嵐でWAF設定書くほうが初心者殺しだよ。
0443nobodyさん2013/10/16(水) 22:22:35.69ID:???
>>441
最後だけ「ええええ」って感じだなw
0444nobodyさん2013/10/16(水) 23:02:07.29ID:???
�@perlの$1,$2のような感じで
preg_replaceでパターン内の()で囲んだ部分を後から参照する方法教えてください

�Aperlでの
while($s =~ /.../g){
...
}
↑phpの正規表現でもこのようなことはできますか?
0445nobodyさん2013/10/16(水) 23:04:37.98ID:???
>>444
>>1
0446nobodyさん2013/10/17(木) 10:33:06.33ID:???
>>439
無限リストが楽に作れて嬉しい
<?php
function stripe(array $colors) { while (true) foreach ($colors as $color) yield $color; }
$rainbow = stripe(['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']);
?>
<ul>
&nbsp;&nbsp;&nbsp;&nbsp;<?php foreach(range(0, 30) as $i): ?>
&nbsp;&nbsp;&nbsp;&nbsp;<li style="background-color: <?php echo $rainbow->send(null); ?>;"><?= $i; ?></li>
&nbsp;&nbsp;&nbsp;&nbsp;<?php endforeach; ?>
</ul>


>>441
なんでPHPの例だけカーソルになってるんだ
0447nobodyさん2013/10/17(木) 12:07:43.73ID:???
>>439
やるかどうかは別として、どっかのサービスとのネゴシエーションが書きやすくなったり、
ファイルやDBからの読み出しまわりのメソッドが簡略化できる気がする。

気がする。
0448nobodyさん2013/10/17(木) 12:20:19.61ID:???
>>444
ウザい消えろ
0449nobodyさん2013/10/17(木) 13:23:54.51ID:???
>>444
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
上の例の出力は以下となります。
April1,2003
0450nobodyさん2013/10/17(木) 15:13:55.83ID:HuABhb/l
これはなぜエラーになるのでしょうか?
class A {
private $test = [
 "test" => function () { }
];
}

PHP Parse error: syntax error, unexpected 'function' (T_FUNCTION)
0451nobodyさん2013/10/17(木) 15:17:12.38ID:???
phpはjavascripじゃないのよ
0452nobodyさん2013/10/17(木) 15:18:31.96ID:HuABhb/l
それは分かりますがclass内だけエラーになるのが分かりません
$test = [
 "test" => function () { }
];

$test["test"]();

これは実行できるはずです。
0453nobodyさん2013/10/17(木) 15:21:30.05ID:???
バージョンは?いつから配列[]になったの?
0454nobodyさん2013/10/17(木) 15:27:58.99ID:???
http://php.net/manual/ja/migration54.new-features.php
0455nobodyさん2013/10/17(木) 15:35:34.07ID:???
ほーthx
5.3.6で[のとこでエラー出たけど5.4だと出ないのね

まぁ本題だけどクラスのプロパティ(メンバ変数)とは別物だから挙動は違う
private $test = strlen('hoge');
こういう関数使ったり定義したりは出来ない
http://www.php.net/manual/ja/language.oop5.properties.php
> 宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。

もしやるとしたらコンストラクタでやるべし
0456nobodyさん2013/10/17(木) 15:54:20.59ID:HuABhb/l
>>455
納得致しました
ありがとうこざいます。
0457nobodyさん2013/10/17(木) 22:20:29.16ID:8Sl61Bzm
別スレで聞いたのですが全く反応がないのでそこはクローズさせてここで聞かせて下さい。

自分のサイトを定期的に巡回してページが正しく表示されているかを確認したいのです。
質問。

[1] このような機能の総称というか、概念を端的に表す言葉って何かありますか?
例:「巡回テスト」「ページ確認テスト」

[2] 代表的なソリューションってありますか?できれば言語は php か rubyで。


具体的には自分の作ったサイト(CakePHPかWordPress。たまにROR)の所定のページが
こちらの期待通りのレスポンスとコードを出力しているのかを一日1回程度調べて、
まとめをメールで受信したいです。

現状は自作してますが、統計をとったり解析したり、メール送信したりの機能を
もった、もっと良いツールが公開されているのではないかと探してます。

スレチなら何処か別の板に聞きに行きます
0458nobodyさん2013/10/17(木) 22:31:17.19ID:???
http://kohada.2ch.net/test/read.cgi/php/1330980652/
04594572013/10/17(木) 22:58:17.31ID:???
ありがとうございます。
移動します。
0460nobodyさん2013/10/18(金) 00:19:38.92ID:???
>>446
楽に作れるって観点なら
array_repeat的な関数があればいいだけなんだけどな
0461nobodyさん2013/10/18(金) 00:22:18.07ID:???
>>457
要件次第だけど数十行のPHPコードとcronで実現できる話じゃね
(+URLリストや正しいレスポンスHTMLやメールテンプレートなどが欲しければファイル作る必要あるけど)
0462nobodyさん2013/10/18(金) 01:36:10.63ID:???
>>460
str_repeat() の配列版かな?
無限リストは列挙数が定められない場合に作るんだから代用になり得ない
0463nobodyさん2013/10/18(金) 01:56:24.03ID:???
>>461
ありがとうございます。

簡単なものならそんなに難しくないのですが、
徐々に機能を足していると、ひょっとしてもっとよいツールがありそうな気がして。

どうやら無さそうですね。
0464nobodyさん2013/10/18(金) 02:11:35.98ID:???
サイト 死活監視で検索すると幸せになれるかも
0465nobodyさん2013/10/18(金) 04:29:14.33ID:???
>>463
いいから二度と来るなって
0466nobodyさん2013/10/18(金) 08:36:10.94ID:???
>>462
>>446で30と指定してるだろーがw
0467nobodyさん2013/10/18(金) 08:37:03.14ID:???
>>464
ありがとう。
0468nobodyさん2013/10/18(金) 10:18:03.84ID:???
>>466
論点がずれてるよ
30という列挙数に意味はないし
無限リストで処理している部分を $colors[($i + 1) % count($colors)] に置き換えても意味はない
だって無限リストの話なんだから
0469nobodyさん2013/10/18(金) 19:22:27.25ID:???
>>468
え?無限リストを無限回繰り返して使うのって具体的にどういうケースなの?
0470nobodyさん2013/10/18(金) 19:36:33.99ID:???
>>469
>>1も読めない知恵遅れが書き込むな
0471nobodyさん2013/10/18(金) 20:10:17.16ID:???
>>469=ゴミw
0472nobodyさん2013/10/18(金) 20:12:09.06ID:T/wMdp+i
class test{
private $m_part = array();

public function NewPart() {
$part = new \Part();
$this->m_part[] = $part;
return $part;
}
}

$test = new test;
$np = $test->NewPart();
$np->structname = 1;

これで$this->m_part[] に入れた$partの内容まで書き換えれてしまう
ようだけどこういう書き方ってありなのでしょうか?
0473nobodyさん2013/10/18(金) 20:32:03.60ID:???
カプセル化できてないからなし
0474nobodyさん2013/10/18(金) 23:08:32.21ID:???
>>469
yieldの活用例である無限リストの作成と、
更にその無限リストの活用例として>>446を書いたんだけど…w

無限リスト自体の価値を知りたかったら
関数型言語で勉強するといいんじゃないかな
俺も上手くまとめられる自信がないしスレチになるから
0475nobodyさん2013/10/19(土) 04:55:45.16ID:???
>>474
活用例で有限回の例を書いちゃったら
有限リストでいいってことになるじゃん
例が適切でない
04762352013/10/19(土) 05:21:31.31ID:P7GcS3MG
質問:
シングルトンクラスを書いたファイルをコピーして別のフォルダに配置して、
別のプログラムからそれぞれインスタンス取得したら
シングルトンとして機能しないということでいいです?
indexAとindexBは任意の時期にアクセスがあるものとします

/classA/csingleton.php ↓コピー
/classB/csingleton.php
class CSINGLETON
{
〜
}


/indexA.php
require_once("/classA/clsingleton.php");
$obj= CSINGLETON::getInstance();
〜

/indexB.php
require_once("/classB/csingleton.php");
$obj= CSINGLETON::getInstance();
〜
0477nobodyさん2013/10/19(土) 05:25:39.66ID:???
>>476
「質問:」→「質問です」
「いいです?」→「いいですか?」
「あるものとします」→「あります」
0478nobodyさん2013/10/19(土) 06:34:55.64ID:???
別のプロセスから呼び出すなら、
シングルトンなんか関係なくない?
同じプロセスならエラーになるし、質問自体がナンセンス
0479nobodyさん2013/10/19(土) 09:50:47.68ID:???
>>475
ンモー
好きなだけFizzBuzzしてなさいよw

php -r 'function fizzbuzz($i = "0") { while (true) { yield bcmod($i, 15) ? (bcmod($i, 5) ? bcmod($i, 3) ? $i : "Fizz" : "Buzz") : "FizzBuzz"; $i = bcadd($i, 1); }}
$f = fizzbuzz(); while ($line = fgets(STDIN)) { echo $f->send(0), ":", $line; }'


無限リストの肝心なところは文字通り無限の列を表せるって事
仮にだよ、素数を任意の個数だけ出力するプログラムを書きたいって時に
無限個の素数が収まっているリストがあるとうれしいでしょ?
欲しい数だけ取り出せば済むから楽、遅延評価だからメモリにもCPUにも優しい
そういう物が yield でぐっと簡単に作れるようになったと言いたい
0480nobodyさん2013/10/19(土) 10:36:56.59ID:???
無限リストの用途の例がFizzBuzz(笑)
0481nobodyさん2013/10/19(土) 17:41:31.98ID:QxORnovr
ユーザー間の物の売り買いを仲介するサイトを作りたいんですけど、ユーザー間
取引を円滑に進めるためのお勧めオープンソースはありますか? 
0482nobodyさん2013/10/19(土) 18:49:56.01ID:P7GcS3MG
>>478勘違いしてたみたいですいません。
勉強しなおします
0483nobodyさん2013/10/19(土) 22:03:14.20ID:6nRZ2Ke1
ちょっとググって見たんだけど
やっぱPHPにイベントハンドラ的なものはないん?
<input type="button" onclick="PHPユーザー関数">
的な事が出来れば凄く捗るんだけどな

PHPの場合はページ遷移時以外は動作しないでFA?
0484nobodyさん2013/10/19(土) 22:13:00.03ID:???
>>483
javascript絡めないと無理
0485nobodyさん2013/10/20(日) 00:41:21.32ID:???
phpで画像アップロードサイト作ってるんですけど
ユーザーが任意の被らない半角英数字のキーワードと共に画像と説明をアップでき、
他のユーザーがそのキーワードを入力したら説明と共に画像が見れるしくみです
(dbに例えるとkvsみたいなもの?)

そこで質問なのですがデータディレクトリにキーワードの名前のサブディレクトリを生成し、そこに画像と説明や削除パスのハッシュを書いたファイルを置いておくか
データディレクトリに画像だけ置いて後はMySQLに任せるかどっちがよろしいでしょうか?

前者
データ用dir(外部からアクセス不可)
┣hoge(キーワード)━image.jpg,info.dat
…
┗fuga━image.jpg,info.dat

後者
データ用dir
┣abcdef.jpg(ユニークでランダムな名前)
…
┗ghigk.jpg
MySQLにキーワードを主キーにしてど画像パスと説明と削除パスハッシュを入れる
04864852013/10/20(日) 00:45:38.92ID:+YENYWYK
すいませんスルーしてください
前者だとセキュリティ上データディレクトリにアクセス許可できないけどそしたら画像が見れなくなるので後者にします
0487nobodyさん2013/10/20(日) 16:57:08.89ID:QCUwnfDF
$str = htmlspecialchars($str, ENT_QUOTES, "cp932")
のコードでを複数ファイルに記述していて

特定のページだけこのPHP5.4のhtmlspecialcharsに非互換問題のエラーが出力されていました。
Warning: htmlspecialchars() [function.htmlspecialchars]: charset `cp932' not supported, assuming iso-8859-1

修正はしたのですが、なぜ特定ののページだけhtmlspecialcharsのバグが発生したのかわかりません
簡単な助言だけでもいいのでください
0488nobodyさん2013/10/20(日) 17:03:34.44ID:???
特定のページが他のページとどう違うのか分からないことには何とも答えようがない
0489nobodyさん2013/10/20(日) 17:12:45.07ID:QCUwnfDF
たしかにその通りです。すみません

自己解決になりますが
エイリアスがSJIS、932だと問題なく通るようです。
詳しい問題点はわかりませんが、エイリアスcp932に問題があるようなので使わないようにしたいと思います
0490nobodyさん2013/10/20(日) 18:13:13.79ID:???
htmlspecialcharsのバグって断言する根拠が知りたいもんだなぁ。。
0491nobodyさん2013/10/20(日) 18:37:06.99ID:???
エイリアスって何のことを言っている?
0492nobodyさん2013/10/21(月) 11:46:18.39ID:???
yieldは継続を実現する方法の一つ
0493nobodyさん2013/10/21(月) 14:33:56.23ID:???
日本語でおk
0494nobodyさん2013/10/21(月) 21:43:11.33ID:Ui1hZpHG
質問です

file_get_contentsでPOST送信してデータを更新しているのですが、更新できるときとできないときがあります。
ちなみにこんな感じでやっているのですが更新できなかったときも成功と表示されてしまいます。なぜでしょうか?
もっと良い方法があればご教示願います。

<?php
$url = 'http://example.com/test.php';

$data = array(
'hoge' => 'piyo',
);
$header = array(
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"Content-type: application/x-www-form-urlencoded",
);
$option = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
'header' => implode("\r\n", $header),
));

if($contents = file_get_contents($url,false,stream_context_create($option))){
echo "成功";
}else{
echo "失敗";
}
?>
0495nobodyさん2013/10/21(月) 22:45:28.80ID:???
trueと評価される何かが返ってきてるんだろ。
よく中身を見れ。
04964942013/10/22(火) 00:22:17.31ID:DD9q/9gH
>>495
レスありがとうございます
中身はこれだけです…
0497nobodyさん2013/10/22(火) 00:58:26.35ID:???
中身ってのは $contents の中身。

var_dump($contents)

してみる。
0498nobodyさん2013/10/22(火) 01:31:44.39ID:???
>>496
偽物は消えろ
ゴミが
0499nobodyさん2013/10/22(火) 10:07:12.23ID:???
日付変わったらしゃーないだろw
呼び出し先のログには何か出てないか?
0500nobodyさん2013/10/22(火) 12:58:08.46ID:???
file_get_contentsというのは
リクエスト通りにページが取得できたらtrueを返すだけ(not found等以外)なので
POST送信までは出来てる

POST送信によってページが更新出来たかどうかまでは判定できんよね
POST後の処理内容が怪しい
多分、条件に依っては更新されない要素がある予感
0501nobodyさん2013/10/22(火) 13:42:09.56ID:???
なんかどっかのスレで最近あった、「エラーがおこってもHTTPレスポンスコードは200返すよ派」のしわざじゃないかと思ったりした
0502nobodyさん2013/10/22(火) 13:59:31.04ID:???
・・・って、このスレの話だった
0503494 ID(IP)変わってごめんなさい2013/10/22(火) 14:13:35.82ID:JoBlG3d4
>>500
ありがとうございます。そういうことですか。納得。

もう1つ質問です。URLは存在するのに
Warning: file_get_contents(http://URLは伏せます): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
のエラーが出るサイトもあるのですが、これは一体どういうことでしょう?
0504nobodyさん2013/10/22(火) 14:19:46.80ID:???
ブラウザじゃ見れるのか?
あと、接続先が自分の管理内にあるんならログ見てから発言しろ
0505nobodyさん2013/10/22(火) 14:20:52.15ID:???
とりあえず !== false 使おうぜ
05064942013/10/22(火) 14:32:27.16ID:JoBlG3d4
>>504
ありがとうございます
ブラウザでは普通に見れます
接続先は自分の管理外です
0507nobodyさん2013/10/22(火) 14:53:35.50ID:???
file_get_contentsのパラメータが間違ってるんじゃないの?
0508nobodyさん2013/10/22(火) 16:00:29.14ID:???
>>500
>リクエスト通りにページが取得できたらtrueを返すだけ
おい、全然違うだろ!

>>506
ユーザーエージェント名で弾いてる可能性もある

ひょっとしてお前さんは、サービス側からは好ましからざる振る舞いをしているのかい?
0509nobodyさん2013/10/22(火) 16:56:21.88ID:???
試しにwgetするとどうなる?エージェント指定も試してみて
05104942013/10/22(火) 17:36:28.87ID:JoBlG3d4
>>507-509
ありがとうございます
パラメータは以下の通りです。
ユーザーエージェントはいろいろ変えてみましたがエラーに変化なし
好ましからざる振る舞いはしていません。自分が登録した情報を更新したいだけです。
wgetはLinuxのコマンドで試しましたが取得できました。

<?php
url = 'http://www.example.com/login.html';

$data = array(
'login[userid]' => 'hoge',
'login[passwd]' => 'piyo',
);
$header = array(
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"Content-type: application/x-www-form-urlencoded",
);
$option = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
'header' => implode("\r\n", $header),
));

if($contents = file_get_contents($url,false,stream_context_create($option))){
echo "成功";
}else{
echo "失敗";
}
?>
0511nobodyさん2013/10/22(火) 17:54:39.94ID:???
話が違うくないか?
wgetは、GET http://www.example.com/login.htmlを実行するんだろ?
で、エラーになるのはPOSTしたとき。
wgetでもPOSTして正常終了するのか?
0512nobodyさん2013/10/22(火) 18:09:56.40ID:???
ログインじゃなくて別のPOSTするときに、login成功時に受け取ったcookieだかhiddenパラメータだとかが
必要とかじゃないの?
■ このスレッドは過去ログ倉庫に格納されています