ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingการ replace ช่องว่างด้วยตัวอักษรพิเศษใน mod_rewrite ต้องใช้คำสั่งอะไรครับ +1 ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: การ replace ช่องว่างด้วยตัวอักษรพิเศษใน mod_rewrite ต้องใช้คำสั่งอะไรครับ +1 ครับ  (อ่าน 2185 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« เมื่อ: 05 สิงหาคม 2012, 23:05:10 »

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

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

ขอบคุณมากครับ
« แก้ไขครั้งสุดท้าย: 06 สิงหาคม 2012, 20:25:50 โดย nuningplus » บันทึกการเข้า
nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« ตอบ #1 เมื่อ: 06 สิงหาคม 2012, 20:26:09 »

มีใครรู้มั๊ยอ่าครับ
บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 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
บันทึกการเข้า

nuningplus
สมุนแก๊งเสียว
*

พลังน้ำใจ: 137
ออฟไลน์ ออฟไลน์

กระทู้: 624



ดูรายละเอียด
« ตอบ #3 เมื่อ: 06 สิงหาคม 2012, 23:49:57 »

โดยปกติ ส่วนนี้ไม่ได้ทำที่ .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
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 06 สิงหาคม 2012, 23:51:23 »

โดยปกติ ส่วนนี้ไม่ได้ทำที่ .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
ก็เปลี่ยนตามที่ผมบอกอะครับ
บันทึกการเข้า

rtee
Newbie
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 89



ดูรายละเอียด
« ตอบ #5 เมื่อ: 07 สิงหาคม 2012, 00:19: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
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 136
ออฟไลน์ ออฟไลน์

กระทู้: 1,172



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 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>
« แก้ไขครั้งสุดท้าย: 07 สิงหาคม 2012, 00:29:47 โดย thai2ads » บันทึกการเข้า

รับทำเว็บไซต์ เขียนระบบต่างๆตามที่ต้องการ (ยกเว้น 18+ กับการพนัน) ระบบมีปัญหาการใช้งานแจ้งพจได้เลยนะครับอย่าได้เกรงใจเพราะเดี๋ยวมันจะไม่รู้ปัญหา
ออกแบบเว็บไซต์ | รับทำเว็บไซต์ |
rtee
Newbie
*

พลังน้ำใจ: 10
ออฟไลน์ ออฟไลน์

กระทู้: 89



ดูรายละเอียด
« ตอบ #7 เมื่อ: 07 สิงหาคม 2012, 10:21:25 »

ถ้าจะใช้กับ ภาษาไทยให้เอา 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 เช่น ä, á, à, ç, â, ß เป็นต้นอ่ะครับ (มักจะเห็นตัวอักษรพวกนี้ในภาษาฝรั่งเศส หรือเยอรมัน)
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์