Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Php почему не работает данная функция?

Доктор Кот Профи (741), закрыт 1 месяц назад
preg_match_all("/\[[^\]]*\]/", $intext, $outttext);
foreach($outttext as $outtext1){
if (array_key_exists($outtext1, $balles)){
.....
}

Выдает ошибку, что переменная $outtext1 не является строкой. Как быть?
Лучший ответ
Андрей Высший разум (464962) 2 месяца назад
Потому, что обратные слеши в строках, обрамлённых двойными кавычками, надо экранировать обратными слешами.

Либо так:
 "/\\[[^\\]]*\\]/" 
Либо так:
 '/\[[^\]]*\]/' 

Потому, что $outtext1 - НЕ строка, а массив, содержащий одну строку. О чём прямо написано в официальной русской документации: https://www.php.net/manual/ru/function.preg-match-all.php
 array_key_exists($outtext1[0], $balles) 
Остальные ответы
Похожие вопросы