Помогите корректно разбить строку

Статус
В этой теме нельзя размещать новые ответы.

Festem

Постоялец
Регистрация
4 Сен 2014
Сообщения
97
Реакции
27
Есть список авторов
Код:
$autors="Michael Rapaport, Bob Saget, Moran Atias, Jay R. Ferguson, Ethan Russell";

Мне надо сделать из него список активных ссылок. Но не могу побороть пробелы и точки

Делаю вот так

Код:
echo preg_replace('/(\w+)/', '<a href="/tags/$1">$1</a>', $autors);

Но регулярка разбивает имена на составляющие. Как заставить ее корректно работать?
 
Подскажите, пожалуйста, а есть возможность изменить в выводе
Код:
<a href="/tags/$1">$1</a>
изменить /tags/$1 так чтоб в переменной пробелы становились плюсами и текст приводился к нижнему регистру? Или это уже надо средствами PHP делать после получения новой строки?

Те. чтоб
Код:
<a href="/tags/Michael Rapaport">Michael Rapaport</a>
выглядело бы как
Код:
<a href="/tags/michael+rapaport">Michael Rapaport</a>
 
я бы привел средствами php
Для просмотра ссылки Войди или Зарегистрируйся

или вовсе использовал Для просмотра ссылки Войди или Зарегистрируйся для переменной в href=""
Я попутал. Надо не плюс а тире делать вместо пробела.

Те. чтоб
Код:
<a href="/tags/Michael Rapaport">Michael Rapaport</a>, <a href="/tag/Moran Atias">Moran Atias</a>

выглядело бы как
Код:
<a href="/tags/Michael-Кapaport">Michael Rapaport</a>, <a href="/tag/Moran-Atias">Moran Atias</a>


Регистр букв неважен. Главное в участках "/tags/(.*)" пробел поменять на тире.

Я беру переделанную строку из вашего кода Для просмотра ссылки Войди или Зарегистрируйся в переменную $Reg_str и выходит надо делать еще одну регулярку чтоб в этой строке $Reg_str сделать нужные изменения? Можете подсказать как это сделать?
 
PHP:
$autors="Michael Rapaport, Bob Saget, Moran Atias, Jay R. Ferguson, Ethan Russell";
// разбиваем строку на элементы массива.
//Разделитель запятая или запятая + пробел
$autors = explode( ',' , $autors );
// тут у нас $autors - уже массив
echo '<pre>'
print_r($autors);

// обходим элементы массива
foreach $autors as $key => $val {

echo '<a href="/tags/'.urlencode($val).'">'.$val.'</a>'
}
и не надо никаких регулярок.
 
Я беру переделанную строку из вашего кода Для просмотра ссылки Войди или Зарегистрируйся в переменную $Reg_str и выходит надо делать еще одну регулярку чтоб в этой строке $Reg_str сделать нужные изменения? Можете подсказать как это сделать?
$Reg_str сейчас имеет вид массива. Нужно сделать перебор массива через foreach() и в каждой итерации будет происходить замена пробелов на дефиз. $var = str_replace(' ','-',$no_replace);
а ниже вывод
echo '<a href="/tags/$var">$no_replace</a>';
Если не получится сделать - пиши в личку.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху