我能以某种方式知道在 preg_replace_callback 的回调中正在发生哪个替换吗?
我使用 preg_replace_callback 来替换字符串中的特定标记。但除了实际的标记之外,我还需要知道该标记是主题字符串中的第一个、第二个还是第三个。有什么方法可以访问该信息吗?
我在 preg_replace_callback 定义中发现了一个参数 $count (http://php.net/manual/en/function.preg-replace-callback.php),它计算替换次数,但我不确定是否可以从回调中访问它。在所描述的上下文中是否有任何用法示例?
I'm using preg_replace_callback to substitute particular tokens within the string. But apart from actual token I need to know as well whether that token was first, second or third in a subject string. Is there any way to access that info?
I found an argument $count in preg_replace_callback definition (http://php.net/manual/en/function.preg-replace-callback.php), which counts replacements, but I'm not sure if it is accessible from within callback. Any example of the usage in described context?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
$count
out 变量仅在所有替换完成后设置。相反,尝试使用静态变量:The
$count
out variable is only set after all the replacements are done. Instead, try a static variable:您始终可以创建一个非局部变量来保存计数。
You can always create a non-local variable to keep the count.
在 php 5.3+ 中,您还可以使用 closure (而不是全局或静态变量)
With php 5.3+ you can also use a closure (instead of a global or static variable)