มายองเนสจัง
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 582
ออฟไลน์
กระทู้: 3,137
|
 |
« เมื่อ: 26 ตุลาคม 2012, 17:14:55 » |
|
ติดปัญหาบางอย่างค่ะ อยากแก้คำให้ช่องว่างกลายเป็นขีดแทน ทำยังไงหรอคะ เช่น Mayong So Much ให้กลายเป็น Mayong-So-Much อะไรประมาณนี้อะ แล้วถ้าเขียนฟอร์ม รับคำแล้วแสดงผล ออกมานี่ยากรึเปล่าคะ แนะนำด้วยค่ะ 
|
|
|
บันทึกการเข้า
|
|
|
|
joetiaw
สมุนแก๊งเสียว
พลังน้ำใจ: 14
ออฟไลน์
กระทู้: 691
|
 |
« ตอบ #1 เมื่อ: 26 ตุลาคม 2012, 17:16:33 » |
|
ใช้ str_replace ไม่ได้เหรอครับ  $text ="Mayong So Much"; echo str_replace(" ", "-", $text);
|
|
« แก้ไขครั้งสุดท้าย: 26 ตุลาคม 2012, 17:22:23 โดย joetiaw »
|
บันทึกการเข้า
|
|
|
|
chaikrit
Newbie
พลังน้ำใจ: 10
ออฟไลน์
กระทู้: 89
|
 |
« ตอบ #2 เมื่อ: 26 ตุลาคม 2012, 17:18:24 » |
|
$text="Mayong So Much"; echo str_replace(" ","-","$text");
ลองดูครับ เพิ่มเติมที่ลิงค์ด้านล่าง hปปp://php.net/manual/en/function.str-replace.php
|
|
|
บันทึกการเข้า
|
|
|
|
seowizard
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 102
ออฟไลน์
กระทู้: 1,119
|
 |
« ตอบ #3 เมื่อ: 26 ตุลาคม 2012, 17:22:03 » |
|
น่าจะประมาณนี้ครับ <form name="myform"> <input type="text" name="var1" size="25"><br> <input type="submit" value="Submit"> </form>
รับค่าหลังจาก submit
$str_var = $_POST['var1']; $str_var = str_replace(" ", "-", $str_var);
echo $str_var;
|
|
|
บันทึกการเข้า
|
|
|
|
joetiaw
สมุนแก๊งเสียว
พลังน้ำใจ: 14
ออฟไลน์
กระทู้: 691
|
 |
« ตอบ #4 เมื่อ: 26 ตุลาคม 2012, 17:23:01 » |
|
ใช้ str_replace ไม่ได้เหรอครับ 
|
|
|
บันทึกการเข้า
|
|
|
|
joetiaw
สมุนแก๊งเสียว
พลังน้ำใจ: 14
ออฟไลน์
กระทู้: 691
|
 |
« ตอบ #5 เมื่อ: 26 ตุลาคม 2012, 17:23:22 » |
|
|
|
|
บันทึกการเข้า
|
|
|
|
kungbest
สมุนแก๊งเสียว
พลังน้ำใจ: 86
ออฟไลน์
กระทู้: 670
|
 |
« ตอบ #6 เมื่อ: 26 ตุลาคม 2012, 17:26:13 » |
|
$text="Mayong So Much"; echo str_replace(" ","-","$text");
ลองดูครับ เพิ่มเติมที่ลิงค์ด้านล่าง hปปp://php.net/manual/en/function.str-replace.php ถ้าจะเปลี่ยนแบบดื้อๆ ก็ตามนี้คับ ใช้ฟังก์ชั่น str_replace ส่วนจะเอาไปประยุกต์ก็ต้องดูว่าจะใช้งานแบบไหนคับ 
|
|
|
บันทึกการเข้า
|
|
|
|
มายองเนสจัง
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 582
ออฟไลน์
กระทู้: 3,137
|
 |
« ตอบ #7 เมื่อ: 26 ตุลาคม 2012, 17:29:05 » |
|
ทำได้ละค่ะ ทำแบบมั่วๆ เอาแบบนี้ <?php $word = "$_POST[message]"; $newVariabe = preg_replace('/\s+/', '-', $word); echo "<div class='cutworld'>"; echo "$newVariabe"; echo "</div>"; ?>
ขอบคุณที่แนะนำค่ะ 
|
|
|
บันทึกการเข้า
|
|
|
|
ThaiMagic
คนรักเสียว
พลังน้ำใจ: 2
ออฟไลน์
กระทู้: 105
|
 |
« ตอบ #8 เมื่อ: 26 ตุลาคม 2012, 18:42:41 » |
|
ขอเก็บไปใช้อีกคนครับ 
|
|
|
บันทึกการเข้า
|
|
|
|
BeerKingMan
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 262
ออฟไลน์
กระทู้: 1,605
|
 |
« ตอบ #9 เมื่อ: 26 ตุลาคม 2012, 18:47:13 » |
|
$string = "text ที่ต้องการ replace"; str_replace(" ","-","$string"); 
|
|
|
บันทึกการเข้า
|
|
|
|
artmond
ก๊วนเสียว
พลังน้ำใจ: 30
ออฟไลน์
กระทู้: 237
|
 |
« ตอบ #10 เมื่อ: 27 ตุลาคม 2012, 02:46:21 » |
|
ไม่ทราบว่าจะนำไปใช้เป็น Slug หรือเปล่าครับ
ยังไงลองตรวจสอบรูปแบบให้ดีนะครับ เพราะโดยปกติมันจะมีอักขระพิเศษอื่นๆ อีกที่เราต้องแปลง
|
|
|
บันทึกการเข้า
|
|
|
|
ohmohm
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 170
ออฟไลน์
กระทู้: 3,098
|
 |
« ตอบ #11 เมื่อ: 02 พฤศจิกายน 2012, 22:34:07 » |
|
ทำได้ละค่ะ ทำแบบมั่วๆ เอาแบบนี้ <?php $word = "$_POST[message]"; $newVariabe = preg_replace('/\s+/', '-', $word); echo "<div class='cutworld'>"; echo "$newVariabe"; echo "</div>"; ?>
ขอบคุณที่แนะนำค่ะ  ถ้าเขียนฟอร์ม รับคำแล้วแสดงผล ก็ไม่ยากเท่าไร แต่ควรต้องป้องกันการถูกแฮ็กแบบ XSS (Cross Site Scripting) ด้วยนะครับ ใช้ htmlentities() ก่อน echo ตัวแปรด้วยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
ball6847
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 212
ออฟไลน์
กระทู้: 4,174
|
 |
« ตอบ #12 เมื่อ: 02 พฤศจิกายน 2012, 23:06:11 » |
|
<?php
function sanitize_with_dashes($string, $length = 0) { $string = preg_replace('~[^a-z0-9ก-๙\s\-]~iu', '', $string); if (is_numeric($length) AND $length > 0 AND mb_strlen($string) > $length) $string = mb_substr($string, 0, $length); $string = trim($string); $string = preg_replace('~\s+~', '-', $string); $string = strtolower($string); return $string; }
|
|
|
บันทึกการเข้า
|
|
|
|
|