0
我有一個函數,它打開預先指定的目錄,在目錄中創建一個圖像文件數組,然後從數組列表中拉出一個隨機圖像名稱以回顯到網頁。問題有時它實際上並不拉圖像名稱。PHP隨機圖像函數有時會插入空白圖像
這裏是PHP代碼:
<?php
$actualpath = get_stylesheet_directory_uri() . "/img/banners/";
// open this directory
$myDirectory = opendir("wp-content/themes/beautysalon/img/banners/");
// get each entry
while($entryName = readdir($myDirectory)) {
$dirArray[] = $entryName;
}
// close directory
closedir($myDirectory);
function getRandomFromArray($ar) {
mt_srand((double)microtime() * 1000000); // php 4.2+ not needed
$num = array_rand($ar);
return $ar[$num];
}
$randomPicture = getRandomFromArray($dirArray);
?>
,而且我用實際網頁上顯示的圖像的代碼:
<?php
if (!is_front_page()) {
echo '<img src="' . $actualpath . $randomPicture . '"/>';
};
?>
當代碼的工作就結束了呼應類似:
<src="http://sitename.com/directorypath/image.png" />
這正是我打算做的。但是,當它不工作,它不是出於某種原因拉動映像名稱並最終輸出這樣的事情,其結果是破壞形象:
<src="http://sitename.com/directorypath/" />
這幾乎就像如果PHP還沒有來得及在頁面內容生成之前運行該函數,但我認爲PHP在頁面呈現之前總是完全執行。
Working example of the PHP script in action can be found here.
運行該腳本上,除了主頁和聯繫頁面的所有頁面。
這似乎很好地工作。任何想法爲什麼opendir方法造成的問題? – Longblog
我並不確定,但它可能是PHP軟件本身的問題。如果它解決了您的問題,請將我的答案標記爲已解決。謝謝! – synquall
現在標記爲已解決。在將其標記爲已解決之前,我只是在等待您的迴應。我想就可能導致問題的問題提出意見,並不確定如果標記爲解決方案,您是否會回來。 ;) – Longblog