Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 替换字符串中的多个单词_Php - Fatal编程技术网

Php 替换字符串中的多个单词

Php 替换字符串中的多个单词,php,Php,我试图替换查询字符串中的某些单词,此代码仅在我使用1行时有效,但当我尝试使用2行或更多行时,会导致foreach循环出现问题,我是否可以将所有替换操作合并到1行中 $query = str_replace('','+',$query); // Replaces white space with + $query = str_replace('and','&',$query); // Replaces and with & $query = str_replace('not','-

我试图替换查询字符串中的某些单词,此代码仅在我使用1行时有效,但当我尝试使用2行或更多行时,会导致foreach循环出现问题,我是否可以将所有替换操作合并到1行中

$query = str_replace('','+',$query); // Replaces white space with +
$query = str_replace('and','&',$query); // Replaces and with &
$query = str_replace('not','-',$query); // Replaces not with -
$query = str_replace('or','|',$query);  // Replaces or with |
这是我的foreach循环

foreach($jsonObj->d->results as $value)
    {   $i = 0;
        $bingArray[str_replace ($find, '', ($value->{'Url'}))] = array(         
    'title'=> $value->{'Title'},
    'score' => $score--
     );

我在foreach循环中有一个str_replace,这就是我得到错误的地方

创建搜索和替换单词/字符数组,并将其传递给str_replace

是的,您可以使用str_replace执行此操作:

$a1= array("", "and", "not", "or");
$a2= array("+", "&", "-", "|");


$result= str_replace($a1, $a2, $query);

您可以在str_replace中使用数组而不是字符串:

您还可以先将数组保存在变量中,然后将其传递给str_replace


关于str_replace的更多详细信息:

显示foreach循环请不要使用,并开始使用准备好的语句mysqli/pdo。如果你坚持的话,我会说你会失败,因为有太多的混淆方法可以解决这个问题:还要注意stru-replace接受数组作为搜索/替换oneliner:p尽管你可以使用数组作为stru-replace的参数,但这并不能解决你的问题,因为它在功能上做的是相同的,我想你会发现上面还有别的东西。请显示更多的代码。这是我的foreach循环
$a1= array("", "and", "not", "or");
$a2= array("+", "&", "-", "|");


$result= str_replace($a1, $a2, $query);
$query = str_replace(array(' ', 'and', 'not', 'or'), array('+', '&', '-', '|'), $query);