2011-08-04 6 views
2

I'am新しいテキストを見つけられない、とても素敵:)のfile_get_contentsは時々PHPへ

時々のfile_get_contentsしてくださいすることは時々その仕事とはしません。 URLが存在する場合は、ウェブページ上で簡単なチェックを行います。しかし問題は、確かにURLが存在していても(手動でソースコードをチェックした)、file_get_contentsとpreg_matchは見つからないということです。なぜ私は理解できません。ここでは、コードです:

$page = $URL_that_should_be_checked; 
$checkurl = str_replace("/", "\/", $checkurl); 
$page = file_get_contents($userpage); 
$checkurl = "/".$checkurl."/"; 
$report = preg_match($checkurl, $page); 

はどうもありがとうございました!!

答えて

2

はこれを試してみてください。

あなたが

$page = $URL_that_should_be_checked; 

が、2つの行は、後でこれまでに集合$ userpageをせずに

$page = file_get_contents($userpage); 

をしますか。

+0

ありがとう、私はテストとこの解決策を実行しました。しかし、まだ私のメインのスクリプトではありません。くそー – Crayl

+0

私はあなたが間違った結果の理由を見つけるためにあなたのメインスクリプトにいくつかのログを追加する必要があると思う – classic

1

PHP関数preg_quoteを使用して、preg_match関数のURLを解析する必要があります。例:

$checkurl = preg_quote($checkurl); 

参照:http://php.net/manual/de/function.preg-quote.php

+0

ありがとうございますが、これは機能しますが、区切り文字は忘れてしまいました。 – Crayl

2

それはあなたのコードに従うことはかなり困難です。

documentationページを確認しましたか?また、特殊文字をurlencode()機能でエンコードする必要があることに注意してください。

この行には$checkurl = str_replace("/", "\/", $checkurl);という変数$checkurlは定義されていません。

この行には、$userpageは定義されていないようです。指定したコードには$pageのみが定義されています。

preg_matchと$reportの値を設定するために多くの作業をしているようです。なぜこのプロセス中にページを取得する必要があるのか​​は不明です。

また、allow_url_fopenをtrueに設定していますか?エラーメッセージが表示されますか?

$page = file_get_contents($userpage); 

$report = preg_match('/' . preg_quote($checkurl) . '/', $page); 
1

ないあなたのコードが何をしているかを確認します。

+0

ええ、私は酔って酔っています。コードを単純化しようとしました。 – Crayl