你如何使用PHP变量的目录路径?

时间:2014-01-17 23:47:43

标签: javascript php html directory

我从网址获取用户ID。 这就是我现在所拥有的。我想用$ userid替换那个,但我不知道如何。它不起作用,我似乎无法找到正确的语法,请有人帮忙吗?

function returnimages($dirname = "Photos/1") 

基本上我正在尝试使用html,php和javascript创建照片幻灯片。在我开始在我的代码中添加php之前,我有一些工作。我有html和外部JavaScript改变了照片,它们在循环中淡入淡出。我在javascript中有一个照片数组。现在我正在尝试将php添加到我的html中。我希望能够通过url获取userid然后从中获取从特定路径到目录中userid的照片。然后我希望创建这些照片的数组,并在我的JavaScript中使用它们。这是我的html中嵌入的PHP代码:

<?php

$user_id = $_GET['userid'];
print " Hi,  $user_id ";

function returnimages($dirname = "Photos/1") {   //will replace 1 with userid once something starts working
$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

?>  

我的javascript:

$(document).ready(function(){

var photodisplay = 
[
$("#photo1"),
$("#photo2"),
$("#photo3"),
$("#photo4"),
$("#photo5"),
];

//photodisplay[0].hide().fadeIn(3000);

var user = new Array();
[1, 2, 3, 4, 5];

// List of images for user one
/*var userphoto = new Array();
userphoto[0] = "Photos/1/1.jpg";
    userphoto[1] = "Photos/1/2.jpg";
        userphoto[2] = "Photos/1/1.jpg";
            userphoto[3] = "Photos/1/1.jpg";
                userphoto[4] = "Photos/1/1.jpg";*/


//preloading photos
var userphoto = <? echo json_encode($galleryarray); ?>;
function preloadingPhotos() {
for (var x=0; x<5; x++)
{
    photodisplay[x].attr("src", "Photos/1" + userphoto[x]);
    photodisplay[x].hide();
    console.log("preloaded photos");

}
displayPhoto();
}

function displayPhoto(){

    photodisplay[0].fadeIn(3000);
    photodisplay[0].delay(3000).fadeOut(3000, function() { //first callback func
    photodisplay[1].fadeIn(3000);
    photodisplay[1].delay(3000).fadeOut(3000, function() { //second callback func
    photodisplay[2].fadeIn(3000);
    photodisplay[2].delay(3000).fadeOut(3000, function() { //third callback func
    photodisplay[3].fadeIn(3000);
    photodisplay[3].delay(3000).fadeOut(3000, function() { // fourth callback func
    photodisplay[4].fadeIn(3000);
    photodisplay[4].delay(3000).fadeOut(3000, function() {
    setTimeout(displayPhoto(), 3000);
    });
    }); 
    });
    }); 
    });

}// end of function displayPhoto


window.onload = preloadingPhotos;

}); //结束准备

我的网址是获取用户ID:

http://example.com/code.php?user_id=1

感谢您的时间!

2 个答案:

答案 0 :(得分:1)

问题是你总是设置dirname而不是让调用函数设置它。你可以改变:

function returnimages($dirname = "Photos/1") {

function returnimages($dirname) {

因为$dirname总是Photo/1。然后,当您调用该函数时,请使用:

returnimages('Photos/'.$user_id);

答案 1 :(得分:0)

您可以使用点'。'在PHP中连接。这将连接两个字符串,然后将它们分配给变量$ dirname。例如:

 $dirname = "Photos/" . $_GET['ID'];

然后可以将变量$ dirname放在函数returnimages中,例如:

returnimages($dirname);