2015-05-23 103 views
2

我在PHP的新手,我用這個代碼來檢測一個特殊的URL都包含在文件:PHP:如何讓的preg_match接受一個URL/

add_action('template_redirect', 'detect_error'); 
function detect_error(){ 
    $file_path = locate_template('file.php'); #Get the absolute server path of file 
    $file_contents = file_get_contents($file_path); #Store the file contents in a var 
    $citation_msg_string = '<a href="http://link.com/">anchor</a>'; #The required string 
    if(!preg_match("/$citation_msg_string/", $file_contents)) 
     exit('Warning : The link are missed in your file'); #Detecter l'ajout de lien dans le fichier 
} 

,但我有這個錯誤味精:

Warning: preg_match() [function.preg-match]: Unknown modifier '/' 

,如果我加入這個變種的鏈接:

$citation_msg_string = '<a href="http://link.com/">anchor</a>'; 

所以請,如何讓的preg_match接受URL?

謝謝。

+0

那麼,我們這個問題在哪裏? – Rizier123

+0

你是最好的:-) – TaghaBoy

回答

2

問題是在你的模式中的斜槓,只是使用preg_quote()來逃避它們,例如,

if(!preg_match("/" . preg_quote($citation_msg_string, "/") . "/", $file_contents)) 
        //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
+0

Bravo Bravo Bravooooooooo它的作品就像一個魅力:) 非常感謝您的幫助。 – TaghaBoy

+0

@TaghaBoy不客氣。 – Rizier123