2012-10-10 58 views
0

php函數應檢查文件index.php是否包含CMS鏈接。 我嘗試以下,但它不工作:如果文件包含此文本,請使用PHP進行檢查

<?php 
    $file = file_get_contents("./index.php"); 
    if (strpos($file, "http://www.wordpress.com") !== false) { 
     echo "Found"; 
    } 
    else 
    { 
    echo "Not found"; 
    } 
    ?> 

我非常新的PHP。 我還沒有找到使用搜索的答案。

+0

據在這裏工作。 – JvdBerg

+0

使用'realpath()'或'file_exists()'來確保你給出的路徑是正確的。除了可能不正確的路徑之外,我在這裏看不到任何錯誤。 – diggersworld

+1

還要確認文件中的鏈接是「http:// www.wordpress.com」而不是「www.wordpress.com」。 – air4x

回答

1
<?php 
$file = file_get_contents("./index.php"); 
if (preg_match("/http\:\/\/www\.wordpress\.com/", $file)) { 
    echo "Found"; 
} 
else { 
    echo "Not found"; 
} 
?> 
+6

它比'strpos'好嗎? – Tchoupi

+0

'preg_match'執行正則表達式,速度慢。更好地使用'strstr'或者更好的'strpos'。 – Fred

1

file_get_contents - 將整個文件讀入一個字符串運行以下:

$file = file_get_contents("./index.php"); 

將可能導致RAW PHP CODE而不是呈現的HTML版本,http://www.wordpress.com甚至可能是從數據庫或任何其他資源

使用使用完整的HTTP路徑代替

$file = file_get_contents("http://www.xxxxx.com/index.php"); 

如果你有a.php文件

<?php 
    echo "XXX" ; 
?> 

如果運行

var_dump(file_get_contents("a.php")); 

輸出

string ' <?php 

     echo "XXX" ; 

    ?> 

' (length=31) 

var_dump(file_get_contents("http://localhost/a.php")); 

輸出

string ' XXX' (length=4) 
+0

它說他想從遠程站點加載? – JvdBerg

+0

它不一定是一個遠程站點....只需從'http:// localhost'或以其他方式啓動 – Baba

+0

那麼'./ index.php'有什麼問題呢? – JvdBerg

相關問題