0

リモートURLのページ内容を確認したい。リモート サイトのページ コンテンツに文字列http://yahoo.comが含まれている場合は、$qqq = NOYH が含まれていない場合は $qqq = YH を設定します。「そのページのURL」について話しているのではなく、URLのページコンテンツについて話している

$url = "'".$get['url']."'";
$needle = "http://yahoo.com/";
$contents = file_get_contents($url);
if(stripos($contents, $needle) !== false) {
    $qqq = "YH";
}

しかし、それは機能していません。誰でも正しい構文で私を助けることができますか? ありがとう..

4

5 に答える 5

2
$url = $get['url'];
$needle = "http://yahoo.com/";
$contents = file_get_contents($url);
if(stripos($contents, $needle) !== false) {
  $qqq = "YH";
  echo $qqq; // <--in order to echo, you need to call echo.
}

存在する場合にエコーするだけが目標の場合はYH、次のように直接呼び出すことができます。

echo "YH";

変数に格納するのではなく。

于 2010-04-14T19:21:27.920 に答える
1

あなたのコードは機能しないと思います。いくつかの理由から:

  1. 最初の行で、単一引用符を含む文字列を作成します。基本的に、 の$urlようなものが含まれています'http://url.here'。これを渡すfile_get_contentsと、エラーが発生します。

    $url = "'http://www.google.com'";
    echo file_get_contents($url);
    
    Warning: file_get_contents('http://www.google.com/'): failed to open stream: 
    No such file or directory in ...
    
  2. あなた$urlは、特定の文字列が含まれているかどうかを確認したいと言いました。ただし、URL が指しているドキュメントにこの文字列が含まれているかどうかを確認しています。

3. URL に含まれるパラメーターを取得する$_GET代わりにということでしょうか?$geturl

わかりました、コメントから、実際にcontent内の文字列を検索したいということを読みました。それでも、コードの最初の行は間違っているため、おそらく次のようになります。

$needle = "http://yahoo.com/";
$contents = file_get_contents($get['url']);
if(stripos($contents, $needle) !== false) {
    $qqq = "YH";
}

<?= $qqq ?>そのまま動作するはずです)。

于 2010-04-14T19:39:07.243 に答える
1

あなたの質問とタイトルにはいくつかの混乱があるようです。

「$url にhttp://yahoo.com/が含まれている場合」に答えるには、次のようにします。

$url = "'".$get['url']."'";
$needle = "http://yahoo.com/";
if(stripos($url, $needle) !== false) {
  $qqq = "YH";
}

もちろん、 を使用<?=$qqq?>して結果を出力することもできます。

于 2010-04-14T19:33:30.813 に答える
0

デバッグする必要があるため、段階的に分解します。

<?PHP
// make sure you see any errors (remove this later)
error_reporting(E_ALL);
ini_set('display_errors',1);

$url = $get['url'];
die($url);
?>

URLは正しいですか?

<?PHP
// make sure you see any errors (remove this later)
error_reporting(E_ALL);
ini_set('display_errors',1);

$url = $get['url'];
die(file_get_contents($url));
?>

あなたのスクリプトは $url からの応答のように見えますか?

次に、構築とテストを続けます...

すべてのコードを見なければ、ここにいる誰もあなたが間違っていることを推測することはできません。

この答えがあなたを正しい方向に導くことを願っています。

于 2010-04-14T21:02:17.233 に答える
0

PHP の警告がオンになっていることを確認してくださいerror_reporting(E_ALL)。とにかく、常に開発環境で設定する必要があります。

fopenベース関数のパラメーターとして URI を許可していることを確認してくださいallow_url_fopen- http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

于 2010-05-12T23:59:05.117 に答える