2014-12-05 2 views
1

У меня есть скрипт, который выводит массив, который, когда каждый элемент массива распечатывается, дает мнеPHP preg_replace все символы после пробела в каждой строке

https://media.com/2db93b9.jpg Ann 
https://media.com/3198676.jpg Lin 
https://media.com/ David 
https://media.com/0f48c22.jpg Ulrich 
https://media.com/135f3b7.jpg David 

Я пытаюсь бросить пространство, и все остальное после него со следующим preg_replace

foreach($rows as $row) { 
    $row = preg_replace("[\\ ].*", "", $row); 
    echo $row . '<br />'; 
} 

Согласно http://regexr.com, что модель шахты должны работать. Но когда я попробовал и /[\\ ].*/g и [\\ ].*. Ничего не работает. Он говорит, что php встречает неизвестный модификатор. Очевидно, что я не специалист по регулярным выражениям, и я хотел бы получить любую помощь.

ответ

2

Вы должны использовать:

$row = preg_replace('/ .*$/', "", $row); 

Или:

$row = preg_replace('/\s.*$/', "", $row); 
  • Regex нужен разделитель в PHP
  • Правильное регулярное выражение должно пространство и все затем с помощью .*$
  • \s соответствует пробелу OR tab или новой строке
+0

Ах, вот и все. Однако я ошибался в своем предположении, что это пробел, который отделяет URL-адрес и имя. Оказывается, это либо пробел И разрыв строки, либо просто разрыв строки. Только это при печати в браузере выглядит как пробел. Как мне это сделать? – jeffimperial

+0

Просто используйте: '$ row = preg_replace ('/ \ s. * $ /'," ", $ Row);' где '\ s' будет соответствовать ** пробелу ИЛИ tab или новой строке ** – anubhava

+1

Sweet! Это работает, спасибо! – jeffimperial

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