2013-07-22 122 views
-3

我試圖替換查詢字符串中的某些單詞,只有當我使用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函數,這就是在那裏我遇到了錯誤

+0

顯示foreach循環請 – Sebas

+1

請不要並開始使用預準備語句(mysqli/pdo)。如果你堅持,那麼我會說你會失敗,因爲有太多的混淆方法來解決這個問題:)還要注意,str_replace接受一個數組作爲搜索/替換(對於oneliner:p) – HamZa

+0

雖然你可以使用數組作爲參數str_replace(),這不會解決你的問題,因爲功能上它做同樣的事情,我想你會發現這裏有別的東西。請再展示一些代碼。 – Anigel

回答

2

創建排列搜索並替換單詞/字符並將其傳遞給str_replace

$search = array('','and','not','or'); 
$replace= array('+','&','-','|'); 
$query = str_replace($search,$replace,$query); 
0

是的,你可以使用str_replace做到這一點:

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


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

你可以使用數組,而不是字符串str_replace

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

您也可以先保存數組變量,然後將它們傳遞給str_replace

關於012的更多詳情:http://www.php.net/manual/en/function.str-replace.php

相關問題