انتخاب خط X ام یک متن و کاربرد : در آدرس!

سلام

چرا ویکی پدیا آدرس هاش اینطوریه:
http://en.wikipedia.org/wiki/Special:Search?search=Iran
منظورم : در آدرس هست؟ اصلا میشه بگید مفهوم این خط چیه؟ Special:Search?search=Iran
همچنین چطوری میتونیم توی PHP از اینجور آدرس ها استفاده کنیم؟ ( مثل متد GET ، این هم یه متد هست؟ )

در ضمن ، چطوری میتونم مثلا خط 18 یه صفحه رو توی یه متغیر ذخیره کنم؟

ممنون
 

sunrise

Member
در مورد تغيير آدرس واقعي مي توني از MOD Rewrite (.htaccess) در PHP استفاده كني، بعنوان مثال لينك زير رو در نظر بگير:

http://www.gtpland.com/news/385.html

در واقع آدرس دسترسي اصلي بصورت زير مي باشد:

http://www.gtpland.com/news/shownews.php?newsid=385

كه براي انجام اين كار كافيه يه فايل .htaccess در مسيري كه فايل ها وجود داره ايجاد كني و اطلاعات زير رو در اون قرار بدي (البته براي مثال فوق و براي موارد ديگر ممكنه كمي متفاوت باشه)
کد:
RewriteEngine On

RewriteRule ^([0-9]*).html shownews.php?newsid=$1

با اين كار ما تعيين كرده ايم كه اگه در نوار آدرس مرورگر آدرس هاي تعيين شده فوق ذكر گرديد صفحه PHP مورد نظر باز بشه ، حالا براي اينكه اين تغييرات بر روي نمايش صفحات نيز تأثير بگذارد (تغيير لينك ها به فرمت html يا شكل مورد نظر) در فايل PHP (ترجيحاً در فايل header برنامه) مقادر زير رو قرار مي ديم:
PHP:
ob_start();

function change_url(&$data)
{
     $iurl = array(
                    "'shownews.php\?newsid=([0-9]*)'"
            );
     $ourl = array(
                    "\\1.html"
               );

     $data = preg_replace($iurl, $ourl, $data);
     return $data;
}
حال بايد در پايان صفحه (ترجيحاً فايل footer برنامه) كدهاي زير رو قرار بديد:
PHP:
$pagecontents = ob_get_contents();
ob_end_clean();
print(change_url($pagecontents));
نكته: در صورتي مجاز به استفاده از MOD Rewrite خواهيد بود كه كامپايلر مجهز به Apache بوده و همچنين اين خاصيت در تنظيمات فعال باشد.

دقت داشته باشيد كه قرارگيري آدرس ها در آرايه ها بايد از بالاترين ليست آرگومان (GLOBAL) ها صورت گيرد بدين صورت كه در صورتي كه يك صفحه توسط يك فايل PHP با تعداد آرگومان هاي متفاوت قابل دسترسي هست ابتدا اوني كه بزرگتر هست رو بنويسيد، بعنوان مثال ما دو لينك زير رو در نظر مي گيريم:
کد:
page.php?do=show
کد:
page.php?do=show&mode=inline
كه در اين حالت ما بايد ابتدا لينك دوم يعني page.php?do=show&mode=inline را در آرايه قرار دهيم در غير اينصورت در نمايش با مشكل مواجه خواهيم شد، البته اين شرايط براي فايل .htaccess وجود نداره و شما مي تونيد به هر ترتيبي كه خودتون تمايل داشته باشيد آدرس ها رو قرار بديد.

اگه خواستي مي توني اين مثال رو هم ببين: http://forums.gtpland.com/showpost.php?p=35528&postcount=17

------------------------------------------
در مورد سؤال دوم هم فعلاً روشي رو سراغ ندارم ، اما روش كار مي كنم اگه به نتيجه رسيدم حتماً پاسخ رو همين جا مي نويسم.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا