2013-07-30 60 views
0
FIXED! 
Feel free to use my code, no need to cite my work. There was no problem, just that the image size was too small and some weren't showing up. duh. 

I will change the size from 100px to 500px for anyone who wants to use this code. 

Have fun 

我想用互聯網上的一些開放代碼來製作一個隨機Flash生成器。隨機Flash物件頁面PHP

的一部開拓創新代碼:

<?php 
$imglist=''; 
//$img_folder is the variable that holds the path to the swf files. 
// see that you dont forget about the "/" at the end 
$img_folder = "images/"; 
mt_srand((double)microtime()*1000); 
//use the directory class 
$imgs = dir($img_folder); 
//read all files from the directory, ad them to a list 
while ($file = $imgs->read()) { 
if (eregi("swf", $file)) 
$imglist .= "$file "; 
} closedir($imgs->handle); 
//put all images into an array 
$imglist = explode(" ", $imglist); 
$no = sizeof($imglist)-2; 
//generate a random number between 0 and the number of images 
$random = mt_rand(0, $no); 
$image = $imglist[$random]; 
//display random swf 
echo '<embed src="'.$img_folder.$image.'" quality="high" 
pluginspage="http://www.macromedia.com/go/getflashplayer" 
type="application/x-shockwave-flash" width="100" 
height="100"></embed>'; 
?> 

我修改後的代碼:

<?php 
$imglist=''; 
//$img_folder is the variable that holds the path to the swf files. 
// see that you dont forget about the "/" at the end 
$img_folder = "../files/flash/"; 
mt_srand((double)microtime()*1000); 
//use the directory class 
$imgs = dir($img_folder); 
//read all files from the directory, ad them to a list 
while ($file = $imgs->read()) { 
if (preg_match("/(swf)/i", $file)) 
$imglist .= "$file "; 
} closedir($imgs->handle); 
//put all images into an array 
$imglist = explode(" ", $imglist); 
$no = sizeof($imglist)-2; 
//generate a random number between 0 and the number of images 
$random = mt_rand(0, $no); 
$image = $imglist[$random]; 
//display random swf 
echo '<embed src="'.$img_folder.$image.'" quality="high" 
pluginspage="http://www.macromedia.com/go/getflashplayer" 
type="application/x-shockwave-flash" width="500" 
height="500"></embed>'; 
?> 

我是在第一次有上線11 ergi問題,有人告訴我用預浸來取代它,我經歷了並計算出來。

我加載了我的隨機頁面(http://www.nsgaming.us/random/),它閃爍了幾分之一秒,我在文件夾中有一個隨機的閃存對象,但現在它什麼也沒有顯示。

請幫忙嗎?

我的指數顯示如下:

<html> 
    <head> 
     <title>test</title> 
     <?php 
    include("../menu.php"); 
    include_once('random2.php'); 
    ?> 
    </head> 
    <body> 
<p>This is the random page.</p> 
<p>I am planning on having random flash objects load here but still working on it.</p> 
</body> 
</html> 

請記住我是新的網頁設計,HTML和PHP放緩。 如果你可以嘗試,而不是因爲做一些愚蠢的事情而大吼大叫,這可能是發生了什麼事。

+1

我從2頁獲得了'src =「../ files/flash/of」'和'src =「../ files/flash/Mario」',不要認爲這是您的預期 – bansi

回答

2

代替

if (preg_match("/(swf)/i", $file)) 

嘗試

if (preg_match("/\.swf$/i", $file)) 

而且下面一行是要打破你的代碼,如果任何文件在你​​的文件名空間。

$imglist = explode(" ", $imglist); 

而不是

while ($file = $imgs->read()) { 
    if (preg_match("/(swf)/i", $file)) 
    $imglist .= "$file "; 
} closedir($imgs->handle); 
//put all images into an array 
$imglist = explode(" ", $imglist); 

下面的代碼將協助您放送與空間也文件名。這也將排除兩個點目錄。

$imglist=array(); 
while (false !== ($file = $imgs->read())) { 
    if (($file==".")||($file=="..")) continue; 
    if (preg_match("/\.swf$/i", $file)) 
    $imglist[]= $file; 
} $imgs->close(); 
+0

我修正了第一個問題,不確定那是幹什麼的,但第二個工作不好,(但是我注意到我的代碼是用帶空格的文件取出單個單詞,比如'and'或'the',而不是提供任何東西,所以我只是確保一切都有下劃線 – Megatoaster

+0

我錯誤地使用了'$ imglist [] =「$ file」;'而不是'$ imglist [] = $ file;'。一個字符串在結尾處有一個空格,然後使用空格作爲分隔符進行分割,我直接將該文件添加到數組中(較少的代碼,並且不會與包含空格的文件名分開)。 – bansi

1

Flash對象正在返回404.

其中一個實際工作。

http://www.nsgaming.us/files/flash/anon_partyhard007.swf

在此基礎上,我想你可能會尋找在錯誤的文件夾中。我假設你有一個公共文件夾,然後是一個低於root的文件夾?

也許這可能會更好。

$img_folder = "./files/flash/"; 
+0

它肯定不能用./反對../ 我認爲一些flash文件可能會損壞,因爲我下載了一個我檢查了空白(它應該在哪裏)的元素,但它仍然沒有下載後加載。 – Megatoaster