2012-06-20 71 views
1

除了模數運算符外,百分號在PHP中做什麼?百分號在PHP中做什麼?

舉例來說,我在看一些PHP代碼,並請參閱以下內容:

define('TABLE_PREFIX','%CONFIG-PREFIX'); 

其他地方,在一個SQL文件,我看到以下內容。我期望SQL腳本正在被PHP解析。

DROP TABLE IF EXISTS `%TABLE_PREFIX%api_key`; 

謝謝

+0

我不認爲它沒有做任何事情在字符串中的特殊。也許你正在使用的庫以某種方式修改它? – Ryan

+1

至於它通常是一個通配符「%匹配任意數量的字符,甚至零個字符」,但這種情況下,它的東西'自定義「 – 2012-06-20 23:44:55

回答

5

PHP本質上並不特殊字符串中對待它。它必須是解析字符串並確定%指示某種變量值的應用程序。

實際上,它看起來像是在查看名爲osTicket的項目的源代碼。在它的安裝程序,我發現這條線對應於自己獲得的定義:

$configfile= str_replace('%CONFIG-PREFIX',$_POST['prefix'],$configfile); 
+0

您的權利關於osticket。我還發現下面的腳本列出的nickb的帖子。謝謝! – user1032531

3

在PHP中,什麼都沒有。某處在任何數據庫驅動程序,您正在使用的驅動程序解析這個字符串把前綴,最有可能類似於:

$sql = str_replace('%TABLE_PREFIX%', TABLE_PREFIX, $sql); 
+1

發現它。謝謝! function replace_table_prefix($ query){ return str_replace('%TABLE_PREFIX%',PREFIX,$ query); } – user1032531