アンカータグのURLがリモートURLのページに存在するかどうかを確認する

私のプロジェクトでは、SEOやプロジェクトサイトのバックリンクを取得するために、無料のユーザーがプロジェクトサイトのURLを自分のウェブサイトに置く必要があります。だから私は

example site

ユーザーを登録することで指定されたURLで指定されたページに存在します。 私はこのチェックを複数回使用しなければならないので、より少ない資源の空腹の解決策が必要です。

0
そのソリューションはどのように見えますか? HTMLページを実際に取得しないと、HTMLページ内のリンクが存在するかどうかを確認できますか?
追加された 著者 Pekka 웃,
それはあなたがカールを使うかどうかとは何の関係もないのですか?いずれにしてもページを取得する必要があります。
追加された 著者 Pekka 웃,
いずれかのページのhtmlをcurlまたはfile_get_contentsなどで読み込んだ後、検索されたhtmlソースで必要なリンクを確認する正規表現を設定します。その他の(簡単な)方法はありません。
追加された 著者 Luceos,
preg_match($ regex、$ bodyhtml、$ matches)$ regex = "/ タグの間にあるものを確認できますが、それはあなた次第です。
追加された 著者 Luceos,
たとえ私がCURLを使っていても、自分のプロジェクトサイトにアンカーリンクが存在するかどうかを調べるにはどうすればよいですか?今のところ、私はhref = " site.com" を検索していますが、検索されたコンテンツは信頼できる解決策ではありません。よりよい解決策です。
追加された 著者 codefreak,
私はREGEXチェックに似たものが欲しいです。ユーザーがサイト名またはサイト名またはその他の有効なアンカータグを入力すると、すべてが有効とみなされるべきです!
追加された 著者 codefreak,
yeh私はHTMLページを取得しても構いません。
追加された 著者 codefreak,
まさに!そこで、CURLを削除する質問を編集し、アンカータグが " My" rel = "nofollow noreferrer"> mysiteかどうかを確認するソリューションを提案します。 com '> My サイトはFETCHEDページのコンテンツに存在します。
追加された 著者 codefreak,
では、REGEXのようなものは何でしょうか?
追加された 著者 codefreak,
ありがとうございますLuceos、あなたが私が探しているものに最初の論理的な答えです。私の質問をチェックし、問題を解決した機能を置くように編集しました。
追加された 著者 codefreak,

3 答え

他のPHP関数を使用してリモートリソースを取得するよりも、カールがもっと飢えているとは思いません。それらはすべて同じ基本原則を使用しています。

しかし、 file_get_contents は実行可能な代替手段ですカールが利用できない場合。新しいストリームコンテキストを使用して、適切な user-agent ヘッダなどを送信するようなcurlの機能

0
追加された
@codefreakの方法は、1. HTMLページを取得し、2.コンテンツが存在するかどうかを調べます。他にどんな方法がありますか?
追加された 著者 Pekka 웃,
CURLはここで問題にはなりません。私が求めているのは、取得したページに「何か」が含まれているかどうかを確認する方法です
追加された 著者 codefreak,
質問のコメントを確認する
追加された 著者 codefreak,

みんな、ありがとう。この関数は私が望んだことを行いました:

function checkurl($url, $urltocheckfor){
    $input = @file_get_contents($url);
    $regexp = "]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
    $matches = array();
    if(preg_match_all("/$regexp/siU", $input, $matches)) {
        if(in_array($urltocheckfor))
            return true;
        else
            return false;
    }
}
0
追加された

このコードリソースには問題ありません。

// Initializes a new session and return a cURL handle
$handle = curl_init($url);

// Sets an option on the given cURL session handle
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);

// Execute the given cURL session
$response = curl_exec($handle);

// Gets information about the last transfer.
// CURLINFO_HTTP_CODE - Last received HTTP code 
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);

if($httpCode == 404) {
   //your code here
} else {
   //your code here
}

curl_close($handle);
0
追加された
CURLを使用しているかどうかは問題ではありません。「 My "rel =" nofollow noreferrer " > mysite.com '> My サイトは、ユーザー登録により指定されたURLのページに存在します。
追加された 著者 codefreak,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com