Le code suivant est principalement une implémentation pseudo-statique. Les moteurs de recherche comme celui-ci
voient souvent des URL d'autres sites comme celui-ci, n'est-ce pas ?
http://www.xxx.com/module/show/action/list/page/7
ou
http://xx.com/module/show/action/show/id/8.shtml avec extension ou
http://xx.com/module/show/action/show/id/8?word=ss&age=11
C'est tout. Aujourd'hui, je vais annoncer l'implémentation de cette méthode et séparer la fonction de code la plus simple comme suit. Elle n'est pas encapsulée dans des classes, principalement parce qu'elle n'est pas nécessaire
.
/**
* Obtenez un accès URL convivial
*
* @accesspublic
* Tableau @return
*/
fonction getQueryString(){
$_SGETS = éclater("/",substr($_SERVER['PATH_INFO'],1));
$_SLEN = nombre($_SGETS);
$_SGET = $_GET;
pour($i=0;$i<$_SLEN;$i+=2){
if(!empty($_SGETS[$i]) && !empty($_SGETS[$i+1])) $_SGET[$_SGETS[$i]]=$_SGETS[$i+1];
}
$_SGET['m'] = !empty($_SGET['m']) && is_string($_SGET['m']) trim($_SGET['m']).'Action' : 'indexAction';
$_SGET['a'] = !empty($_SGET['a']) && is_string($_SGET['a']) trim($_SGET['a']) : 'run';
renvoie $_SGET ;
}
/**
* Générer l'URL du lien
*
* @accesspublic
* @param tableau $arr
* @chaîne de retour
*/
fonction setUrl($arr){
global $Global ;
$queryString='';
si($Global['urlmode']==2){
foreach($arr comme $k=> $v){
$queryString.=$k.'/'.$v.'/';
}
}
$queryString.=$Global['urlsuffix'];
renvoie $queryString ;
}
?>
Très simple à utiliser
<?php
$_GET=getQueryString();
?>
Mais cela ne suffit pas, cela ne peut être réalisé
http://www.xxx.com/index.php/module/show/action/list/page/7 Il y a un index.php supplémentaire au milieu, nous devons donc le supprimer et le réécrire. certains fichiers ne le sont pas. Si vous le souhaitez, par exemple, styler les images, créez un fichier .htaccess dans la condition
RewriteEngine on
RewriteCond $1 !^(index.php|css|pics|themes|js|robots.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
Maintenant c'est bon, allez le tester maintenant
<?php
$_GET=getQueryString();
print_r($_GET);
?>