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

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

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

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

กระทู้: 4,782



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

1.ผมจะทำหน้าเพจที่สามารถ include php แบบแรนดอมไฟล์ได้น่ะครับ(ไฟล์อยู่ในFolderเดียวกัน)..ใครพอมีแนวทางมั่งมั้ยครับ
2.แล้วถ้าไฟล์ที่จะแรนดอมมันมีหลายไฟล์จะมีผลเสียมั้ยครับ
ขอบคุณครับ Kiss
บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,152



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

ลองใช้ scandir() ดูคับ จะรีเทิร์นเป็นรายชื่อไฟล์ทั้งหมดที่อยู่ใน โฟลเดอร์ที่ต้องการ scan คืยค่าเป้น array คับ แต่ว่ามันจะมี . กับ .. แถมมาด้วย นะคับ ให้ลบออกก็จะได้รายชื่อไฟล์ทั้งหมด หลังจากนั้นค่อยใช้ array_rand() มันจะสุ่มสมาชิกใน array ออกมา แต่จะคืนค่าเป็น key นะคับ ไม่ได้คืนค่าเป็ฯ value ดังนั้นเวลาจะเรียกใช้ ต้องเรียกแบบระบุ key คับ

ผมมั่วประมาณนี้อ่ะคับ รอเซียนเข้ามาแก้ผมอีกต่อละกัน

**ฟังก์ชั่น scandir() มีเฉพาะใน PHP5 นะคับ ถ้าใช้ PHP4 อยู่เด๋วผมจะหาดูฟังก์ชั่นนี้ในแบบของ PHP4 มาให้คับ

<?php

$dir = "include";                                         // path ของ ไดเร็คทอรี่ที่ต้องการสแกน
$entry = scandir($dir);
$entry = array_slice($entry,2,count($entry)); // ตัด . กับ .. ออกไป
$key = array_rand($entry);                          // สุ่มคีย์ไฟล์มา
$file_to_include = "include/".$entry[$key];    // path ของไฟล์ที่จะ include

include_once($file_to_include);

?>

ยังงัยลองแก้ของผมดูเอาคับ ผมก็มั่วๆ เอาเพราะไม่ได้เรียนมาอ่ะ เขียนถูกตามหลักรึปล่าวก็ไม่รู้ ยังงัยรอเซียนคับ
บันทึกการเข้า

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

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

กระทู้: 4,782



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

ขอบคุณครับ ได้ของคุณต่อ อีกไฟล์นึงด้วย ไปค้นกะทู้เก่าๆมา..ไปลองก่อนล่ะครับ Cry
บันทึกการเข้า
ฉันไม่มีตัวตน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,782



ดูรายละเอียด
« ตอบ #3 เมื่อ: 14 ตุลาคม 2007, 16:24:31 »

ช่วยดูทีครับตรงสีแดงผมตั้งชื่อโฟล์เดอร์ใช่มั้ยครับ แล้วต้องแก้ตรงไหนอีกหรอครับ มัน errorง่ะ..ขอบคุณครับ
<?
$path1 = 'top-adsense/';
$dir1 = opendir($path1);
while ($filename1 = readdir($dir1)){
    if ($filename1 != '.' && $filename1 != '..'){
        $count += 1;
        $filenames[$count] = $filename1;

    }
}
$articleno =mt_rand(1, $count);
$f = $path1 . $filenames[$articleno];
include $f;
?>
บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,152



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

ช่วยดูทีครับตรงสีแดงผมตั้งชื่อโฟล์เดอร์ใช่มั้ยครับ แล้วต้องแก้ตรงไหนอีกหรอครับ มัน errorง่ะ..ขอบคุณครับ
<?
$path1 = 'top-adsense/';
$dir1 = opendir($path1);
while ($filename1 = readdir($dir1)){
    if ($filename1 != '.' && $filename1 != '..'){
        $count += 1;
        $filenames[$count] = $filename1;

    }
}
$articleno =mt_rand(1, $count);
$f = $path1 . $filenames[$articleno];
include $f;
?>

รู้สึกว่า $path1 = 'top-adsense/'; จะไม่มี / นะคับ
บันทึกการเข้า

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

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

กระทู้: 4,782



ดูรายละเอียด
« ตอบ #5 เมื่อ: 14 ตุลาคม 2007, 16:46:31 »

อ๋อโฟลเดอร์ผมชื่อนั้นน่ะครับ เลยลองเปลี่ยนดู เดิมๆมันคือ randomarticle คับ..
ผมเอาสคริปนี้มาลองใช้ดูน่ะครับ ไม่รู้ว่ามันเป็นสคริปที่ต้องใช้ในโปรแกรมที่เพื่อนๆขายกันป่าว..ถ้าใช่คงต้องหาสคริปใหม่ง่ะ
« แก้ไขครั้งสุดท้าย: 14 ตุลาคม 2007, 16:48:53 โดย ninep » บันทึกการเข้า
ฉันไม่มีตัวตน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,782



ดูรายละเอียด
« ตอบ #6 เมื่อ: 14 ตุลาคม 2007, 17:04:54 »

ได้แล้วครับ
แต่ของคุณบอลใช้ไม่ได้นะ..^^ ไม่รู้ผมทำผิดป่าว..ขอบคุณครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์