Intereting Posts
WAMP: не удалось открыть поток: нет такого файла или каталога Новая recaptcha не работает дважды (в основном) на той же странице Безопасная аутентификация в кодеригенере Многопоточность / параллельная обработка в PHP Как отображать последние комментарии от Facebook Комментарии социальный плагин? Объединение двух многомерных массивов с использованием ключа и добавление значений выберите только один узел и перейдите на php Автозаполнение JQuery в codeigniter для получения значений, но не отображения их Запрос PDO «LIKE» PHP Send ID из инструкции While во всплывающую форму Лучший способ реализовать счетчик загрузки? Тестирование модуля Laravel с помощью ввода с именем массива Как вызвать одну функцию контроллера в другом контроллере в codeigniter Ограничить страницы от пользователей, не являющихся администраторами (PHP и MySQL) MySQL PHP count (*) возвращает что-то странное

preg_replace с функцией замены

Как вы используете preg_replace с функцией в качестве параметра замены? Я получаю сообщение об ошибке с этим кодом.

 function getInfo($id,$slot){ if(!$id){ return '<b>Error</b> Id Not Returned. Please contact support@site.com for more information.'; } $mm = mysql_query("SELECT * FROM `users` WHERE `id`='".$id."'"); $mma = mysql_fetch_assoc($mm); $p = $mma[$slot]; return $p; //return $id; <- Debug (Returns ID given) } $post = preg_replace( "/\[CallName]([^]]+)\[\/CallName\]/", getInfo('\\1',"fullname"), $post ); 

Модификатор теперь устарел в пользу preg_replace_callback .

Использование образца:

 $x = 'abcd-efg-hijk-lmnop'; $x = preg_replace_callback( '/-(.)/', //pattern function($matches) { //callback return strtoupper($matches[1]); }, $x //subject ); echo $x; //abcdEfgHijkLmnop 

Я думаю, что вы забыли e модификатор (PREG_REPLACE_EVAL) в функции preg_replace, этот модификатор необходим для оценки строки замены как PHP-кода. Это должно быть так:

 $post = preg_replace('~\[CallName\]([^]]+)\[/CallName\]~e', 'getInfo("$1", "fullname")', $post); 

Подробнее см. В этом руководстве .