这段代码有什么作用?

时间:2011-03-18 05:25:42

标签: php

<a href="http://www.google.com/search?q='.urlencode(current(explode('(', $ask_key))).'" target="_blank">

我无法理解urlencode(current(explode('(', $ask_key )))的作用 任何人都可以解释一下代码的作用吗?

3 个答案:

答案 0 :(得分:3)

explode将字符串$ask_key放入使用(作为分隔符的数组中(如果$ask_key的值为a(b(c,则为array('a', 'b', 'c')将被退回。

并抓住第一个,即current(因为新数组将指向其第一个元素),该数组的元素

然后urlencode它(使其可以安全地用于查询字符串)。

答案 1 :(得分:1)

$arraystring,必须包含多个值,以(分隔。

explode()会将此字符串拆分为array,并使用(作为分隔符。

current()将获取数组的当前元素 - 第一个。

最后,urlencode()会对特殊字符进行编码,因此可以在网址中使用它们。


所以,基本上:

  • 获取字符串的第一个元素,例如these(are(elements
  • urlencode函数应用于它,因此可以在URL中使用。


作为一个例子,这里是相同类型的代码,分成几个不同的操作,使用变量来存储每个函数的结果 - 所以我们可以转储这些结果:

$string = "th@is?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 'th@is?i&s(a couple(of elements' (length=30)

array
  0 => string 'th@is?i&s' (length=9)
  1 => string 'a couple' (length=8)
  2 => string 'of elements' (length=11)

string 'th@is?i&s' (length=9)

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

详细显示了表达的每个部分的作用。

答案 2 :(得分: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