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

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

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ถาม php programmer อีกละ...  (อ่าน 5087 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
kingmaster
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,183



ดูรายละเอียด
« เมื่อ: 19 กุมภาพันธ์ 2007, 21:52:42 »

หุหุ วันนี้มีเรื่องมาถามอีกแล้วครับ ไอ่ผมมันก็มือสมัครเล่นซะด้วยนะ ไม่ได้เก่งกาจอะไร

เลยอยากถามมืออาชีพเรื่องการค้นหาและแทนที่น่ะครับเช่น


โค๊ด:
<h2 class="sl f"> bra... bra.... &raquo;</a>



ผมต้องการแทนที่อักษรทุกตัวที่อยู่ระหว่าง
โค๊ด:
<h2 class="sl f">

และ
โค๊ด:
&raquo;</a>


โดยใช้ "" แทนที่น่ะครับ จะเขียนยังไงครับ ถ้าจะใช้ฟังก์ชัน eregi_replace

ขอบคุณครับ...

 Cheesy
บันทึกการเข้า

Bug Fix AllinoneGenerator --> BugFix... | รถตู้เชียงใหม่
net1
ก๊วนเสียว
*

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

กระทู้: 260



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 19 กุมภาพันธ์ 2007, 22:11:35 »

ถ้าใช้ preg_replace แทนคงไม่มีปัญหานะครับ เพราะถนัดมากกว่า และ่ส่วนใหญ่ก็ใช้ได้ทุก server

โค๊ด:
$text = preg_replace('/<h2 class=\"sl f\">(.*)?\&raquo;<\/a>/','<h2 class="sl f">""&raquo;</a>',$text);
บันทึกการเข้า

kingmaster
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,183



ดูรายละเอียด
« ตอบ #2 เมื่อ: 19 กุมภาพันธ์ 2007, 22:18:35 »

อ้างจาก: "net1"
ถ้าใช้ preg_replace แทนคงไม่มีปัญหานะครับ เพราะถนัดมากกว่า และ่ส่วนใหญ่ก็ใช้ได้ทุก server

โค๊ด:
$text = preg_replace('/<h2 class=\"sl f\">(.*)?\&raquo;<\/a>/','<h2 class="sl f">""&raquo;</a>',$text);


ครับ ได้ครับ ขอบคุณมากครับ

 Cheesy
บันทึกการเข้า

Bug Fix AllinoneGenerator --> BugFix... | รถตู้เชียงใหม่
octoberbooks
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,682



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 07 กุมภาพันธ์ 2008, 21:33:20 »

กระทู้ขุดนะครับ พอดีไปหาใน Google แล้วเจออ่ะ

สงสัยครับ คือว่าถ้าใช้

$text = preg_replace('/<h2 class=\"sl f\">(.*)?\&raquo;<\/a>/','<h2 class="sl f">""&raquo;</a>',$text);

แล้วทีนี้มันมีข้อแม้ว่าให้ตรวจสอบและแทนคำเฉพาะ คำแรก หรือ คำที่สอง หรือคำที่ สาม เท่านั้น (กำหนดคำที่ต้องการเปลี่ยนได้เอง) ไม่ทราบเขียนไงอ่ะครับ

ขอบคุณครับ
บันทึกการเข้า

octoberbooks
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,682



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 08 กุมภาพันธ์ 2008, 07:37:28 »

ทำได้หรือเปล่าอ่ะครับ
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #5 เมื่อ: 08 กุมภาพันธ์ 2008, 08:33:37 »

ทำได้ครับ

$text = preg_replace('/<h2 class=\"sl f\">(.*)?\&raquo;<\/a>/','<h2 class="sl f">""&raquo;</a>',$text, 3);

ต่อจำนวนเป็นพารามิเตอร์ตัวที่ 4 ได้เลยครับ
บันทึกการเข้า

octoberbooks
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,682



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 08 กุมภาพันธ์ 2008, 09:30:13 »

ขอบคุณครับ พี่
บันทึกการเข้า

octoberbooks
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,682



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 08 กุมภาพันธ์ 2008, 09:45:03 »

ได้ละครับ ทีนี้อยากรบกวนต่ออีกครับ
คือว่าถ้า replace แบบนี้มันจะ เรียงจากคำแรกมาเรื่อย ๆ ใช่มั้ยครับ แล้ว

ถ้าเราต้องการกำหนด โดยเลือก replace เป็นคำที่ 2 หรือ 3 ตามต้องการ จะได้มั้ย

ขอบคุณครับ
บันทึกการเข้า

EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #8 เมื่อ: 08 กุมภาพันธ์ 2008, 12:27:15 »

ไม่มีครับ ฟังค์ชั่นแบบนั้น (หรือมีแต่ผมไม่รู้ แต่ไล่แล้วมันหาไ่ม่เจอ)

เลยเขียนให้ตัวหนึ่งละกัน (กำลังอู้งาน  Grin)

ตัวอย่างคือ ข้ามคำแรก แล้วแทนที่ 2 คำนะครับ

โค๊ด:
function replace_skip($find, $replace, $string, $skip=false, $limit=false) {
##This function by EThaiZone

//Skip string
$c = ($skip===false ? 1 : $skip);
for($i=0; $i < $c; $i++){
$pos = strpos($string, $find, $pos+1);
if($pos !== false) if($skip===false) $c++;
}

$len = strlen($replace);

//Replace string
$c = ($limit===false ? 1 : $limit);
for($i=0; $i < $c; $i++){
$pos = strpos($string, $find, $pos+1);
if($pos !== false) {
$string = substr_replace($string, $replace, $pos, $len);
if($limit===false) $c++;
}
}
return $string;
}

$string = "000 aaa 111 aaa 222 aaa 333 aaa 444";

echo replace_skip("aaa", "---", $string, 1, 2);

ถ้าหัดเขียนฟังค์ชั่นใช้เองไว้่ จะสะดวกมากครับ  Smiley
บันทึกการเข้า

ฉันไม่มีตัวตน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,817



ดูรายละเอียด
« ตอบ #9 เมื่อ: 08 กุมภาพันธ์ 2008, 12:56:27 »

คุณ Ethaizone เก่งมากเลยครับ ของที่ผมถามไปก็ใช้ได้ครับ
บันทึกการเข้า
octoberbooks
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,682



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 08 กุมภาพันธ์ 2008, 13:21:53 »

ขอบคุณครับ ตอนนี้ผมกำลังศึกษาอยู่ครับ หุหุแต่มันยากอ่ะ เลยใช้ถามเอา หุหุ
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์