PHP ให้แรมดอมชื่อไฟล์ในโฟเดอร์ทำไงอะครับ

เริ่มโดย ThaNaButS, 22 พฤษภาคม 2008, 13:44:32

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

ThaNaButS

อย่างเช่นผมมี index.php อยากให้มันแรนดอม ไฟล์ ชื่อไฟล.html ซึ่งมีหลายๆไฟล์และอยู่ใน โฟเดอร์ ABC ทำไงอะครับ

ball6847

<?php

$dir 
"whereisit";

$dirContent array_slice(scandir($dir), 2);
$key array_rand($dirContent);

echo 
$dirContent[$key];

?>
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

EThaiZone

<?php

$dir 
"ABC"//ชื่อโฟลเดอร์

$dirlist glob($dir."/*.html");  //ค้นเฉพาะ .html

$key rand(0count($dirlist)-1);

echo 
$dirlist[$key];

?>

ThaNaButS

อ้างถึงจาก: EThaiZone ใน 22 พฤษภาคม 2008, 14:14:59
<?php

$dir 
"ABC"//ชื่อโฟลเดอร์

$dirlist glob($dir."/*.html");  //ค้นเฉพาะ .html

$key rand(0count($dirlist)-1);

echo 
$dirlist[$key];

?>


และถ้าจะเอา 10 ไฟล์ อะครับทำไง
:-*

workshop

อ้างถึงจาก: ThaNaButS ใน 22 พฤษภาคม 2008, 14:31:34
อ้างถึงจาก: EThaiZone ใน 22 พฤษภาคม 2008, 14:14:59
<?php

$dir 
"ABC"//ชื่อโฟลเดอร์

$dirlist glob($dir."/*.html");  //ค้นเฉพาะ .html

$key rand(09);

echo 
$dirlist[$key];

?>


และถ้าจะเอา 10 ไฟล์ อะครับทำไง
:-*

หมายเหตุผมมั่ว ลองดูเองนะครับ
หากินได้อีก 1 reply ;D ;D ;D

awat


http://neoarch.wordpress.com/2006/02/25/php-css-and-random-pictures/

คล้ายนี้หรือเปล่าวครับลองดู  8)
.NET Developer, Cloud computing Developer
รับทำ component joomla, wordpress, drupal

EThaiZone

จะเอาสิบไฟล์ และสุ่ม ก็แบบนี้

<?php

$dir 
"ABC"//ชื่อโฟลเดอร์

$dirlist glob($dir."/*.html");  //ค้นเฉพาะ .html

$key range(0count($dirlist)-1);  //สร้างเลขสมมุติ
shuffle($key);//สลับเลขแบบมั่วๆ

//เรียกมา 10 อ้างอิงจากเลขมั่วๆ ข้างต้น เหอๆ
for($i=0$i<10$i++) {
echo 
$dirlist[$key[$i]];
}

?>

ball6847

อ้างถึงจาก: ThaNaButS ใน 22 พฤษภาคม 2008, 14:31:34
อ้างถึงจาก: EThaiZone ใน 22 พฤษภาคม 2008, 14:14:59
<?php

$dir 
"ABC"//ชื่อโฟลเดอร์

$dirlist glob($dir."/*.html");  //ค้นเฉพาะ .html

$key array_rand($dirlist10);

for(
$i=0;$i<count($key);$i++)
{
     echo 
$dirlist[$key[$i]];
}

?>


และถ้าจะเอา 10 ไฟล์ อะครับทำไง
:-*

คงไม่รำคาญผมนะ

ผมก็กำลังฝึกเหมือนกัน

http://th.php.net/array_rand
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

EThaiZone

เพิ่งสังเกตว่า array_rand มีพารามิเตอร์ตัวที่สองไว้กำหนดค่าได้ด้วย  :o

ฉันไม่มีตัวตน

อย่าแก้ไขในอ้างอิงดิท่าน ผมงง ;D(เดิมก็งงอยู่แล้ว)

tenzamak

แล้วถ้าสุ่มไฟล์รูปผมเปลี่ยนเป็นjpgงี้ถูกไหมครับ แล้วในกรณีัที่ในโฟเดอร์มีเป็นล้านไฟลืจะมีปัญหาไหม

Edit ไม่ได้สงสัยใช้กะไฟล์รูปมิได้

EThaiZone

อ้างถึงจาก: ฉันไม่มีตัวตน ใน 22 พฤษภาคม 2008, 15:00:48
อย่าแก้ไขในอ้างอิงดิท่าน ผมงง ;D(เดิมก็งงอยู่แล้ว)
งานนี้โทษคนแก้ครับ ผมไม่เคยแก้ในอ้างอิงเดิม เอิ้กๆ  ;D

อ้างถึงจาก: tenzamak ใน 21 มิถุนายน 2008, 21:39:20
แล้วถ้าสุ่มไฟล์รูปผมเปลี่ยนเป็นjpgงี้ถูกไหมครับ แล้วในกรณีัที่ในโฟเดอร์มีเป็นล้านไฟลืจะมีปัญหาไหม
ใช่เลย ส่วนเรื่องมีล้านไฟล์ งานนี้มีปัญหาชัวร์
รับรองจะอืดจม เพราะต้องแคชรายการ array ไว้ก่อน (แดรกเมม + กินโปรเสจ + HD วิ่งฉิว)

ส่วนมากจะแก้ต้องเริ่มจากฐาน อารมณ์เหมือนจะทำระบบบริษัท ถ้า DB เน่าแต่เริ่ม
พอมาทำ Interface ก็สายไปซะแล้ว

ส่วนมากถ้าเป็นเว็บฝากรูป ยังไงก็ต้องซอยย่อย
เช่นจับรูปแบ่งใส่โฟลเดอร์ a-z แล้วค่อยสุ่มโฟลเดอร์ ก่อนจะค่อยสุ่มภาพ

อะไรประมาณนี้  :P

ส่วนของเท็น ระบบเดิมอาจรก พี่แนะนำเอาเป็นแบบ
สุ่มจาก 50 ไฟล์อัพโหลดล่าสุด อะไรแนวนี้ น่าจะกินระบบน้อยลงนะ

ก็อาจทำแคชรายการอัพโหลดล่าสุดดักไว้ แล้วค่อยหาทางสุ่มเรียกเอา
อะไรแบบนั้นอะ

ปล. เรื่อง PHP ศึกษาทั้งชีวิิตก็ไม่หมด  :'(

tenzamak

พี่โจ้มาเขียนให้มึน  ฮ่าๆๆ

แต่เรื่องที่ว่าอืดจมนี่จริงๆก็ได้คําแนะนําจากพี่ต่อมาแหละ
ช่วงนี้เวบเน่าๆกะลังยกระบบใหม่

ฉันไม่มีตัวตน

ผมคิดว่าถ้าเก็บเข้า db แล้วค่อยดึงออกมาน่าจะเบากว่านะครับ(กำลังหาวิธีแก้อยู่)

PAGE

ขอรู้ด้วยคนครับ(ไม่รู้เรื่องกับเขาหรอกคอยเอาไปใช้อย่างเดียว)
สิ่งที่ดีที่สุดในชีวิตคือความสงบ