1

我正在尝试显示幻灯片。slide_auto.php与我的slideS_img文件夹位于同一目录中

这是我的 slide_auto.php 文件:

<?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 我的 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>

我收到一条错误消息警告:opendir(slideS_img) [function.opendir]: failed to open dir: No such file or directory in /[path]/slideshow/slide_auto.php on line 62

有什么帮助吗?谢谢

4

2 回答 2

1

包含的文件假定您从中包含它们的文件的工作目录。您的父幻灯片页面脚本在(比如说)

 /home/sites/example.com/html

这将成为幻灯片脚本的工作目录。所以 opendir 实际上是按照

 /home/sites/example.com/html/slideS_img

代替

 /home/sites/example.com/html/slideshow/slideS_image

您必须修改 opendir 调用以使用更具体的目录。

于 2012-05-10T17:01:16.527 回答
0

Marc 在他的解决方案中实际上是正确的。如果我可以尝试详细说明一下,当您包含 slide_auto.php 时,您可以认为发生了以下情况:

  1. PHP 插入文件 slide_auto.php 中的文本,其中包含命令。
  2. 所以,当 $file_dir="slideS_img"; 出现它会尝试在 slideshowpage.php 下找到目录,而不是 slide_auto.php

这失败了,因为实际的图像文件夹在目录slideshow中。

如果您直接(或在 Flash 应用程序中)调用 slide_auto.php,那么它的目录是幻灯片,您应该能够获取 XML 而不会出现任何进一步的错误。

于 2012-05-10T23:48:55.883 回答