problema com php: leia nomes de arquivos, gere javascript e html
Olá de novo. Eu me vi com um novo problema. O código php funcionou perfeitamente no meu PC (servidor wamp), mas agora o enviei em um servidor de hospedagem gratuita e, enquanto a parte php funciona perfeitamente (produz a matriz), a função javascript não funciona porque não há fotos no site quando está carregado. Tentei testá-lo colocando na primeira linha da função um alerta para ver se ele é executado, mas nunca apareceu. Eu acho que o servidor por algum motivo não percebe que é uma função javascript porque eu também tinha no getphotos.php isso:
window.onload = photos();
, além de iniciar a função de fotos, mostra um texto. Quando mudei essa linha no arquivo js e coloquei a linha de texto show primeiro, ela é executada, mostrando o texto, mas ainda não há fotos. O que você acha???
END OF UPDATE
Olá para todos. Estou construindo um site que mostra algumas fotos. Quero que o site gere automaticamente o código html que mostra as fotos, lendo os nomes dos arquivos na pasta de fotos, mas também preciso usar o javascript. Então eu encontrei na web uma solução com php gerando javascript que gera o código html que eu quero e acho que é isso que eu preciso. Mas ... não funciona X_X. Então, preciso da ajuda de alguém!
Primeiramente, aqui está o php / javascript (em getPhotos.php):
<?
header("content-type: text/javascript");
//This function gets the file names of all images in the current directory
//and ouputs them as a JavaScript array
function returnImages() {
$pattern="(*.jpg)|(*.png)|(*.jpeg)|(*.gif)"; //valid image extensions
$files = array();
$curimage=0;
if($handle = opendir('/photos/')) {
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);
}
//here starts the javascript function
echo 'window.onload = photos;
function photos(){
var i;
var text1 = "";
var text2 = "";
var text3 = "";
var galleryArray=new Array();'; //Define array in JavaScript
returnImages(); //Output the array elements containing the image file names
//short the images in three sets depending on their names and produce the code
echo 'for(i=0; i<galleryArray.length; i++){
if(galleryArray[i].indexOf("set1_")!=-1){
text1+= "<a rel=\"gallery\" title=\"\" href=\"photos/"+galleryArray[i]+"\">\n<img alt=\"\" src=\"photos/"+galleryArray[i]+"\" />\n</a>\n" ;
}else if(galleryArray[i].indexOf("set2_")!=-1){
text2+= "<a rel=\"gallery\" title=\"\" href=\"photos/"+galleryArray[i]+"\">\n<img alt=\"\" src=\"photos/"+galleryArray[i]+"\" />\n</a>\n" ;
}else if(galleryArray[i].indexOf("set3_")!=-1){
text3+= "<a rel=\"gallery\" title=\"\" href=\"photos/"+galleryArray[i]+"\">\n<img alt=\"\" src=\"photos/"+galleryArray[i]+"\" />\n</a>\n" ;
}
}';
//create text nodes and put them in the correct div
echo 'var code1 = document.createTextNode(text1);
var code2 = document.createTextNode(text2);
var code3 = document.createTextNode(text3);
document.getElementById("galleryBox1").appendChild(code1);
document.getElementById("galleryBox2").appendChild(code2);
document.getElementById("galleryBox3").appendChild(code3);
}';
?>
E este é o código na página da juba index.html:
<script type="text/javascript" src="getPhotos.php"></script><!--get photos from dir-->
É isso, e não funciona! Eu sei que peço muito, apenas fornecendo todo o código e pedindo ajuda, mas não consigo nem pensar no que está errado, muito menos em como corrigi-lo ... Então, por favor, se você tem alguma idéia, seria ótim