-2

JavascriptとPHPを使用して画像のフォルダーを読み取り、画像を循環させようとしています。ここからアイデアとコードを入手しました:http ://www.javascriptkit.com/javatutors/externalphp2.shtml

Firebugを起動してもエラーは発生しません。しかし、それは画像を循環しているだけではありません。設定した最初の画像(userfiles / Portfolio / 0025.jpg)が読み込まれます。ただし、別の画像に移動することはありません。

getimages.phpは、私の画像と一緒にuserfiles/portfolioにあります。

これが私が持っているものです:

画像を表示したいページ:

<script src="userfiles/portfolio/getimages.php"></script>

<script type="text/javascript">

var curimg=0
function rotateimages(){
document.getElementById("slideshow").setAttribute("src", "userfiles/portfolio/"+galleryarray[curimg])
curimg=(curimg<galleryarray.length-1)? curimg+1 : 0
}

window.onload=function(){
setInterval("rotateimages()", 1000)
}
</script>

<div id="portfoilo">
    <img id="slideshow" src="userfiles/portfolio/0025.jpg" />
</div>

これが私のgetimages.phpです

 <?php
//PHP SCRIPT: getimages.php
Header("content-type: application/x-javascript");

//This function gets the file names of all images in the current directory
//and ouputs them as a JavaScript array
function returnimages($dirname=".") {
    $pattern="(\.jpg$)|(\.png$)|(\.jpeg$)|(\.gif$)"; //valid image extensions
    $files = array();
    $curimage=0;
    if($handle = opendir($dirname)) {
        while(false !== ($file = readdir($handle))){
            if(eregi($pattern, $file)){ //if this file is a valid image
            //Output it as a JavaScript array element
            echo 'galleryarray['.$curimage.']="'.$file .'";';
            $curimage++;
            }
        }

            closedir($handle);
        }
    return($files);
}

echo 'var galleryarray=new Array();'; //Define array in JavaScript
returnimages() //Output the array elements containing the image file names
?> 

getimages.phpを実行すると、空白で表示されていました。しかし今私は得ています:

<font size='1'><table class='xdebug-error xe-deprecated xe-scream' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> SCREAM: Error suppression ignored for</th></tr>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Deprecated: Function eregi() is deprecated in J:\My Documents\Dropbox\www\ChiseledImages-Ras\userfiles\portfolio\getimages.php on line <i>13</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0014</td><td bgcolor='#eeeeec' align='right'>248760</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='J:\My Documents\Dropbox\www\ChiseledImages-Ras\userfiles\portfolio\getimages.php' bgcolor='#eeeeec'>..\getimages.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0015</td><td bgcolor='#eeeeec' align='right'>249536</td><td bgcolor='#eeeeec'>returnimages(  )</td><td title='J:\My Documents\Dropbox\www\ChiseledImages-Ras\userfiles\portfolio\getimages.php' bgcolor='#eeeeec'>..\getimages.php<b>:</b>26</td></tr>
</table></font>

エレギはもう完全になくなったのですか?5以降は非推奨になり、WAMPバージョンはphp5.4.3を実行していることを知っています。

4

1 に答える 1

1

コードを一目見ただけですが、おそらくこれを変更する必要があります。

setInterval("rotateimages()", 1000)

これに

setInterval(rotateimages, 1000);

これは、1秒後に特定の関数を実行するようにJavascriptに指示しているためです。したがって、関数参照や無名関数ブロックなど、呼び出し可能なものを渡す必要があります。あなたの場合、呼び出し可能ではない文字列を渡しています。

于 2012-11-04T02:44:29.417 に答える