2012-03-06 39 views
0

我試圖使用curl來檢測遠程網頁的源代碼中是否存在一段文本。例如,我想看看源存在此字符串:檢查網頁中是否存在字符串

<!-- BEGIN TEST CODE --> 

如果在一個偏僻的網頁(比如,example.com)我想回聲「是」的HTML源代碼中存在。如果它不存在於源代碼中,我希望它回顯「否」。

這是我到目前爲止已經試過:

$ch = curl_init("http://www.example.com"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$text = curl_exec($ch); 

$test = strpos($text, "<!-- BEGIN TEST CODE -->"); 
if ($test==false) 
{ 
    echo "yes"; 
}else{ 
    echo "no"; 
} 

當我運行它,它總是輸出「是」。 我的代碼出了什麼問題,應該如何正確執行?

+0

你可以發佈你到目前爲止的代碼,以便我們可以推薦如何讓它做你想做的事嗎? – imm 2012-03-06 01:48:05

+0

你有什麼嘗試,你有什麼具體問題?你看過PHP cURL文檔(php.net/curl)嗎?您在獲取源代碼,搜索它或兩者時遇到問題? – Corbin 2012-03-06 01:48:43

+0

我試過的東西不會帶來它,如果它在源代碼中或沒有。我一直得到一個空白的結果。我設法挽救了我所擁有的東西。我將嘗試重新創建我到目前爲止的內容 – Tabatha 2012-03-06 01:52:22

回答

6

你需要這兩個功能是cURLstrpos()

<?php 
$ch = curl_init("http://www.example.com"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$text = curl_exec($ch); 
$test = strpos($text, "<!-- BEGIN TEST CODE -->"); 
if ($test==false) 
{ 
    echo "no"; 
} 
else 
{ 
    echo "yes"; 
} 
?> 
+0

我收到一個500錯誤,試圖找出是什麼導致它。 – Tabatha 2012-03-06 02:23:51

+0

對不起,用測試代替$ test。 – 2012-03-06 02:25:16

+0

我添加的第5行;它沒有錯誤,但我的測試網站,我總是得不到,它在源代碼中。 – Tabatha 2012-03-06 02:25:52

0

您是否嘗試過使用$is_a_test = strpos($the_page_text, "<!-- BEGIN TEST CODE -->");

PHP strpos()文檔:http://www.php.net/manual/en/function.strpos.php

+0

我如何讓它搜索一個URL? – Tabatha 2012-03-06 02:11:21

+1

你有沒有試過file_get_contents? http://us3.php.net/manual/en/function.file-get-contents.php – dldnh 2012-03-06 02:13:37

相關問題