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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ  (อ่าน 1080 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
CherryX
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,052



ดูรายละเอียด เว็บไซต์
« เมื่อ: 04 ธันวาคม 2017, 05:57:20 »

สวัสดีค่ะขอสอบถามเกี่ยวกับโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ

โค๊ด:
$DELETE = "3";
$data = file("file.csv");
$out = array();

foreach($data as $line) {
     if(trim($line) != $DELETE) {
         $out[] = $line;
     }
 }

 $fp = fopen("file.csv", "w+");
 flock($fp, LOCK_EX);
 foreach($out as $line) {
     fwrite($fp, $line);
 }
 flock($fp, LOCK_UN);
 fclose($fp); 

จากโค้ดด้านบน มันตัดได้เฉพาะคำตรงๆ ค่ะ
อยากจะให้มันตัดทุกค่าที่ค้นเจอต้องปรับอย่างไรค่ะ

เช่น file.csv

111,11111
222,22222
333,33333
123,12345
321,54321

ใส่ 3 ให้ตัดทุกบรรทัดที่มี 3 ออกค่ะ ให้เหลือ

111,11111
222,22222

รบกวนขอความช่วยเหลือหน่อยค่ะ  wanwan011
บันทึกการเข้า

***ลายเซ็นสูงเกินขนาด
SWOY
Verified Seller
ก๊วนเสียว
*

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

กระทู้: 402



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 04 ธันวาคม 2017, 09:00:53 »

โค๊ด:
$delete = '3';
$file = fopen('file.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
$line = implode(',',$line);
if (strpos($line, $delete) === false) {
echo $line,'<br />';
}
}
fclose($file);

ไม่รู้ตรงที่ต้องการรึป่าวนะครับ
บันทึกการเข้า

! ขายแล้ว SMF Lnw v.3 สคริปเว็บบอร์ดระบบจัดการครบครันราคาถูก

รับติดตั้ง ปรับแต่ง smf ดูผลงานได้ตามลิงค์เลย
บริการรับทำเว็บบอร์ด SMF ปรับแต่งบอร์ด SMF
NaiTan
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 5,259



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 04 ธันวาคม 2017, 09:58:32 »

ให้ค้นหาคำที่ต้องการก่อนครับ   ถ้าไม่เจอคำนั้นๆ ในแถวนั้น จึงให้ทำการแสดงผลแถวนั้นออกมาครับ  ถ้าเจอ ก็ไม่ต้องแสดงผลแถวนั้นๆ ครับ
บันทึกการเข้า

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

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

กระทู้: 2,052



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 04 ธันวาคม 2017, 10:40:34 »

โค๊ด:
$delete = '3';
$file = fopen('file.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
$line = implode(',',$line);
if (strpos($line, $delete) === false) {
echo $line,'<br />';
}
}
fclose($file);

ไม่รู้ตรงที่ต้องการรึป่าวนะครับ

ใช่แบบนี้เลยค่ะ แล้วปรับให้มัน บันทึกเป็นไฟล์ CSV เดิมอย่างไรค่ะ

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

***ลายเซ็นสูงเกินขนาด
msarah
บุคคลทั่วไป
« ตอบ #4 เมื่อ: 04 ธันวาคม 2017, 15:26:40 »

น่าสนใจครับ
บันทึกการเข้า
msarah
บุคคลทั่วไป
« ตอบ #5 เมื่อ: 04 ธันวาคม 2017, 15:46:04 »

เป็นประโยชน์ครับ
บันทึกการเข้า
SWOY
Verified Seller
ก๊วนเสียว
*

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

กระทู้: 402



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 04 ธันวาคม 2017, 16:00:04 »

ออ เหมือนทำได้แล้ว เลยไม่ได้ใส่ไปครับ ก็ใช้ fputcsv ธรรมดาได้เลยครับจากข้อมูลที่ echo ออกมานั้น
ได้ประมาณนี้ครับ

โค๊ด:
$delete = '3';
$data = array();
$file = fopen('file.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
$line = implode(',',$line);
if (strpos($line, $delete) === false) {
echo $line,'<br />';
$data[] = $line;
}
}
fclose($file);

$file_create = fopen("new_file.csv","w");
foreach ($data as $n) {
  fputcsv($file_create, explode(',',$n));
}
fclose($file_create);
บันทึกการเข้า

! ขายแล้ว SMF Lnw v.3 สคริปเว็บบอร์ดระบบจัดการครบครันราคาถูก

รับติดตั้ง ปรับแต่ง smf ดูผลงานได้ตามลิงค์เลย
บริการรับทำเว็บบอร์ด SMF ปรับแต่งบอร์ด SMF
gang246810
Newbie
*

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

กระทู้: 12



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 04 ธันวาคม 2017, 16:35:56 »

โค๊ด:
<?php
$delete
='3';
$name='file.csv';
$file=file($name);
$objFopen=fopen($name,'w');
for(
$i=0;$i<count($file);$i++){
  if(!
strstr(trim($file[$i]),$delete)){
    
$strText=trim($file[$i])."\r\n";
    
fwrite($objFopen,$strText);
  }
}
fclose($objFopen);
?>

ลองดูครับ
« แก้ไขครั้งสุดท้าย: 04 ธันวาคม 2017, 16:36:50 โดย gang246810 » บันทึกการเข้า

 *Link Removed*
CherryX
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,052



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 04 ธันวาคม 2017, 18:08:56 »

ขอบคุณทุกท่านมากๆเลยค่ะ อบอุ่นอีกแล้วสังคม thaiseoboard +1 ให้ทุกท่านแล้วนะค่ะ  wanwan017
บันทึกการเข้า

***ลายเซ็นสูงเกินขนาด
หน้า: [1]   ขึ้นบน
พิมพ์