php更改url的数组格式
我正在做一个奇怪的项目。我对php完全陌生,所以到目前为止,这是一场斗争 我有一个表单,它给出了一个数组并将其发布:php更改url的数组格式,php,html,arrays,format,Php,Html,Arrays,Format,我正在做一个奇怪的项目。我对php完全陌生,所以到目前为止,这是一场斗争 我有一个表单,它给出了一个数组并将其发布: ... return($keywords); } $keywordlist = explode("\r\n", $keywordlist); foreach($keywordlist as $keyword){ print_r(mixer(strtolower($keyword))); } 我明白了: Array ( [0] => one [1] => two [
...
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搜索的url末尾:
"http://www.ask.com/web?q=(put my keywords here)"
然后导航到那里
理论上,这就像我在搜索栏中键入“(一、二、三、四、五、六)”然后按enter键一样
希望这有点道理 使用php函数
所以你可以这样做:
$array = new array ( [0] => one [1] => two [2] => three [3] => four [4] => five [5] => six );
$string = '%28'.implode( '%2C', $array ).'%29';
现在,$string
将是您所需要的类似以下内容:
$commaSeparated = implode(',', $array);
$withParens = '(' + $commaSeparated + ')';
$urlEncoded = urlencode($withParens);
print $urlEncoded;
您可以使用urlencode对数组的每个部分进行编码,然后手动将其放入url(自己制作url字符串)
或者您可以改用此函数:
print\r
就是这样打印阵列的
如何解决这个问题取决于几件事。mixer()
做什么?关键词总是小写的吗?如果mixer没有太多功能,并且关键字是小写的,您可以执行以下操作:
$string='%28'。内爆(“%2C”,
$keyword)。'%29';
如果是URL编码,则可以使用函数URL\u encode
,而不是像上面那样手动添加编码值。此代码:
$keywords = array('one', 'two', 'three');
$query = '(' . implode(',', $keywords) . ')';
echo('Search query: ' . $query . PHP_EOL);
$query = rawurlencode($query);
echo('Encoded: ' . $query . PHP_EOL);
给出此输出:
搜索查询:(一、二、三)编码:
%281%2C2%2C3%29
像这样的
$input = array('one', 'two', 'three');
$s = implode(',', $input);
$s = '('.$i.')';
print urlencode($s);
并使用函数对特殊字符进行编码,如&
,?
和查询字符串中要使用的其他字符。
$input = array('one', 'two', 'three');
$s = implode(',', $input);
$s = '('.$i.')';
print urlencode($s);