<a href="http://www.google.com/search?q='.urlencode(current(explode('(', $ask_key))).'" target="_blank">
我无法理解urlencode(current(explode('(', $ask_key )))
的作用
任何人都可以解释一下代码的作用吗?
答案 0 :(得分:3)
explode将字符串$ask_key
放入使用(
作为分隔符的数组中(如果$ask_key
的值为a(b(c
,则为array('a', 'b', 'c')
将被退回。
并抓住第一个,即current(因为新数组将指向其第一个元素),该数组的元素
然后urlencode它(使其可以安全地用于查询字符串)。
答案 1 :(得分:1)
$array
是string,必须包含多个值,以(
分隔。
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