Я использую это с успехомphp substr - как найти <br> перед запуском substr?
$str = "{source}do_something";
if(substr($str, 0, 8) == "{source}")
но что я должен делать, если я
$str = "<br><br>{source}do_something";
цель состоит в том, чтобы иметь возможность добавлять пустые строки (столько, сколько необходимо) перед обжигом мой do_something
Благодаря
EDIT
нормально, так что мне нужно, чтобы запустить функцию
меню, вертикальная, истинная
, но мне также нужно, чтобы эти пустые строки перед моим меню
моя строка
<br><br><br><div>{source}_menu_;vertical,true{/source}</div>
без разрывов строк Использую
if(substr($pos, 0, 8) == "{source}") {
$campos = substr_replace($description, '', 0, 8);
$campos = substr($campos, 0, -9);
$funcao = explode(";", $campos);
call_user_func_array($funcao[0], array($funcao[1]));
}
теперь мне нужно то же самое, но с разрывами строк, поэтому браузер фактически отображает разрывы строк, а затем запускает функцию.
Я надеюсь, что мой английский достаточно хорошо, чтобы сделать это ясно ...
Благодаря
правка раствором
$startTag = "{source}";
$endTag = "{/source}";
$initial_strpos = strpos($str, $startTag);
$final_strpos = strpos($str, $endTag);
if ($initial_strpos !== false) {
$beforeTag = substr($str, 0, $initial_strpos);
echo htmlspecialchars_decode($beforeTag, ENT_QUOTES);
$start = $initial_strpos + strlen($startTag);
$innerText = substr($str, $start, strpos($str, $endTag)-$start);
$funcao = explode(";", $innerText);
call_user_func_array(array_shift($funcao), $funcao);
$aferTag = strpos($str, $final_strpos);
echo htmlspecialchars_decode($aferTag, ENT_QUOTES);
}
это будет печатать мои разрывы строк и запустить свою функцию ,
Вы можете сравнить строку после запуска 'strip_tags()' на ней - если это работает для вас. Не совсем ясно, какова конечная цель: –
Вы пытаетесь извлечь строку между фигурными скобками '{' и '}'? – anubhava
точно, моя цель - запустить функцию, имя которой находится внутри {source}, например