2013-02-17 6 views
0

Я использую cURL с php для синтаксического анализа с помощью DOM некоторого содержимого html. Затем я помещаю содержимое как строку в переменные и создаю массив.Идентификация и удаление разрывов строк

Вот моя проблема, я получил что-то вроде

Array (
[firstname] => John 
[lastname] => 


Doe 
[occupation] => 
programmer 

[location] => not far away 
) 

Я получил некоторые разрывы строки, которые не вызваны <br> тегов в HTML. Я вижу, что (пробел) строки разрываются в коде, но нет тега.

Я попытался использовать код как str_replace('\s', '', $firstname) перед тем, как поместить его в свой ассоциативный массив, но он не работает. Я добавлю, что preg_replace('\s','', $firstname) возвращает NULL

+0

Что вы хотите сделать с разрывами строк? Просто удалите их? –

+0

Да. Но я попробовал 'trim' и' preg_replace' с \ s, и я не могу избавиться от них. – Wistar

ответ

3

str_replace не принимает регулярные выражения. может просто обрезать массив после ...

$array = array_map('trim', $array); 

, если это не сработает, то они не являются нормальными пространствами. использование ...

preg_replace('~^[\s]+|[\s]+$~', '', $firstname); 

... перед добавлением в массив. вы забыли разделителей.

+0

Спасибо за подсказку. Однако это не работает. Результат тот же. – Wistar

+0

Я уверен, что это будет работать до тех пор, пока ваши пробелы генерируются символами, перечисленными для функции 'trim()': http://www.php.net/manual/en/function.trim.php – CodeZombie

+0

@ Wistar - проверить мое редактирование – Galen

0

попробовать:

foreach($array as &$v){ 
    $v = preg_replace('/(\n¦\r)+/s', '', $v); 
} 
Смежные вопросы