当前位置: 首页 > 面试题库 >

在函数内部的preg_replace thats中调用函数

吕自明
2023-03-14
问题内容

我有一些代码,其结构类似于此

           function bbcode($Text)
           { //$Text = preg_replace("/\[video\](.+?)\[\/video\]/",embed_video($1), $Text);
    return $Text;}

    function embed_video($url){
if (preg_match("/http:\/\/www.youtube.com\/watch\?v=([0-9a-zA-Z-_]*)(.*)/i", $url, $matches)) {
    return '<object width="425" height="350">'.
           '<param name="movie" value="http://www.youtube.com/v/'.$matches[1].'" />'.
           '<param name="wmode" value="transparent" />'.
           '<embed src="http://www.youtube.com/v/'.$matches[1].'&autoplay="0" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350" />'.
           '</object>';
}
    return $url;
    }

$lolcakes = "[video]http://youtube.com/id/xxxxxxpron[/video]";
$lolcakesconverted = bbcode($lolcakes);

问题是它向我吐了一个错误。

解析错误:语法错误,意外的T_LNUMBER,预期的T_VARIABLE或’$’

有关于如何在bbcode函数的preg_replace内调用embed_video的想法吗?

谢谢!


问题答案:

您可以在上使用“
e”修饰符preg_replace()(请参见模式修饰符)

return preg_replace("/\[video\](.+?)\[\/video\]/e", "embed_video('$1')", $Text);

告诉preg_replace()将第二个参数视为PHP代码。



 类似资料:
  • 问题内容: 这是我之前的问题的后续工作,但是如果我在其中的映射如何在React的render()方法中调用函数。 示例(此代码在extended的类内): 无论我尝试什么,我总是最终得到“ this.getItemInfo()不是一个函数”。 我在函数内部进行了on操作,实际上是在引用Window对象,但是我似乎找不到改变它的方法。 我累了: 定义为函数getItemInfo(){..} 作为第二

  • 我定义了一个名为marger的函数来查找两个参数(num1、num2)之间的较大数。现在,我想在另一个名为“最大”的函数中使用这个函数,这个函数获得一个数组并返回该数组的最大个数,但我被卡住了。有人能帮我吗?下面是我的代码:

  • 问题内容: 我需要在QueryDsl Native MySQL中运行以下查询。 上面的查询具有嵌套的3个mysql函数,例如cast,json_unquote和json_extract。在QueryDsl中,我为每个函数创建了单独的表达式,如下面的代码所示。 我必须创建更多数量的表达式,而不要创建更多的函数。为了降低复杂性,是否可以在单个表达式中调用多个函数? 问题答案: 我找到了问题的答案。 感

  • 问题内容: 我正在尝试使用jQuery mobile 1.4.3创建类似于iOS警报视图的弹出窗口。我需要从javascript事件中触发警告消息,例如带有OK按钮的确认消息,其中显示了对Web服务的ajax响应调用。 我的第一个问题是通过弹出窗口小部件传递数据,而我发现很多搜索都是不可能的。 我发现几乎可以满足我的代码需求: 问题是我需要不是通过单击按钮而是通过函数来​​调用此函数:类似于以下内

  • 在过去的几个小时里,我一直在调试、配置和命名它,我似乎不明白为什么会发生这种情况。 我正在尝试调用一个 lambda 函数,该函数只是从 ec2 中检索基本信息。当我在aws控制台中测试此lambda函数时,它似乎工作正常。但是,使用以下代码在另一个lambda中调用它; 它只是超时了。没有任何反应…两个Lambda都连接到VPC和所有子网 我认为是我的新VPC导致了这个问题。我的VPC包括: 1

  • 问题内容: 我正在为node.js代码编写一些单元测试,并且使用Sinon通过以下方式存根函数调用 该是这样的 对于诸如这样的用例,模拟显然可以工作,但是我想知道如何在使用时在anotherF()内部模拟myFunction()调用? 问题答案: 您可以稍微重构一下模块。像这样。