الكود التالي هو في الأساس تنفيذ زائف لمحركات البحث مثل تلك التي
غالبًا ما ترى عناوين URL لمواقع أخرى مثل هذا، أليس كذلك؟
http://www.xxx.com/module/show/action/list/page/7
أو
http://xx.com/module/show/action/show/id/8.shtml مع الامتداد أو
http://xx.com/module/show/action/show/id/8?word=ss&age=11
هذا كل شيء، سأعلن اليوم عن تنفيذ هذه الطريقة، وأفصل وظيفة الكود الأبسط على النحو التالي. وهي غير مغلفة في فئات، ويرجع ذلك أساسًا إلى أنها ليست ضرورية لاستخدام الوظائف
<?php
/**
* احصل على وصول ودية URL
*
* @accesspublic
* @مصفوفة العودة
*/
وظيفة getQueryString () {
$_SGETS = تنفجر("/",substr($_SERVER['PATH_INFO'],1));
$_SLEN = العد($_SGETS);
$_SGET = $_GET؛
for($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';
إرجاع $_SGET؛
}
/**
* إنشاء عنوان URL للرابط
*
* @accesspublic
* @param مصفوفة $arr
* @ سلسلة العودة
*/
دالة setUrl($arr){
عالمي $عالمي؛
$queryString='';
إذا($Global['urlmode']==2){
foreach($arr كـ $k=> $v){
$queryString.=$k.'/'.$v.'/';
}
}
$queryString.=$Global['urlsuffix'];
إرجاع $queryString؛
}
?>
سهل الاستخدام للغاية
<?php
$_GET= getQueryString();
?>
لكن هذا لا يكفي، لا يمكن تحقيق ذلك إلا
http://www.xxx.com/index.php/module/show/action/list/page/7 يوجد ملف Index.php إضافي في المنتصف، لذلك يتعين علينا إزالته وإعادة كتابته ولكن بعض الملفات ليست كذلك إذا كنت تريد ذلك، على سبيل المثال، نمط الصور، فقم بإنشاء ملف .htaccess في حالة
RewriteEngine on
RewriteCond $1 !^(index.php|css|pics|الموضوعات|js|robots.txt)
قاعدة إعادة الكتابة ^(.*)$index.php/$1 [L]
الآن لا بأس، اذهب واختبره الآن
<?php
$_GET= getQueryString();
print_r($_GET);
?>