การ replace ช่องว่างด้วยตัวอักษรพิเศษใน mod_rewrite ต้องใช้คำสั่งอะไรครับ +1 ครับ

เริ่มโดย nuningplus, 05 สิงหาคม 2012, 23:05:10

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

nuningplus

RewriteRule ^([^/]*)/([^/]*)\.html$ /category.php?category=$1&name=$2 [L]

ตามโค้ดด้านบน คือค่า name ที่ส่งมาบางคำมีช่องว่าง เราต้องการแทนที่ช่องว่างด้วยตัวอักษร - ต้องใช้คำสั่งอะไรเพิ่มเติมหรอครับ

ขอบคุณมากครับ


xvlnw.com

โดยปกติ ส่วนนี้ไม่ได้ทำที่ .htaccess นะครับ

ต้องทำในลิงก์บนเว็บไซต์เราเองครับ

ตัวอย่างโค๊ด

<?php
function rewrite_url($url="url"){
$url strtolower(str_replace(" ","-",$url));
$url strtolower(preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url));
return $url ;
}

echo 
rewrite_url('name/ทดสอบระบบ การทำลิงก์');
?>


:wanwan003:
[direct=https://cloudhost.in.th/wordpress-hosting]ツ ⓌⓄⓇⒹⓅⓇⒺⓈⓈ ⒽⓄⓈⓉⒾⓃⒼ [/direct] :wanwan014:  :D
[direct=https://cloudhost.in.th/cloudhosting.html]Cloud Hosting[/direct] [direct=https://cloudhost.in.th/cloudvps.html]Cloud Server[/direct] [direct=https://cloudhost.in.th/vpshosting.html]Cloud VPS Hosting[/direct] [direct=https://cloudhost.in.th/windowsvps.html]Cloud Windows[/direct] Tel: 080-348-0843 LINE: ixvlnw

nuningplus

อ้างถึงจาก: xvlnw.com ใน 06 สิงหาคม 2012, 21:15:30
โดยปกติ ส่วนนี้ไม่ได้ทำที่ .htaccess นะครับ

ต้องทำในลิงก์บนเว็บไซต์เราเองครับ

ตัวอย่างโค๊ด

<?php
function rewrite_url($url="url"){
$url strtolower(str_replace(" ","-",$url));
$url strtolower(preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url));
return $url ;
}

echo 
rewrite_url('name/ทดสอบระบบ การทำลิงก์');
?>


:wanwan003:

ยังไม่ค่อยเข้าใจอะครับ ต้องเอาโค้ด php ไปไว้ตรงไหนหรอครับ

ขอบคุณครับ

xvlnw.com

อ้างถึงจาก: nuningplus ใน 06 สิงหาคม 2012, 23:49:57
อ้างถึงจาก: xvlnw.com ใน 06 สิงหาคม 2012, 21:15:30
โดยปกติ ส่วนนี้ไม่ได้ทำที่ .htaccess นะครับ

ต้องทำในลิงก์บนเว็บไซต์เราเองครับ

ตัวอย่างโค๊ด

<?php
function rewrite_url($url="url"){
$url strtolower(str_replace(" ","-",$url));
$url strtolower(preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url));
return $url ;
}

echo 
rewrite_url('name/ทดสอบระบบ การทำลิงก์');
?>


:wanwan003:

ยังไม่ค่อยเข้าใจอะครับ ต้องเอาโค้ด php ไปไว้ตรงไหนหรอครับ

ขอบคุณครับ

ไปไว้ในส่วนของการทำลิงก์บนเว็บเราอะครับ

โดยปกติทำลิงก์เป็น index.php?name=xxx&id=yyy
ก็เปลี่ยนตามที่ผมบอกอะครับ
[direct=https://cloudhost.in.th/wordpress-hosting]ツ ⓌⓄⓇⒹⓅⓇⒺⓈⓈ ⒽⓄⓈⓉⒾⓃⒼ [/direct] :wanwan014:  :D
[direct=https://cloudhost.in.th/cloudhosting.html]Cloud Hosting[/direct] [direct=https://cloudhost.in.th/cloudvps.html]Cloud Server[/direct] [direct=https://cloudhost.in.th/vpshosting.html]Cloud VPS Hosting[/direct] [direct=https://cloudhost.in.th/windowsvps.html]Cloud Windows[/direct] Tel: 080-348-0843 LINE: ixvlnw

rtee

อ้างถึงจาก: xvlnw.com ใน 06 สิงหาคม 2012, 21:15:30

<?php
function rewrite_url($url="url"){
$url strtolower(str_replace(" ","-",$url));
$url strtolower(preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url));
return $url ;
}

echo 
rewrite_url('name/ทดสอบระบบ การทำลิงก์');
?>



อืม กำลังหาวิธีอยู่เลยครับ แล้วเราจะเขียน Regular Expression รวมเอาพวกอักขระตัว อั๊กซอง (Accent), ซีกงแฟลกซ์ (Circonflexe), อุมเล๊าท์ (Umlaut) ยังไงครับ ?

thai2ads

ถ้าจะใช้กับ ภาษาไทยให้เอา strtolower() ออกนะ เพราะมันจะมีตัวอักขระ


function rewrite_url($url="url"){
$url = str_replace(" ","-",$url);
       $url = preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url);
return $url ;
}


ถ้ากังวลเรื่องตัวพิมพ์เล็กใหญ่ก็ใช้ .htaccess ช่วยก็ได้

RewriteRule ^([^/]*)\/([^/]*)\.html$ /category.php?category=$1&name=$2 [L,NC]

การใช้งาน


$category="หมวดหมู่ที่1 ทดสอบ";
$name="ทดสอบลิงก์ครับ อิอิอิ";
<a herf="<?php echo rewrite_url($category)."/".rewrite_url($name).".html";?>">ชื่อลิงก์</a>

รับทำเว็บไซต์ เขียนระบบต่างๆตามที่ต้องการ
รับทำเว็บไซต์ | ทองคำราคาวันนี้

rtee

อ้างถึงจาก: thai2ads ใน 07 สิงหาคม 2012, 00:28:51
ถ้าจะใช้กับ ภาษาไทยให้เอา strtolower() ออกนะ เพราะมันจะมีตัวอักขระ


function rewrite_url($url="url"){
$url = str_replace(" ","-",$url);
       $url = preg_replace('~[^a-z0-9ก-๙\.\-\_]~iu','',$url);
return $url ;
}


ถ้ากังวลเรื่องตัวพิมพ์เล็กใหญ่ก็ใช้ .htaccess ช่วยก็ได้

RewriteRule ^([^/]*)\/([^/]*)\.html$ /category.php?category=$1&name=$2 [L,NC]

การใช้งาน


$category="หมวดหมู่ที่1 ทดสอบ";
$name="ทดสอบลิงก์ครับ อิอิอิ";
<a herf="<?php echo rewrite_url($category)."/".rewrite_url($name).".html";?>">ชื่อลิงก์</a>



อืม แล้วถ้าจะให้มันเป็นพวกอักขระภาษาต่างประเทศเช่นพวก Diacritics เช่น ä, á, à, ç, â, ß เป็นต้นอ่ะครับ (มักจะเห็นตัวอักษรพวกนี้ในภาษาฝรั่งเศส หรือเยอรมัน)