ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: CherryX ที่ 04 ธันวาคม 2017, 05:57:20



หัวข้อ: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: CherryX ที่ 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:


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: SWOY ที่ 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);

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


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: NaiTan ที่ 04 ธันวาคม 2017, 09:58:32
ให้ค้นหาคำที่ต้องการก่อนครับ   ถ้าไม่เจอคำนั้นๆ ในแถวนั้น จึงให้ทำการแสดงผลแถวนั้นออกมาครับ  ถ้าเจอ ก็ไม่ต้องแสดงผลแถวนั้นๆ ครับ


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: CherryX ที่ 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 เดิมอย่างไรค่ะ

ขอบคุณค่ะ


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: msarah ที่ 04 ธันวาคม 2017, 15:26:40
น่าสนใจครับ


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: msarah ที่ 04 ธันวาคม 2017, 15:46:04
เป็นประโยชน์ครับ


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: SWOY ที่ 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);


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: gang246810 ที่ 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);
?>

ลองดูครับ


หัวข้อ: Re: ขอสอบถามโค้ด PHP ตัดแถวในไฟล์ CSV ค่ะ
เริ่มหัวข้อโดย: CherryX ที่ 04 ธันวาคม 2017, 18:08:56
ขอบคุณทุกท่านมากๆเลยค่ะ อบอุ่นอีกแล้วสังคม thaiseoboard +1 ให้ทุกท่านแล้วนะค่ะ  :wanwan017: