2017-01-18 5 views
0

Я пытаюсь сопоставить информацию из файла, но когда я пытаюсь его повторно использовать с помощью 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)

Файл закрыт

Может кто-нибудь пожалуйста, скажите мне, почему это происходит? Спасибо.

+1

Возможно, вам также потребуется обрезать содержимое. –

+0

Пробовал ли вы var_dump $ line после его получения? –

+0

@E_p Я просто понял, что в Windows новая строка «\ r \ n» я забыл об этом, так как редко делаю что-либо в окнах. Спасибо. –

ответ

0

Проблема была в Windows, читает новую строку как «\ r \ n», но unix читает ее по-разному. Все, что мне нужно было сделать, это добавить следующее внутри цикла while

$line = str_replace("\r\n", "", $line); 
+1

Взгляните на http://php.net/manual/en/reserved.constants.php, 'PHP_EOL'. – chris85

 Смежные вопросы

  • Нет связанных вопросов^_^