<?php
header("Content-Type:text/html;charset=UTF-8");
$a="index.php?a=1&b=2";
$b="index.php?a=1&b=2&c=3";
echo str_replace("&","_",$a)."<br>";
echo str_replace("&","_",$b);
?>
header("Content-Type:text/html;charset=UTF-8");
$a="index.php?a=1&b=2";
$b="index.php?a=1&b=2&c=3";
echo str_replace("&","_",$a)."<br>";
echo str_replace("&","_",$b);
?>
function urlTrans( $str , $suffix )
{
$pathInfo = pathinfo( $str );
$basename = $pathInfo['filename'];
$param = explode( "?" , $str );
$queryString = preg_replace( "/[\=\&]/" , "_" , $param[1] );
return $basename."_".$queryString.".".$suffix;
}
$str = "index.php?a=1&b=2";
$str1 = urlTrans( $str , "html" );
echo $str1;
?>逆过程麻烦一点,因为"_"要智能的转换成"="或"&",不过也不是完全不能写,自己想一下吧。如果需求不是很严格的话,为什么不能变成index_a_1#b_2.html之类的呢,这样逆过程实现起来就方便多了。最后,如果是地址映射的话,用mod_rewrite吧,方便许多~~~