2011-03-18 162 views
1
<a href="http://www.google.com/search?q='.urlencode(current(explode('(', $ask_key))).'" target="_blank"> 

我不明白urlencode(current(explode('(', $ask_key)))做什麼。
任何人都可以解釋我的代碼做什麼?這段代碼做了什麼?

回答

1

$arraystring,它必須包含幾個值,用(分隔。

explode()會將此字符串拆分爲array,並使用(作爲分隔符。

current()將獲取數組的當前元素 - 第一個。

最後,urlencode()將對特殊字符進行編碼,以便它們可以在URL中使用。


因此,基本上:

  • 以一個字符串的第一個元素,如these(are(elements
  • 應用urlencode功能,因此它可以在URL中使用。


作爲一個例子,這裏是相同種類的代碼,分割成幾個不同的操作,使用一個變量來存儲每個函數的結果 - 所以我們可以轉儲這些結果:

$string = "[email protected]?i&s(a couple(of elements"; 
var_dump($string); 

$array = explode('(', $string); 
var_dump($array); 

$first_item = current($array); 
var_dump($first_item); 

$encoded = urlencode($first_item); 
var_dump($encoded); 

四個var_dump()會給這個輸出:

string '[email protected]?i&s(a couple(of elements' (length=30) 

array 
    0 => string '[email protected]?i&s' (length=9) 
    1 => string 'a couple' (length=8) 
    2 => string 'of elements' (length=11) 

string '[email protected]?i&s' (length=9) 

string 'th%40is%3Fi%26s' (length=15) 

這都說明在細節你的表情的每一個部分呢。

+0

粗獷再次勝過簡潔:) – webbiedave 2011-03-18 06:55:59

3

explode字符串$ask_key成使用(作爲分隔符的陣列(因此,如果的$ask_key值爲a(b(c,然後array('a', 'b', 'c')將被返回。

並抓住第一,即current(作爲新的數組被指向到其第一元件)陣列的,元件

然後urlencode它(使它安全使用在查詢字符串)。

+0

謝謝你,你讓我知道爆炸()一樣。 – enjoylife 2011-03-18 05:42:20

1
$ask_key = 'as das df(sdfkj as(asf a152451(sdfa df1 9'; //you key 

echo $ask_key."<br/>"; 

$array = explode('(', $ask_key); //explode will split the array on '(' 

echo "<pre>"; 
print_r($array); 
echo "</pre>"; 


$curr = current($array); //current will return the curr element of array 

echo $curr."<br/>"; 

$enc = urlencode($curr); //url will encode url i.e. valid url 

echo $enc; 

結果::

as das df(sdfkj as(asf a152451(sdfa df1 9 

Array 
(
    [0] => as das df 
    [1] => sdfkj as 
    [2] => asf a152451 
    [3] => sdfa df1 9 
) 

as das df 
as+das++df 
+0

很好的例子。謝謝。 – enjoylife 2011-03-18 05:45:57

+0

當然歡迎你 – 2011-03-18 05:53:01