Я пытаюсь сопоставить информацию из файла, но когда я пытаюсь его повторно использовать с помощью preg_match("/^[1-9][0-9]{4}$/")
Я могу сопоставить одну строку, но не тогда, когда Я читаю из файла напрямую. мой код выглядит следующим образом:preg_match() работает на php70.14 (ubuntu), но не на php5.3.26 (windows 2008)
<?php
$line = "23146";
$line = str_replace("\n", "", $line);
if(preg_match("/^[1-9][0-9]{4}$/", $line, $matches)) { // Matching the PO No.
print_r($matches);
}
// Following don't work on PHP 5.3.26
$file = fopen("meaw.txt", "r") or die("Unable to open file");
while(!feof($file)) {
$line = fgets($file);
if(preg_match("/^[1-9][0-9]{4}$/", $line, $matches)) { // Matching the PO No.
print_r($matches);
}
}
fclose($file);
echo "\nFile Closed";
?>
и мой файл это meaw.txt
Моя проблема заключается в том, что этот код работает файл, когда я бегу его на Ubuntu PHP7. Но когда я бегу этот код на Windows2008 php5.3.26 печатает следующую
массив ( [0] => 23146 )
Файл Closed
Но я должен чтобы получить
Array ( [0] => 23146) Array ( [0] => 63144) Массив ( [0] => 63140) Массив ( [0] => 63201) Массив ( [0] => 63148) Массив ( [0] => 63201) Массив ( [0] => 63148) Массив ( [0] => 63201) Массив ( [0] => 63148) Массив ( [0] => 63201) Массив ( [0] => 63140) Массив ( [0] => 63148)
Файл закрыт
Может кто-нибудь пожалуйста, скажите мне, почему это происходит? Спасибо.
Возможно, вам также потребуется обрезать содержимое. –
Пробовал ли вы var_dump $ line после его получения? –
@E_p Я просто понял, что в Windows новая строка «\ r \ n» я забыл об этом, так как редко делаю что-либо в окнах. Спасибо. –