我想從一個日誌文件中提取出IP地址,並得到一個空數組。preg_match_all正在輸出一個空數組
代碼:
$file = file('log.txt');
$ips = implode($fixed);
$pattern2 = "/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/";
preg_match_all($pattern2, $ips, $m);
print_r($m[0]);
例
$ips='http://localhost/articles/ Mozilla/5.0 (Windows NT 6.3; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0 /articles/ 2-9-2016 17:55 24.100.248.111';
我在http://tryphpregex.com/測試圖案和它突出正好與上面的字符串的IP地址。
也可以preg_match_all接受數組中的值嗎?我沒有看到任何有關PHP的文檔。
我只是採取了所有的過濾邏輯和腳本的作品,顯然文件中的過濾器擺脫線條擺脫了所有的線。 blush。的$ IPS輸出是
Array
(
[15] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 OPR/34.0.2044.98679/172.56.35.178
[16] => http://localhost/ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36 OPR/34.0.2044.98679 /articles/automate-it-all/ 172.56.35.178
當我測試了它在該網站上您的正則表達式不起作用。但它使用單個'\'而不是'\\'。你測試過了嗎? – Tekay37
或者您可以使用單引號''〜[0-9] {1,3} \。[0-9] {1,3} \。[0-9] {1,3} \。[0- 9] {1,3}〜''雙重轉義應該用雙引號解析爲單個轉義。如果沒有,那將是一個問題。 – sln
其實當我試圖把代碼放入stackoverflow.com它是預覽沒有反斜槓,我試過它與單個轉義字符 – Lid