Выявление и удаление разрывов строк

Я использую 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


person Wistar    schedule 17.02.2013    source источник
comment
Что вы хотите сделать с разрывами строк? Просто удалить их?   -  person Explosion Pills    schedule 18.02.2013
comment
Да. Но я пробовал trim и preg_replace с \s и не могу от них избавиться.   -  person Wistar    schedule 18.02.2013


Ответы (2)


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

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

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

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

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

person Galen    schedule 17.02.2013
comment
Спасибо за подсказку. Однако это не работает. Результат тот же. - person Wistar; 18.02.2013
comment
Я почти уверен, что это будет работать до тех пор, пока ваши пробелы генерируются символами, перечисленными для функции trim(): php.net/manual/en/function.trim.php - person CodeZombie; 18.02.2013
comment
Я тоже попробовал это, прежде чем задать свой вопрос здесь. Для некоторых других примеров, которые я не показал здесь, мне пришлось использовать substr, потому что другие функции не удаляли разрывы строк. Однако это решение хорошо только в том случае, если у меня всегда есть регулярный шаблон разрывов строк, что не так. - person Wistar; 18.02.2013
comment
@Galen У вас есть предложения по регулярному выражению, которое не удаляло бы пробел между словами, чтобы такие вещи, как [Location] => not far away, не были notfaraway? - person Wistar; 18.02.2013

пытаться:

foreach($array as &$v){
    $v = preg_replace( '/(\n¦\r)+/s', '', $v);
} 
person WebChemist    schedule 17.02.2013