我有一个看起来像这样的网址:
http://www.example.com?id=1&user=Test&name=Test23423&country=us
如果网址是这样的,它可以正常工作。但是有些用户使用特殊字符(例如"&"),如下所示:
http://www.example.com?id=1&user=Te&st&name=Test&123&country=us
我怎样才能转换这个字符串,最后一切正常?
答案 0 :(得分:1)
首先使用你的锚标签:
<a href="try.php/?id=1&user=<?php echo urlencode('Te&st'); ?>&name=<?php echo urlencode('Te&st'); ?>">Click Here</a>
在其他页面上获得如下值:
echo $_GET['user'];
我希望它对你有用
答案 1 :(得分:-1)
像这样使用
echo $test=urlencode('http://www.example.com?id=1&user=Test&name='.htmlspecialchars('Test&123').'&country=us');
echo "<br />";
echo urldecode($test);
您可以创建如下所示的功能,以便检查&#34;&amp;&#34;。如果您想要所有特殊字符的功能,请告诉我。
$test = 'http://www.example.com?id=1&user=Te&st&name=Test&123&country=us';
foreach (explode("&", $test) as $key => $item) {
if (strpos($item, "=") === FALSE) {
$arr[$key - 1].="&" . $item;
} else {
$arr[$key] = $item;
}
}
print_r($arr);
答案 2 :(得分:-1)
使用此功能我认为它可以帮助你:
function seo_friendly_url($string){
$string = str_replace(array('[\', \']'), '', $string);
$string = preg_replace('/\[.*\]/U', '', $string);
$string = preg_replace('/&(amp;)?#?[a-z0-9]+;/i', '-', $string);
$string = htmlentities($string, ENT_COMPAT, 'utf-8');
$string = preg_replace('/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);/i', '\\1', $string );
$string = preg_replace(array('/[^a-z0-9]/i', '/[-]+/') , '-', $string);
return strtolower(trim($string, '-'));
}
然后你需要像这样编码一个用户名:
seo_friendly_url($test) ;