我正在做一个奇怪的项目。我是php的新手,所以到目前为止一直是一场斗争。
我有一个表单,它提供一个数组并发布它:
...
return($keywords);
}
$keywordlist = explode("\r\n", $keywordlist);
foreach($keywordlist as $keyword){
print_r(mixer(strtolower($keyword)));
}
我明白了:
Array ( [0] => one [1] => two [2] => three [3] => four [4] => five [5] => six [6] => ....
但是希望它能像这样出来:
%28one%2Ctwo%2Cthree%2Cfour%2Cfive%2Csix%29
最终希望能够将它附加到像ask.com搜索这样的网址的末尾:
"http://www.ask.com/web?q=(put my keywords here)"
然后导航
理论上,就像我在搜索栏中键入“(一,二,三,四,五,六)”并按下回车键。
希望这有点道理。
答案 0 :(得分:7)
这样的事情:
$commaSeparated = implode(',', $array);
$withParens = '(' + $commaSeparated + ')';
$urlEncoded = urlencode($withParens);
print $urlEncoded;
答案 1 :(得分:3)
使用php implode()功能。
所以你可以这样做:
$array = new array ( [0] => one [1] => two [2] => three [3] => four [4] => five [5] => six );
$string = '%28'.implode( '%2C', $array ).'%29';
现在$string
将是您需要的
答案 2 :(得分:2)
$keywordlist = explode("\r\n", $keywordlist);
array_walk($keywordlist, 'strtolower');
$keywords = '('.implode(",", $keywordList).')';
答案 3 :(得分:2)
print_r
就像这样打印你的数组。
http://php.net/manual/en/function.print-r.php
如何解决这个问题取决于一些事情。 mixer()
做了什么?关键字总是小写的吗?如果混音器没有做太多而且关键字是小写的,你可以做类似的事情:
$ string ='%28'。爆( '%2C', $ keyword)。 '%29';
如果是URL编码,则可以使用函数url_encode
而不是手动添加上述编码值。
答案 4 :(得分:2)
此代码:
$keywords = array('one', 'two', 'three');
$query = '(' . implode(',', $keywords) . ')';
echo('Search query: ' . $query . PHP_EOL);
$query = rawurlencode($query);
echo('Encoded: ' . $query . PHP_EOL);
给出这个输出:
搜索查询:(一,二,三)编码: %28one%2Ctwo%2Cthree%29
答案 5 :(得分:2)
这样的东西?
$input = array('one', 'two', 'three');
$s = implode(',', $input);
$s = '('.$i.')';
print urlencode($s);
答案 6 :(得分:1)
您可以使用urlencode对数组的每个部分进行编码,然后手动将其放入您的网址(自己制作网址字符串)。 http://php.net/manual/en/function.urlencode.php
或者您可以改为使用此功能:http://php.net/manual/en/function.http-build-query.php