代码是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="Content-Language" content="en"/>
<meta name="viewport" content="width=device-width; height=device-height; initial-scale=1.0"/>
<link type="text/css" rel="stylesheet" href="screen.css" media="screen,projection,tv"/>
<title>change picture</title>
</head>
<body>
<div id="slideCounter"></div>
<div id="slideShow">
<?php
$allowed_types = ['png','jpg','jpeg','gif'];
$imageDir = 'files/radar-simulation-files';
/*
Assumes this .php is being run from the http root on the same
domain as the desired image files.
*/
$handle = opendir($imageDir);
while (($imgPath = readdir($handle)) !== false) if (
in_array(
strtolower(pathinfo($imgPath, PATHINFO_EXTENSION)),
$allowed_types
) echo '
<img src="', $imageDir, '/', $imagePath, '" alt="slide" />';
closedir($handle);
?>
<!-- #slideShow --></div>
<script type="text/javascript" src="slideShow.js"></script>
错误在线:
) echo '
之后的意外回声)
然后,我应该在哪里添加其余的代码?我有一个javascript函数和一个css代码。我应该在同一个php文件中添加它们吗?如果是的话,在哪里?在HTML代码之后?在html代码里面?
这是java脚本代码:
(function(d) {
// user defines
var
swapHours = 0,
swapMinutes = 0,
swapSeconds = 5,
swapTotal = (swapHours * 60 + swapMinutes) * 60 + swapSeconds,
loopSlideShow = true;
// some handy helper functions
function classExists(e, className) {
return RegExp('(\\s|^)' + className + '(\\s|$)').test(e.className);
}
function classAdd(e, className) {
if (classExists(e, className) return false;
e.className += (e.className ? ' ' : '') + className;
return true;
}
function classRemove(e, className) {
if (!classExists(e, className)) return false;
e.className = e.className.replace(
new RegExp('(\\s|^)' + n + '(\\s|$)'), ' '
) . replace(/^\s+|\s+$/g,'');
return true;
}
function textReplace(e, newtext) {
if (d.innerText) e.innerText = newText;
else e.textContent = newText;
}
function nodeFirst(e) {
e = e.firstChild;
while (e && e.nodeType != 1) e = e.nextSibling;
return e;
}
function nodeLast(e) {
e = e.lastChild;
while (e && e.nodeType != 1) e = e.prevSibling;
return e;
}
function nodeNext(e) {
while (e) if ((e = e.nextSibling).nodeType == 1) return e;
return null;
}
function nodePrev(e) {
while (e) if ((e = e.prevSibling).nodeType == 1) return e;
return null;
}
// slideShow setup
var
slideShow = d.getElementById('slideShow'),
slideCounter = d.getElementById('slideCounter'),
firstSlide = nodeFirst(slideShow),
lastSlide = nodeLast(slideShow),
currentSlide = firstSlide,
swapCounter;
classAdd(slideShow, 'ss_scripted');
classAdd(currentSlide, 'ss_show');
// slideShow functions
function showCounter() {
textReplace(slideCounter,
Math.floor(swapCounter / 3600) + ':' +
(Math.floor(swapCounter / 60) % 60) + ':' +
swapCounter % 60
);
}
function resetCounter() {
swapCounter = swapTotal;
showCounter();
}
function makeSlide(newSlide) {
classRemove(currentSlide, 'ss_show);
currentSlide = newSlide;
classAdd(currentSlide, 'ss_show');
}
function nextSlide() {
resetCounter();
var newSlide = nodeNext(currentSlide);
if (newSlide) makeSlide(newSlide);
else if (loopSlideShow) makeSlide(firstSlide);
}
function prevSlide() {
resetCounter();
var newSlide = nodePrev(currentSlide);
if (newSlide) makeSlide(newSlide);
else if (loopSlideShow) makeSlide(lastSlide);
}
function slideUpdate() {
if (swapCounter--) showCounter(); else nextSlide();
}
function startSlideShow() {
resetCounter();
setInterval(slideUpdate, 1000);
}
// wait for onload to actually start the countdown
if (window.eventListener) w.addEventListener('load', startSlideShow, false);
else w.addEventListener('onload', startSlideShow);
})(document);
这是css代码:
.ss_scripted img { display:none; }
.ss_scripted .ss_show { display:block; }
答案 0 :(得分:2)
问题是你错过了一个&#34;)&#34;
尝试
while (($imgPath = readdir($handle)) !== false) if (
in_array(
strtolower(pathinfo($imgPath, PATHINFO_EXTENSION)),
$allowed_types
)) echo '
<img src="', $imageDir, '/', $imagePath, '" alt="slide" />';
closedir($handle);
)) echo '
首先来自in_array()
if()
秒
希望这有帮助! :d
答案 1 :(得分:1)
这是可读性差,你有逗号,应该有句号和缺失的语句:
while (($imgPath = readdir($handle)) !== false) {
$needle = strtolower(pathinfo($imgPath, PATHINFO_EXTENSION));
// YOU WERE MISSING A CLOSING ( ON YOUR IF
if (in_array($needle, $allowed_types)) {
// THESE PERIODS WERE COMMAS
echo '<img src="' . $imageDir . '/' . $imagePath . '" alt="slide" />';
}
}
closedir($handle);
注意,在这种情况下我也会使用printf
而不是echo:
printf('<img src="%s/%s" alt="slide" />', $imgDir, $imgPath);
答案 2 :(得分:0)
您似乎忘了用括号关闭if语句。
试试这个
)) echo '
答案 3 :(得分:0)
<script type="text/javascript" src="slideShow.js"></script>
答案 4 :(得分:0)
你已经忘记了while循环和if语句的花括号。
也许这就是你想要的:
while (($imgPath = readdir($handle)) !== false){
if (in_array(strtolower(pathinfo($imgPath, PATHINFO_EXTENSION)),$allowed_types)){
echo '<img src="', $imageDir, '/', $imagePath, '" alt="slide" />';
}
}