ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => หัวข้อเริ่มโดย: nuugib ใน 08 กรกฎาคม 2013, 11:51:17

ชื่อเรื่อง: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: nuugib ใน 08 กรกฎาคม 2013, 11:51:17
 :wanwan017: ขอรบกวนและขอขอบคุณล่วงหน้าค่ะ

ได้ลองตัดสตริงหลายแบบแต่ยังไม่ได้เลย

อยากลบข้อความในวงเล็บ และ ตัววงเล็บ ออกจากประโยค ต่างๆใน text file ค่ะ

น่าจะต้องเีขียน php ไปอ่านยังไงดี

ตัวอย่างข้อความเช่น

Tiger(เสือ)  30 ตัว
Zebra (ม้าลาย) 6 ตัว
Fish (ปลา)1 ตัว

อยากเข้าไปลบ วงเล็บและคำในวงเล็บ ให้ได้ output ประมาณว่า

Tiger  30 ตัว
Zebra  6 ตัว
Fish  1 ตัว

:wanwan017:
ชื่อเรื่อง: Re: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: liveadsense ใน 08 กรกฎาคม 2013, 12:05:40
echo preg_replace('/(\(.*)\)/','','Tiger(เสือ)  30 ตัว');

ครับผม  :wanwan017:

แก้ใขนิสนึง
ชื่อเรื่อง: Re: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: p44n ใน 09 กรกฎาคม 2013, 00:00:24
แนะนำเป็นไอเดีย ไปแล้วกันนะคับ

ฟังก์ชั่น  strrpos(); ใช้หาตำแหน่งของ string ที่เราต้องการ เมื่อได้ตำแหน่งแล้วก็นำไปตัดส่วนที่เราไม่ต้องการทิ้ง เช่น

$str="Tiger(เสือ)  30 ตัว";

$first_position = strrpos($str,"(");        // รีเทิร์น 5
$second_position = strrpos($str,")");    // รีเทิร์น 10

จากนั้น ใช้ฟังก์ชั่น substr();
echo  substr($str,0,5);       // return Tiger
echo  substr($str,-9);  // return 30 ตัว

-9 มาจาก จำนวนสตริงทั้งหมดลบด้วย $second_position (19-10=9)

มีวิธีมากมายอีก 108 วิธีให้เลือกใช้ ผมพลันคิดขึ้นมาได้ประมาณนี้ครับ
ชื่อเรื่อง: Re: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: suphot.s ใน 09 กรกฎาคม 2013, 03:54:00


$str = trim(preg_replace('/\s*\([^)]*\)/', '', $str));



ชื่อเรื่อง: Re: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: hostyim ใน 09 กรกฎาคม 2013, 04:12:34
$string = 'Tiger(เสือ)  30 ตัว';
echo preg_replace("/\([^)]+\)/",'', $string;
ชื่อเรื่อง: Re: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: Putter™ ใน 09 กรกฎาคม 2013, 04:34:10
<?php
$data ='Tiger(เสือ)  30 ตัว 
Zebra (ม้าลาย) 6 ตัว 
Fish (ปลา)1 ตัว'
;

echo preg_replace('/\(.+?\)/','',trim($data));
?>
ชื่อเรื่อง: Re: ขอความช่วยเหลือ PHP ตัด string ที่อยู่ในวงเล็บค่ะ คิดไม่ออกจริงๆ
โพสต์โดย: xvlnw.com ใน 09 กรกฎาคม 2013, 09:50:24
อ้างถึงจาก: suphot.s ใน 09 กรกฎาคม 2013, 03:54:00

$str = trim(preg_replace('/\s*\([^)]*\)/', '', $str));


แนะนำตามนี้ครับ