Буду рад даже попытке правильно направить мои мысли в нужную сторону.
Спустя 24 минуты, 54 секунды (5.05.2011 - 21:51) inpost написал(а):
str_replace('@','(in)',$text)
Спустя 3 минуты, 44 секунды (5.05.2011 - 21:55) Joliat написал(а):
the_author_meta('user_email', $comment->user_id)
Это и есть переменная, о которой я говорил.
При
$string = "test@mail.ru";
$patterns = "/@/";
$replacements = "(in)";
echo preg_replace($patterns, $replacements, $string); ?>
Результат получаю: test(in)mail.ru
Но при использовании переменной:
$string = the_author_meta('user_email', $comment->user_id);
$patterns = "/@/";
$replacements = "(in)";
echo preg_replace($patterns, $replacements, $string); ?>
В результате ничего не заменяется. В чем может таиться причина?
Спустя 2 минуты, 3 секунды (5.05.2011 - 21:57) Joliat написал(а):
inpost, при команде str_replace тоже не выходит.
Может мне нужно как-то преобразовать переменную the_author_meta('user_email', $comment->user_id) ?
Может мне нужно как-то преобразовать переменную the_author_meta('user_email', $comment->user_id) ?
Спустя 2 минуты, 36 секунд (5.05.2011 - 21:59) inpost написал(а):
Joliat
Скорее всего $string - не строковая, а какой-то массив, или какой-то левый вид имеет.
сделай echo $string и посмотри, что получишь.
Скорее всего $string - не строковая, а какой-то массив, или какой-то левый вид имеет.
сделай echo $string и посмотри, что получишь.
Спустя 9 минут, 58 секунд (5.05.2011 - 22:09) Joliat написал(а):
кстати, echo $string; ничего вообще не вывел.
А the_author_meta('user_email', $comment->user_id) - содержит действительно массив с адресами почты пользователей. если убрать ", $comment->user_id", то будет выводиться только адрес админа, т.к. он первый из пользователей.
Есть выход из сложившейся ситуации?
А the_author_meta('user_email', $comment->user_id) - содержит действительно массив с адресами почты пользователей. если убрать ", $comment->user_id", то будет выводиться только адрес админа, т.к. он первый из пользователей.
Есть выход из сложившейся ситуации?
Спустя 2 минуты, 42 секунды (5.05.2011 - 22:12) inpost написал(а):
Joliat
Нет, потому что возвращается пустой результат.
Можешь попробовать так: print_r($string); , но если там все же находится массив, то выход есть. Покажи результат.
Нет, потому что возвращается пустой результат.
Можешь попробовать так: print_r($string); , но если там все же находится массив, то выход есть. Покажи результат.
Спустя 2 минуты, 10 секунд (5.05.2011 - 22:14) Joliat написал(а):
Тоже пусто (((
Спустя 2 минуты, 54 секунды (5.05.2011 - 22:17) inpost написал(а):
Функция the_author_meta ничего не вернула, проблема в ней.
Спустя 6 минут, 25 секунд (5.05.2011 - 22:24) Joliat написал(а):
Движок wordpress и там есть такая строка:
Она на странице добавляет к каждому комментарию адрес почты зарегистрированного пользователя.
И она работает отлично. Но почему так ничего не возвращает - не понимаю(
<?php the_author_meta('user_email', $comment->user_id); ?>
Она на странице добавляет к каждому комментарию адрес почты зарегистрированного пользователя.
И она работает отлично. Но почему так ничего не возвращает - не понимаю(
Спустя 1 минута, 37 секунд (5.05.2011 - 22:25) Joliat написал(а):
кстати, когда пишешь так:
тогда возвращается адрес почты.
print_r(the_author_meta('user_email', $comment->user_id));
тогда возвращается адрес почты.
Спустя 3 минуты, 6 секунд (5.05.2011 - 22:28) walerus написал(а):
Цитата (Joliat @ 5.05.2011 - 19:24) |
Движок wordpress и там есть такая строка:<?php the_author_meta('user_email', $comment->user_id); ?> Она на странице добавляет к каждому комментарию адрес почты зарегистрированного пользователя. И она работает отлично. Но почему так ничего не возвращает - не понимаю( |
Движков много, какой именно файл ? с такой строкой, у себя ничего подобного не нашел
Спустя 29 секунд (5.05.2011 - 22:29) inpost написал(а):
Joliat
Это типо в функции прописано echo? прям внутри? Ну понятное дело тогда, всё через задницу...
Это типо в функции прописано echo? прям внутри? Ну понятное дело тогда, всё через задницу...
ob_start();
the_author_meta('user_email', $comment->user_id);
$string = ob_get_contents();
ob_end_clean();
Спустя 22 минуты, 21 секунда (5.05.2011 - 22:51) Joliat написал(а):
walerus, файл comments.php в папке с темой.
inpost, без изменений.
inpost, без изменений.
Спустя 2 минуты, 12 секунд (5.05.2011 - 22:53) inpost написал(а):
Joliat
String опять пустой? Смотри функцию, и что она возвращает.
String опять пустой? Смотри функцию, и что она возвращает.
Спустя 7 минут, 7 секунд (5.05.2011 - 23:00) walerus написал(а):
Нету у меня такой переменной/функции, мб темплейт другой, кинь весь код файла или попробуй так.
Результат тоже сюда...
$result_test = the_author_meta('user_email', $comment->user_id);
print_r($result_test );
Результат тоже сюда...
Спустя 4 минуты, 29 секунд (5.05.2011 - 23:05) Joliat написал(а):
echo $string; вернул то же что и просто the_author_meta('user_email', $comment->user_id);
Но решение найдено:
Просто изначально была выбрана неправильно процедура обработки. Вместо str_replace все же нужно использовать preg_replace. С preg_replace все заработало!
Спасибо за помощь!!
Но решение найдено:
<?php
ob_start();
the_author_meta('user_email', $comment->user_id);
$string = ob_get_contents();
ob_end_clean();
$patterns = "/@/";
$replacements = "(in)";
echo preg_replace($patterns, $replacements, strip_tags($string)); ?>
Просто изначально была выбрана неправильно процедура обработки. Вместо str_replace все же нужно использовать preg_replace. С preg_replace все заработало!
Спасибо за помощь!!
Спустя 2 минуты, 20 секунд (5.05.2011 - 23:07) inpost написал(а):
$patterns = '@'; // теперь и str_replace будет работать. Тут регулярки нету, не за чем её вообще использовать, когда можно просто строковой функцией обойтись.
Спустя 3 минуты, 23 секунды (5.05.2011 - 23:11) Joliat написал(а):
Тоже вариант!)) Просто я впервые использую эти функции и не знал как прописывать искомые символы.
Спустя 5 минут, 14 секунд (5.05.2011 - 23:16) inpost написал(а):
А вообще, функция низкосортная у тебя, а так как ты брал шаблон, то такого же уровня и шаблон.
Спустя 13 минут, 39 секунд (5.05.2011 - 23:30) walerus написал(а):
ТС - я как то уже запуталсо либо сплю ), в твоем же втором посте написано именно preg_replace,
Что в последнем коде изменилось то, кроме strip_tags()? И то, эта функция просто удаляет теги в строке и ничего больше, не вижу смысла ее использования в данном коде :unsure:
$string = the_author_meta('user_email', $comment->user_id);
$patterns = "/@/";
$replacements = "(in)";
echo preg_replace($patterns, $replacements, $string); ?>
Что в последнем коде изменилось то, кроме strip_tags()? И то, эта функция просто удаляет теги в строке и ничего больше, не вижу смысла ее использования в данном коде :unsure:
Спустя 59 минут, 11 секунд (6.05.2011 - 00:29) inpost написал(а):
walerus
Функция возвращает не данные, а именно выводит, а вывод данный мы отправляем в буфер ,как это показал я.
Функция возвращает не данные, а именно выводит, а вывод данный мы отправляем в буфер ,как это показал я.
Спустя 2 часа, 58 минут, 26 секунд (6.05.2011 - 03:27) walerus написал(а):
inpost
Та это я понимаю ), я про ТС, в частности что он не заметил за собой, что уже использовал эту функцию, так сказать, чтоб дальше внимательно смотрел/писал
Та это я понимаю ), я про ТС, в частности что он не заметил за собой, что уже использовал эту функцию, так сказать, чтоб дальше внимательно смотрел/писал

_____________
О-о-о-о-о-очень начинающий...