PHP传递函数参数里面的preg_replace
问题描述:
您好我有这样的事情:PHP传递函数参数里面的preg_replace
$content = preg_replace('#(\s*)\<pre(.*?)\>(.*?)\</pre\>(\s*)#sie', 'dostuff(\'\\3\', \'\\2\', $content, \'\', \'\\1\', \'\\4\');', $content);
和
$content = preg_replace('#(\s*)\<code(.*?)\>(.*?)\</code\>(\s*)#sie', 'dostuff(\'\\3\', \'\\2\', $content, \'\', \'\\1\', \'\\4\');', $content);
我如何传递一个真/假参数的dostuff函数内部,这取决于正在被正则表达的元素?如果它是<pre>
是真的,并且它的<code>
是假的?
答
你为什么不在你的正则表达式中使用(pre|code)
?您将能够使用$n
或\n
引用HTML标记的名称并将其用作dostuff()的参数。
***这是UNBELIEVABLY不安全!*** – NikiC 2011-04-02 09:53:39
我发布的代码或我想要实现的代码? – Alex 2011-04-02 09:55:59
您的代码。作为一个经验法则:不要使用'e'-modifier或'eval'。有例外,但很少见。现在我可以做一个简单的'
', eval(My code goes here), '
',并且为您的站点设置一个不错的任意代码执行控制台;) – NikiC 2011-04-02 10:00:47