2014-01-29 39 views
2

我試圖找到從文件創建SQL查詢,以簡化在我每次查詢的結尾寫道:#end任務,但是搜索仍在繼續,我得到一個數組索引幾個結果(或只是一個文件的繼續),而不是一個。如何用PHP中的dotall修飾符指定行的結尾?

preg_match_all('/CREATE.*#end/su', $sql, $queries); 

SQL例如:

CREATE TABLE `tblname` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `label` varchar(32) NOT NULL, 
    `description` varchar(255) NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `label` (`label`) 
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8#end 
+0

'$'還有在這裏工作。 – anubhava

回答

2

的問題很可能是*貪婪默認。這意味着它發現最長的匹配它可以,而不是最短的。使其不明確:.*?,現在只要找到一個匹配就會停止匹配。

+0

這是作品,謝謝! – kovalevsky