تالار گفتمان nCIS.ir

نسخه‌ی کامل: مشکل در url_decode
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام . من قسمتی از ادرس صفحم به این شکله مثلا : http://localhost/blog/post/single/یاسمن
الان میخام اون تیکه یاسمن بگیرم و بزارم تو متغیر خب ؟
این کدو زدم :
echo "<meta charset='utf-8' >";
$id = urldecode($id);
echo $id ;

ولی خروجی اینجوریه : اسمن 
کلا همه کلمات امتحان کردم ولی فهمیدم به حرف ی حساسه !!
چیگار کنم این ی رو هم کامل نمایش بده ؟؟؟
این لینک رو چک کنید: http://php.net/manual/en/function.urldecode.php#64676
چون گفتید با حرف ی مشکل داره، احتمالا بخاطر اینه که توی بعضی ویندوز ها کیبورد بجای ی فارسی ی عربی میزنه.
این مشکل با تبدیل ی عربی به ی فارسی یا بعکس حل میشه. یعنی همیشه از یک نوع ی استفاده بشه.
درمورد حرف ک هم همین مسئله وجود داره.
(10-07-1395، 02:01 ب.ظ)ADMIN نوشته: [ -> ]این لینک رو چک کنید: http://php.net/manual/en/function.urldecode.php#64676

اینو ک میدونم اخه !!!
مشکل من اصلا دقت کردین؟؟
آخ ! آخ ! بله درسته الان ک لینک چک کردم دیدم یه نفر تابع مناسبش نوشته . واقعا ببخشید !!!!
اقا این تابع یکی نوشته بود ولی اولش ک چک کردم دیدم درسته ها ولی نمیدونم باز چش شد دوباره از کار افتاد اینم تابعش :
function to_utf8( $string ) { 
// From http://w3.org/International/questions/qa...utf-8.html 
    if ( preg_match('%^(?: 
      [x09x0Ax0Dx20-x7E]            # ASCII 
    | [xC2-xDF][x80-xBF]             # non-overlong 2-byte 
    | xE0[xA0-xBF][x80-xBF]         # excluding overlongs 
    | [xE1-xECxEExEF][x80-xBF]{2}  # straight 3-byte 
    | xED[x80-x9F][x80-xBF]         # excluding surrogates 
    | xF0[x90-xBF][x80-xBF]{2}      # planes 1-3 
    | [xF1-xF3][x80-xBF]{3}          # planes 4-15 
    | xF4[x80-x8F][x80-xBF]{2}      # plane 16 
)*$%xs', $string) ) { 
        return $string; 
    } else { 
        return iconv( 'CP1252', 'UTF-8', $string); 
    } 
}

چیکار کنم اخه ؟ ای بابا
پیشنهاد میکنم از خود شناسه‌های یونیکد اصلاً برای شناسایی محتوا استفاده نکنید بلکه id یا یه شناسه دیگه که مشکل نداره توی URL بگذارین و متن رو فقط برای SEO به URL اضافه کنید.