کلیدستان

نسخه‌ی کامل: حذف بخشی از url در php
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان 
من میخوام  بخشی از urlرو حذف کنم
مثلا urlزیر رو داریم
www.example.com/category/mesage/index.php

و میخوایم به صورت زیر نشون بدیم
www.example.com/index.php


اگر دوستان میتونن راهنمایی کنن.
سلام.
دقیقا متوجه نشدم که الگوی کلی URL هایی که با آنها سر و کار دارید چیست، اما کد زیر می تواند نشان دهد که چگونه می توانید از عبارات قاعده مند (regular expressions) برای پردازش این موارد استفاده نمایید :

کد پی‌اچ‌پی:
<?php
$URL 
'http://www.example.com/category/mesage/index.php';

$matches_total_number preg_match_all('/http:\/\/www.example.com\/(.*?)index.php/'$URL$matches);
echo 
$matches_total_number// تعداد نتایج پیدا شده

echo '<br/><br/>';

var_dump($matches); // جزئیات نتایج

echo '<br/><br/>';

$output $matches[1][0]; 
echo 
$output// متن متغیر

echo '<br/><br/>';

$new_URL str_replace($output""$URL); // جایگزینی متن متغیر با هیچ --- جذف متن متغیر
echo $new_URL// نتیجه نهایی
?>


نتیجه :

کد پی‌اچ‌پی:
1


array (size=2)
 
 0 => 
 
   array (size=1)
 
     0 => string 'http://www.example.com/category/mesage/index.php' (length=48)
 
 1 => 
 
   array (size=1)
 
     0 => string 'category/mesage/' (length=16)


category/mesage/

http://www.example.com/index.php 

کدی که در بالا نوشته شد، مناسب برای موارد پیچیده است، اما اگر الگو خیلی ساده باشد (متن متغیری نداشته باشیم)، همان تابع str_replace کافی می باشد و نیازی به استفاده از عبارات قاعده مند (regular expressions) نیست.

Flower
ببینید این urlمنه
http://www.example.com/category/mesage/index.php

category و message دو تا پوشه هستن ومن نمیخوام در  آدرس بار مرورگر نمایش داده بشن .
یعنی میخوام چیزی که در ادرس بار مرورگر مشاهده میشه با صورت زیر باشه:
http://www.example.com/index.php

توی w3scooleخوندم باید با htaccess این کارو بکنین ولی متوجه نشدم چطور میشه.
تشکر