нужна помощь в регулярном выражении а именно:
Вот так скрипт работает в норме:
function callbackFunction( $matches) {
echo $matches[1]."\n";
echo $matches[2]."\n";
echo $matches[3]."\n";
}
$pattern = '!\\[hide=([0-9,]+),user=(.+?)\\](.+?)\\[\\/hide\\]!is';
$subject = '[hide=3,user=test1,test2]rgqgefrefe[/hide]';
print_r(preg_replace_callback($pattern, 'callbackFunction', $subject, -1));
Вывод
3
test1,test2
rgqgefrefe
если же мы убираем в субъекте user, код не работает
$subject = '[hide=3]rgqgefrefe[/hide]';
Мне нужно что бы хайд работал как с [hide=цифра,user=логин]
, а так же по раздельности как [hide=1]
так и [hide=login1,login2]
и что бы результат был как
1
user1,user2
rgqgefrefe
Так как у вас вот эта часть user=test1,test2
не обязательна, то было бы лучше использовать именованные подмаски. Шаблон будет выглядеть так:
\[hide=(?<hide>.+?)(?:,\s?user=(?<user>.+))?](?<text>.+?)\[/hide]
Код лучше записать с использованием preg_match_all():
$str = '[hide=3, user=текст1, текст2]текст[/hide]';
//$str = '[hide=hide]текст[/hide]'; // Этот вариант тоже рабочий
$patt = '~\[hide=(?<hide>.+?)(?:,\s?user=(?<user>.+))?](?<text>.+?)\[/hide]~';
preg_match_all($patt, $str, $arr);
var_dump($arr['hide'], $arr['user'], $arr['text']);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как добавить произвольное поле к записи, чтобы оно отображалось на сайте и в админке?
Есть ли в php библиотека (что-то на подобии phpredbeans), для работы с Oracle?