从PHP中的字符串中提取数组中的预定义短语
提取$string中的$短语 $new_字符串输出应为:new York new Jersey Computer Repair Tech 请注意,如果您想进行区分大小写的搜索,那么您的查找将不区分大小写 使用strpo而不是stripos 请注意,如果您想进行区分大小写的搜索,那么您的查找将不区分大小写从PHP中的字符串中提取数组中的预定义短语,php,Php,提取$string中的$短语 $new_字符串输出应为:new York new Jersey Computer Repair Tech 请注意,如果您想进行区分大小写的搜索,那么您的查找将不区分大小写 使用strpo而不是stripos 请注意,如果您想进行区分大小写的搜索,那么您的查找将不区分大小写 使用STRPO而不是stripos您需要使用stripos以获得最佳效率:。您的代码如下所示: $new_string = ""; foreach($phrases as $p) {
使用STRPO而不是stripos您需要使用stripos以获得最佳效率:。您的代码如下所示:
$new_string = "";
foreach($phrases as $p) {
$pos = stripos($string, $p);
if ($pos !== false) {
$new_string .= " ".$p;
}
}
$new_string = trim($new_string); // to remove additional space at the beginnig
echo $new_string;
正如Davo的回答一样,stripos将为您提供一个不区分大小写的搜索您需要使用stripos以获得最佳效率:。您的代码如下所示:
$new_string = "";
foreach($phrases as $p) {
$pos = stripos($string, $p);
if ($pos !== false) {
$new_string .= " ".$p;
}
}
$new_string = trim($new_string); // to remove additional space at the beginnig
echo $new_string;
与Davo的答案一样,stripos将为您提供不区分大小写的搜索功能
$matches = array();
foreach($phrases as $phrase) {
if(stripos($string,$phrase) !== false){
$matches[] = $phrase;
}
}
$new_string = implode(" ",$matches);
试试这个功能
$matches = array();
foreach($phrases as $phrase) {
if(stripos($string,$phrase) !== false){
$matches[] = $phrase;
}
}
$new_string = implode(" ",$matches);
你试过什么?这是非常简单的,或者至少是非常接近的。那么你试过什么呢?谷歌搜索?我搜索过,但只找到了提取单个单词的解决方案,似乎找不到提取包含多个单词的短语的解决方案。你尝试过什么?这是非常简单的,或者至少是非常接近的。那么你试过什么呢?谷歌搜索过吗?我搜索过,但只找到了提取单个单词的解决方案,似乎找不到提取包含多个单词的短语的解决方案。这似乎引入了一个额外的不必要的步骤。我们已经有了我们的短语,为什么还要麻烦子字符串呢?如果$pos为false,这里会发生什么呢?实际上,如果没有匹配项,strpos将返回false。stripos,因为大小写不同。另外,原始字符串已经在$p中,因此不需要substr调用,这将使它更快。这也将在字符串前面加一个空格,这就是为什么我在回答中内爆了一个数组。要这样做,您还需要在字符串上使用trim来删除不必要的空格。没有考虑到这一点,添加了它,但您的效果似乎更好+1这似乎引入了额外的不必要步骤。我们已经有了我们的短语,为什么还要麻烦子字符串呢?如果$pos为false,这里会发生什么呢?实际上,如果没有匹配项,strpos将返回false。stripos,因为大小写不同。另外,原始字符串已经在$p中,因此不需要substr调用,这将使它更快。这也将在字符串前面加一个空格,这就是为什么我在回答中内爆了一个数组。要这样做,您还需要在字符串上使用trim来删除不必要的空格right,没有考虑到这一点,添加了它,但是您的字符串看起来更好+1