'бла <i>'.$asd.'</i> блабла'...
Вопрос: Как?
Простым StringRepalce не получится...
Будьте добры - помогите!
голова лопает, немогу придумать как....
Спустя 8 минут, 34 секунды (11.11.2009 - 21:01) sergeiss написал(а):
Регулярные выражения тебе в руки, пошерсти раздел соответствующий тут на форуме. На первой или на второй странице уже найдешь ответ.
Спустя 11 часов, 47 минут, 22 секунды (12.11.2009 - 08:49) Romms написал(а):
В том и весь косяк, что там я сколько не искал - не нашол!
Проблема еше в том что нужно чтобы не только первое совпадения брало, но и все...
Будьте добры...
Проблема еше в том что нужно чтобы не только первое совпадения брало, но и все...
Будьте добры...
Спустя 1 час, 2 минуты, 48 секунд (12.11.2009 - 09:52) brainraider написал(а):
Хм, а что не будет работать
А, ну да, не будет... щас, посмотрим =)))
$my_str=str_replace("<b>","<i>",$my_str);
А, ну да, не будет... щас, посмотрим =)))
Спустя 8 минут, 29 секунд (12.11.2009 - 10:00) brainraider написал(а):
Хм, а что не будет работать
А, ну да, не будет... щас, посмотрим =)))
Знач так, мона юзать strtok
Вот приблизительная схема скрипта:
$my_str="бла <b>asd</b> блабла";
... заносишь в цикл
$str=strtok("$my_str","<b>");
... полученные куски забиваешь в массив и генеришь переменные.
потом заменяешь разделители нужными тебе...
ну тут кароч разберешься...
Может я ошибаюсь... я всего лишь новичок...
не неправильно... тут немного сложнеее, я не учел закрывающийся тег... но мне кажется нуна юзать енту функцию...
$my_str=str_replace("<b>","<i>",$my_str);
А, ну да, не будет... щас, посмотрим =)))
Знач так, мона юзать strtok
Вот приблизительная схема скрипта:
$my_str="бла <b>asd</b> блабла";
... заносишь в цикл
$str=strtok("$my_str","<b>");
... полученные куски забиваешь в массив и генеришь переменные.
потом заменяешь разделители нужными тебе...
ну тут кароч разберешься...
Может я ошибаюсь... я всего лишь новичок...
не неправильно... тут немного сложнеее, я не учел закрывающийся тег... но мне кажется нуна юзать енту функцию...
Спустя 12 минут, 33 секунды (12.11.2009 - 10:13) glock18 написал(а):
preg_match_all:
pattern: /<b>.*?</b>/i
replace: '<i>' . $var . '</i>'
pattern: /<b>.*?</b>/i
replace: '<i>' . $var . '</i>'
Спустя 1 минута, 22 секунды (12.11.2009 - 10:14) Romms написал(а):
brainraider, большое спасибо! По-моему то что надо!
Теперь нужно только монуал
_________________
glock18, мне надо так чтобы между тегами вставить значения перемены, имя которой и есть междутеговое значения...
Теперь нужно только монуал
_________________
glock18, мне надо так чтобы между тегами вставить значения перемены, имя которой и есть междутеговое значения...
Спустя 7 минут, 15 секунд (12.11.2009 - 10:21) glock18 написал(а):
pattern: /<b>(.*?)</b>/i
replace: '<i>' . $$1 . '</i>'
ЗЫ: может и не прокатит. $1 паттерн используется внутри строки, и возможно не будет распознан как переменная. я бы тогда использовал аналогичную функцию с callback.
replace: '<i>' . $$1 . '</i>'
ЗЫ: может и не прокатит. $1 паттерн используется внутри строки, и возможно не будет распознан как переменная. я бы тогда использовал аналогичную функцию с callback.
Спустя 16 минут, 54 секунды (12.11.2009 - 10:38) Romms написал(а):
$pattern= '/<b>(.*?)</b>/i';
//$replace= '<i>' . $$1 . '</i>';
/* row22 */ $text= preg_replace_callback($pattern, '<i>' . $$1 . '</i>', $text);
Говорит что ошибка - Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in Y:\home\list.phpforum.ru\www\test.php on line 22
что делать?
Спустя 7 минут, 34 секунды (12.11.2009 - 10:46) glock18 написал(а):
$text = preg_replace_callback(
$pattern,
create_function('$match',
'if (!isset(${$match[1]})) {
global ${$match[1]};
}
return "<i>" . ${$match[1]} . "</i>";',
$text
));
что-то типа этого. вместо create_function можно объявить функцию и передать ее имя.
Спустя 1 минута, 7 секунд (12.11.2009 - 10:47) brainraider написал(а):
проверь знаки припинания =))))
скорей всего пропустил де-нить ";"
скорей всего пропустил де-нить ";"
Спустя 13 минут, 28 секунд (12.11.2009 - 11:00) Romms написал(а):
Цитата (glock18 @ 12.11.2009 - 07:46) |
$text = preg_replace_callback( что-то типа этого. вместо create_function можно объявить функцию и передать ее имя. |
Вставил, подставил... и вот:
Цитата |
Warning: Wrong parameter count for create_function() in Y:\home\list.phpforum.ru\www\t2.php on line 14 Warning: Wrong parameter count for preg_replace_callback() in Y:\home\list.phpforum.ru\www\t2.php on line 14 |
Цитата |
что-то типа этого. вместо create_function можно объявить функцию и передать ее имя. |
Я в РНР начинающий... может скажете как?
Спустя 17 минут, 36 секунд (12.11.2009 - 11:18) Romms написал(а):
Ошибку я нашол:
Уже всё работает!
glock18, спасибо!
$text = preg_replace_callback(- так правильно
$pattern,
create_function('$match',
'if (!isset(${$match[1]})) {
global ${$match[1]};
}
return "<i>" . ${$match[1]} . "</i>";'),
$text
);
Уже всё работает!
glock18, спасибо!
Спустя 1 минута, 25 секунд (12.11.2009 - 11:19) glock18 написал(а):
да, все верно. скобку не там закрыл.