Взимане на думи, букви и цифри

SoMeAny

Registered
Значи имам примерно едно изречение

Вие сте нов потребител и ще виждате това предупреждение до 10-тия пост!

как да отделям думите така че всяка дума да стане нов линк
как да направя така че да взима само буквите на кирилица и латиница + цифри

трябва ми нещо такова

<a href='#'>Вие</a>
<a href='#'>сте</a>
<a href='#'>нов</a>
<a href='#'>потребител</a> ... и т.н

всяка дума да ми я изкарва в линк

Благодаря предварително
 
Код:
$text = 'Some text';
$text = preg_replace('/([a-zа-я0-9])/i', '<a href="#">$1</a> ', $text);
echo $text;
С preg_replace трябва да е. Докарах го до полжението да прави всяка буква връзка, но не се сещам как да отделя дума. :idea:
 
Така:

Код:
$text = 'Вие сте нов потребител и ще виждате това предупреждение до 10-тия пост! '; 
$text = preg_replace('/([a-zа-я0-9]+)(\s*)/i', '<a href="#">$1</a>$2', $text); 
echo $text;
 
HunteR работи но защо на първата дума не взима първата буквата (не я прави на линк)

и може ли да стане да изкарва думи по голями от 3 символа
 
SoMeAny каза:
HunteR работи но защо на първата дума не взима първата буквата (не я прави на линк)

и може ли да стане да изкарва думи по голями от 3 символа
Странно, при мен работи без проблеми.
Я дай да видя изречението, което се опитваш да направиш.

Иначе ето ти код, който ще преобразува думи, които са минимум 3 символа:
Код:
$text = 'Вие сте нов потребител и ще виждате това предупреждение до 10-тия пост! '; 
$text = preg_replace('/([a-zа-я0-9]{3,})(\s*)/i', '<a href="#">$1</a>$2', $text); 
echo $text;

@misho, \s е празно място. А звездичката след него указва 0 или повече такива.
 
Добре сега работи а имаш ли идея защо кирилицата се бъгва абсолютно всичко в сайта ми е utf-8

това изречение ми го изкарва така
Вие сте нов по��реби��ел и ще вижда��е това пред��преждение до 10-тия по��т!
 
Ясно. Аз го ползвам в Windows-1251 кодирана страница, за това няма грешка при мен.

Опитай така:

$text = 'Вие сте нов потребител и ще виждате това предупреждение до 10-тия пост! ';
$text = preg_replace('/([a-zа-я0-9]{3,})(\s*)/ui', '<a href="#">$1</a>$2', $text);
echo $text;
 

Back
Горе