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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingphp สามารถเขียน code ค้นหาแบบนี้ได้ป่ะครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: php สามารถเขียน code ค้นหาแบบนี้ได้ป่ะครับ  (อ่าน 3503 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
sisi
สมุนแก๊งเสียว
*

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

กระทู้: 917



ดูรายละเอียด
« เมื่อ: 14 ตุลาคม 2007, 22:59:14 »

คืออยากจะค้นหาชื่อไฟล์ใน folder อ่ะครับ โดยกำหนด ตัวแปรขึ้นมาตัวนึง ถ้าไฟล์ไหนมีชื่อคล้ายตัวแปรนี้ก็ให้ echo ออกมาครับ


ไม่รู้ว่า php ทำได้แล้วหรือมีเทคนิคที่ใกล้เคียงไหมครับ
บันทึกการเข้า
moonoi
สมุนแก๊งเสียว
*

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

กระทู้: 771



ดูรายละเอียด
« ตอบ #1 เมื่อ: 14 ตุลาคม 2007, 23:12:41 »

สดๆมั่วๆเอาครับ สมมุติให้ $dir = folder ที่ต้องการค้นหา $needle = keyword ของชื่อไฟล์
ผิดพลาดประการใดขออภัย

โค๊ด:
<?php

$dir 
'/path/to/search';
$needle '001';

$dir_rs opendir($dir);
while ((
$file readdir($dir_rs)) !== FALSE) {
if ($file == '.' || $file == '..' || is_dir($file)) continue;
elseif (strpos($file,$needle) !== FALSE$found[] = $file;
}
closedir($dir_rs);

foreach(
$found as $name) {
echo 'Found ' $name '<br />';
}

?>
« แก้ไขครั้งสุดท้าย: 14 ตุลาคม 2007, 23:14:16 โดย moonoi » บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #2 เมื่อ: 15 ตุลาคม 2007, 00:02:50 »

วันนี้โจ้เค้าหายไปไหนนะ ปกติจะรีบเข้ามาตอบแล้วนะ

เป็นผมจะใช้ scandir แล้ว เช็คด้วย eregi คับ มั่วๆเอาได้ตามนี้คับ

โค๊ด:
<?php

$dir 
"directory"
$keyword "keyword"

$entry scandir($dir);
$entry array_slice($entry,2,count($entry));

foreach(
$entry as $file){
    if(
eregi($keyword,$file)){
           echo 
"$file<br />\n";
    }
}

?>

คิดว่าน่าจะได้แล้วนะ ยังไม่ได้ลองเหมือนกัน มั่วๆเอา อิอิ PHP5 นะคับ
บันทึกการเข้า

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

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #3 เมื่อ: 15 ตุลาคม 2007, 00:30:45 »

ไม่ค่อยว่างครับ อาจจะอีกหลายวันด้วย

เดียวนี้แบ่งเวลาให้ไทยเสียวน้อยลงครับ  Tongue

---------------------------------------

ใช้ array_search ค้นหาเอาก็ได้นะครับ สะดวกดีครับ
บันทึกการเข้า

moonoi
สมุนแก๊งเสียว
*

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

กระทู้: 771



ดูรายละเอียด
« ตอบ #4 เมื่อ: 15 ตุลาคม 2007, 08:16:26 »

array_search ไม่ได้ครับ เพราะจะเป็นการ compare แบบ ==
ใช้ strpos แบบที่บอกจะเป็นการค้นหาของ keyword ที่เป็นส่วนใดส่วนหนึ่งครับ อย่าลืมว่าต้อง compare แบบ !== นะครับ ไม่ใ่ช่ != ไม่งั้นจะมีปัญหากับ boolean
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,516



ดูรายละเอียด
« ตอบ #5 เมื่อ: 15 ตุลาคม 2007, 09:36:12 »

 Tongue

array_search ได้ครับ ถ้าเขียน if ดีๆ

$color=array("green","red","orange");
$key = array_search('green', $color);
if($key !== FALSE) {
echo $color[$key];
}

อ้างอิง : http://www.thaiseoboard.com/index.php/topic,15388.0.html
บันทึกการเข้า

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