gpt4 book ai didi

php - 在 preg 函数中保存一个值

转载 作者:行者123 更新时间:2023-12-04 05:24:41 27 4
gpt4 key购买 nike

我有这个代码:

<?php
$array = array();
$test = 'this is a #test';
$regex = "#(\#.+)#";
$test = preg_replace($regex, '<strong>$1</strong>', $test);
echo $test;
?>

我想做: $array[] = $1
请问有人有什么建议吗?

最佳答案

如果你使用 PHP ≥ 5.3.0 你可以使用 anonymous function preg_replace_callback .首先是回调:

$array = array();
$callback = function ($match) use (&$array) {
$array[] = $match[1];
return '<strong>'.$match[1].'</strong>';
};

$input = 'this is a #test';
$regex = '/(#.*)/';
$output = preg_replace_callback($regex, $callback, $input);
echo "Result string:\n", $output, "\n";
echo "Result array:\n";
print_r($array);

结果:
Result string:
this is a <strong>#test</strong>
Result array:
Array
(
[0] => #test
)

PHP 5.3.0 之前只能使用 create_function 或在代码中其他地方定义的任何函数。他们都不能访问局部变量 $array$callback 的父作用域中定义.在这种情况下,您必须为 $array 使用全局变量。 (呃!)或者在类中定义函数并制作 $array那个类(class)的一员。

关于php - 在 preg 函数中保存一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13321745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com