I am trying to display a slideshow. slide_auto.php is in the same directory as my slideS_img folder
Here is my slide_auto.php file:
<?php
$file_dir="slideS_img"; //change this to a folder name
$show_titles=false; //change to false if you don't want to see the captions
$omit_chars=0; //how many characters to cut off the title's front
$link_to_image=false; //do you want to display links?
print '<?xml version="1.0" encoding="iso-8859-1"?>
<slideshow displayTime="5"
transitionSpeed=".7"
...more code...
>';
$dir=opendir($file_dir);
$xml_string= array();
while ($file=readdir($dir))
{
if(substr($file, -3) == "jpg" || substr($file, -4) == "jpeg" ){
$tmp_str = '<image img="'.$file_dir.'/'.$file.'" ';
if($show_titles){
$file_title=substr($file, $omit_chars, strpos($file, ".")-$omit_chars);
$tmp_str .= 'caption="'.$file_title.'" ';
}
if($link_to_image){
$link_title=substr($file, $omit_chars, strpos($file, ".")-$omit_chars);
$tmp_str .= 'link="'.$file_dir.'/'.$file.'" target="_blank"';
}
$tmp_str .=" />";
array_push($xml_string, $tmp_str);
}
}
sort($xml_string);
for($i=0; $i<count($xml_string); $i++){
print $xml_string[$i];
}
closedir($dir);
print '</slideshow>';
?>
amd my slideshowpage.php:
<?php
require_once('slideshow/slide_auto.php')
?>
<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<div align="center">
<br />
<br />
<br />
<div id="flashcontent">
This text is replaced by the Flash movie.
</div>
<script type="text/javascript">
swfobject.embedSWF("slideshow.swf?file=slideshow/slide_auto.php", "gallery", "100%", "100%", "7", "#333333");
so.write("flashcontent");
</script>
</div>
</body>
</html>
I get an error saying Warning: opendir(slideS_img) [function.opendir]: failed to open dir: No such file or directory in /[path]/slideshow/slide_auto.php on line 62
Any help? Thank you
Marc is actually right in his solution. If I could try to elaborate a bit, when you include slide_auto.php, you can think the following happening:
This fails because the actual image folder is in directory slideshow.
If you call slide_auto.php directly (or within the Flash application), then its directory is slideshow, and you should be able to get the XML without any further errors.
included files assume the working directory of the file you've included them from. Your parent slideshowpage script is in (say)
/home/sites/example.com/html
which will become the working directory of your slideshow script. So the opendir is actually being done as
/home/sites/example.com/html/slideS_img
instead of
/home/sites/example.com/html/slideshow/slideS_image
You'll have to modify your opendir call to use a more specific directory.