问题标签 [preg-replace-callback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1316 浏览

php - PHP 匹配 URL 和使用 preg_replace_callback()

我使用以下内容查找 $content 中的所有 URL

但这将取决于http://.http://www.google.com/some/path

我的问题是:

1 - 我怎样才能修改它以点击仅以开头的链接www,例如www.google.com

2 - 主要目的是找到链接,并将它们替换为从另一个函数返回的值。我尝试了 preg_match_callback() ,但它不起作用(可能使用错误..

现在,在我的逻辑(这可能是错误的)中,所有匹配项$content都将替换为$output. 我究竟做错了什么 ?

(请不要使用匿名函数 - 我正在旧服务器上测试)

编辑我- 在评论后,试图澄清更多细节

打回来 :

0 投票
3 回答
4546 浏览

php - PHP 理解回调 - preg_replace_callback() 和 preg_match_all() 之间的区别

我对使用有点困惑preg_replace_callback()

我有一个$content里面有一些网址。

以前我用

但我真正需要的是用我解析的 URL 替换原始 URL ...

所以我尝试了 preg_replace_callback:

和 :

我假设回调将以每个匹配项都会调用回调(递归?)并返回 results 的方式工作,从而允许用解析$url的 from动态替换 $content 中的 URL o99_simple_callbac()

但是这里的另一个问题(尤其是这个评论)引发了我的怀疑。

如果实际上传递了整个匹配数组,那么我之前使用的(在第一个示例中)和回调示例preg_replace_callback()之间实际上有什么区别?preg_match_all()

我错过了什么/误解了什么?$content用解析的 url替换找到的 URL 的正确方法是什么?

0 投票
1 回答
852 浏览

php - 正则表达式错误 preg_replace_callback() :未知修饰符“。” 在

我得到以下字符串:

我试图用函数替换中间的代码:'codeParser' 正则表达式是:

但收到此错误:

0 投票
0 回答
359 浏览

php - preg_replace_callback vs while 逐行循环用于模板编译器

我构建了用于解析 html 模板的 php 类,并且我使用 preg_replace_callback 函数来解析模板 while 循环和 if 条件,for 循环等

我对每个过程重复了多次该函数,例如一次用于解析while循环,另一次用于if条件解析..等,并在解析模板内的包含文件时再次重复所有这些步骤,

但是我认为这种解析方法在解析大模板时很慢,

所以我认为使用一个while循环并逐行读取模板并进行比较然后解析找到的行会更快,

那么你的意见是,使用一个while循环并逐行读取模板文件并解析它更有用吗?或使用 preg_replace_callback ?

是否首选解析模板内的代码?通过用 php 代码替换它,然后使用 eval() 评估模板?还是在 php 文件中解析它然后将结果附加到模板中?

0 投票
1 回答
2118 浏览

php - 在 preg_replace_callback 中使用局部变量 - PHP

如何preg_replace_callback在 PHP 中使用局部变量。我有以下代码:

而且也是$str一个字符串,$reg_exp是一个正则表达式。这两个定义都很好。

谢谢你的帮助。

0 投票
3 回答
2363 浏览

php - 如何知道 preg_replace_callback 中的匹配计数 - PHP

我在 php 中有这段代码-:

在功能中pregRepler,我想知道当前match number是第一个匹配还是第二个匹配或其他什么...

我该怎么做。??

0 投票
2 回答
81 浏览

php - 用列数据替换括号内的字符串

我编写了一些代码来允许对特定数据列进行计算。

例如 {1}*{2} 将导致第 1 列乘以第 2 列。我需要做的是用列的实际值替换这些数字。

简单地说,我需要能够获取括号内的值,然后像 $column["value from parenthesis"] 一样使用它来获取要插入计算的值。

然后我可以评估字符串。

提前致谢

0 投票
1 回答
3538 浏览

php - 如何将 preg_replace e 转换为 preg_replace_callback?

好吧,所以我有点困惑。这是我现在拥有的代码,但我刚刚发现e修饰符已被弃用。如何将其转换为preg_replace_callback()? 我还没有弄明白。

0 投票
1 回答
4427 浏览

php - 如何访问 preg_replace_callback 中的变量?

我正在尝试用传递的数组中的值替换{{key}}我的项目。$text但是当我尝试添加print_r以查看发生了什么时,我得到了一个Undefined variable: kvPairs错误。如何在 ? 中访问我的变量表单preg_replace_callback

更新:

我已经尝试过global范围的东西,但它也不起作用。我添加了 2 个打印语句来查看在做什么,一个在内部,一个在preg_replace_callback.

我得到的输出是:

0 投票
1 回答
126 浏览

php - 用另一个数组中的文本替换关联数组中的文本

我有一个这样的数组

我也有这样的清单

我基本上想用数组中的实际值替换括号内的所有标签。我尝试了以下方法,但它似乎只正确返回了一个值

我只得到一个看起来像这样的结果

我该怎么做才能将所有结果返回到具有所有正确值的数组中

我尝试更改函数 replace_text 以将值设置为数组并像这样返回数组

但这会返回

我还应该补充一点,所有这些内容都是动态的,所以一次它可能是 [first_name] 和下一个 [name_first] 或其他东西,这就是为什么我需要细化每个括号并将括号内的文本替换为匹配的内容大批。