わたくしphp歴4ヶ月のものです。
fsockopenで下層ページの内容を取得するにはどうすればよいのでしょうか。説明がうまくできないので例を書きます。
business.yahoo.co.jp/prod/store
を指定するとエラーが出ます。
例1)
$fp=fsockopen("business.yahoo.co.jp/prod/store", 80, $errno, $errstr, 30);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else{
fputs($fp, "GET / HTTP/1.0\r\n\r\n");
while(!feof($fp)) {
echo fgets ($fp,600);
}
fclose($fp);
}
business.yahoo.co.jpを指定するとエラーが出ません。
例2)
$fp=fsockopen("business.yahoo.co.jp", 80, $errno, $errstr, 30);
if(!$fp) {
echo "$errstr ($errno)<br>\n";
} else{
fputs($fp, "GET / HTTP/1.0\r\n\r\n");
while(!feof($fp)) {
echo fgets ($fp,600);
}
fclose($fp);
}
下層ディレクトリのページはどのように指定すればよいのでしょうか。/←スラッシュに問題があるのでしょうか。
その場合のエラーの内容は下記です。
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/mero/public_html/test.php on line 23
Warning: fsockopen(): unable to connect to business.yahoo.co.jp/prod/store:80 in /home/mero/public_html/test.php on line 23
No such file or directory (2)
基本的な質問でたいへん恐縮ですが、
ご指導お願いいたします!
No.1ベストアンサー
- 回答日時:
見当違いの回答かもしれませんが、
仮想フォルダとかが、実際には、異なるのかもしれません。
ソケットでなくて、
単純に
$fp=fopen("http://business.yahoo.co.jp/prod/store","r");
とかしてみてはどうでしょう
No.3
- 回答日時:
こんにちは。
なぜエラーになったかわからないようなので、補足しておきます。
socketは電話にたとえられることがあります。
質問者さんのやってる状態は、電話をかけるときに
012-3456-7890営業課佐藤さん
と、ダイアルしてしまっているのと同じです。
PHPを使うと簡単に外部ドメインのサーバに接続できてしまいますが、WebサーバならHTTP、メールサーバならSMTPやPOPといったプロトコル(決まり事)が使われています。こうしたプロトコルに沿った方法でアクセスしないと迷惑がかかることありますので、まずは
business.yahoo.co.jp
ではなくて、
localhost
で試してからやってください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PHP PHPでテキストファイルに保存した時の改行問題 1 2022/11/19 15:07
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を変えるには?
-
ワードプレスサイト PHP8.0.25...
-
phpでクラスのメソッドで同名の...
-
awsにApacheとPHPを入れて、何...
-
error_reporting(0);にも関わら...
-
file_get_contents使用時のエラ...
-
PHPでSMTPを使ってメール送信で...
-
正規表現での最後尾のバックス...
-
phpのrenameでエラーが出ます
-
メールアドレスが存在するか確...
-
502 Bad Gatewayの解決方法
-
MovePrevious関数について
-
PHP8を使うと、大量のWarningが...
-
phpをブラウザで表示しようとす...
-
mb_convert_kana関数を使わず、...
-
require_once で読み込まれたか?
-
phpのエラーについて
-
ある条件に当てはまったときに...
-
PHPにて外部サイト内容が取得不...
-
パースエラーとは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP8を使うと、大量のWarningが...
-
フォントの色を変えるには?
-
ワードプレスサイト PHP8.0.25...
-
トランザクションが原因?DBに...
-
PHPでfatal errorが出ても無視...
-
PHPでネットワークドライブのop...
-
「@$変数」の「@の意味は?」
-
パースエラーとは?
-
PHPで特定のURLにジャンプす...
-
正規表現での最後尾のバックス...
-
phpでクラスのメソッドで同名の...
-
error_reporting(0);にも関わら...
-
PHPで、エラーがない場合のみ画...
-
php7のhtmlentitiesはEUC-JPを...
-
phpのrenameでエラーが出ます
-
phpでget_headers()が使えない?
-
メールアドレスにメールが届い...
-
phpのエラー(T_LNUMBER)について
-
urlの直接入力を防ぐには
-
これは例外処理でしょうか?
おすすめ情報