Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:使用在第一个元素之后起作用的替换字符串_Php_Str Replace - Fatal编程技术网

Php Laravel:使用在第一个元素之后起作用的替换字符串

Php Laravel:使用在第一个元素之后起作用的替换字符串,php,str-replace,Php,Str Replace,我需要一个stru_替换或任何在第一个元素之后起作用的东西,如下所示: "Hello-World-I-am-Pr-Pro" 这就是我想要的结果: "Hello-World I am Pr Pro" PHP正则表达式引擎将使用preg_replace为您实现这一点: function replaceViaRegex($needle, $to, $haystack) { $regexStr = '/'.preg_quote($needle, '/').'/'; $result =

我需要一个stru_替换或任何在第一个元素之后起作用的东西,如下所示:

"Hello-World-I-am-Pr-Pro"
这就是我想要的结果:

"Hello-World I am Pr Pro"

PHP正则表达式引擎将使用preg_replace为您实现这一点:

function replaceViaRegex($needle, $to, $haystack)
{
    $regexStr = '/'.preg_quote($needle, '/').'/';
    $result = preg_replace($regexStr, $to, $haystack, 1);
    return $result;
}

$foo = "Hello-World-I-am-Pr-Pro";
$foo2 = replaceViaRegex('-', ' ', $foo); 

echo $foo2;
或者,你也可以这样做

$foo = "Hello-World-I-am-Pr-Pro";
$regex = '/-/';
$foo2 = preg_replace($regex, ' ', $foo, 1);
。。。但这远远不够灵活。甚至

$foo2 = preg_replace('/-/', ' ', "Hello-World-I-am-Pr-Pro", 1);
。。。但是在过去,我很难让preg_replace work带有一个变量,所以我只是避免让它变得那么密集


我使上面的函数非常清晰和简单,以便您可以按照逻辑进行修改。如果您想要好的、可维护的代码,那么使用第一个版本比使用其他两个版本要好得多。

PHP正则表达式引擎将使用preg\u replace为您提供:

function replaceViaRegex($needle, $to, $haystack)
{
    $regexStr = '/'.preg_quote($needle, '/').'/';
    $result = preg_replace($regexStr, $to, $haystack, 1);
    return $result;
}

$foo = "Hello-World-I-am-Pr-Pro";
$foo2 = replaceViaRegex('-', ' ', $foo); 

echo $foo2;
或者,你也可以这样做

$foo = "Hello-World-I-am-Pr-Pro";
$regex = '/-/';
$foo2 = preg_replace($regex, ' ', $foo, 1);
。。。但这远远不够灵活。甚至

$foo2 = preg_replace('/-/', ' ', "Hello-World-I-am-Pr-Pro", 1);
。。。但是在过去,我很难让preg_replace work带有一个变量,所以我只是避免让它变得那么密集


我使上面的函数非常清晰和简单,以便您可以按照逻辑进行修改。如果你想要好的、可维护的代码,那么使用第一个版本比使用另外两个版本要好得多。

你尝试了什么?我在laravel,我没有发现任何东西,所以你正在寻找适合你自定义功能的内置函数?也许不知道!只是想处理这件事!需要帮助!你试过什么了?我在laravel,我什么也没发现你在寻找适合你的自定义功能的内置功能?也许我不知道!只是想处理这件事!需要帮助!没有比这更简短的答案了?!需要再短一点!我想一定是!这基本上是一个1行修复。。。我不确定你需要多短。一旦添加了函数,则替换viaregex('-','$foo);从那时起,你会做任何你想做的事情,你可以根据需要改变。除了那一行之外,不需要重复代码。这有意义吗?这是一种非常常见的编码模式,当您需要某个结果的特定函数时,也可以执行$foo=“Hello-World-I-am-Pr-Pro”$foo2=预替换('/-/','$foo,1);但这远远不够灵活。我把上面的函数做得非常清晰和简单,这样你就可以按照逻辑进行修改了!救救我!没有比这更简短的答案了?!需要再短一点!我想一定是!这基本上是一个1行修复。。。我不确定你需要多短。一旦添加了函数,则替换viaregex('-','$foo);从那时起,你会做任何你想做的事情,你可以根据需要改变。除了那一行之外,不需要重复代码。这有意义吗?这是一种非常常见的编码模式,当您需要某个结果的特定函数时,也可以执行$foo=“Hello-World-I-am-Pr-Pro”$foo2=预替换('/-/','$foo,1);但这远远不够灵活。我把上面的函数做得非常清晰和简单,这样你就可以按照逻辑进行修改了!救救我!