parse error vraagje
Ik vond een mooi script voor een fotogallerij, maar ik krijg foutmelding: parse error, unexpected T_STRING, expecting ',' or ';' in script.php on line 58.
Dit is de regel uit het script:
echo "<a href='"index.php?i"=".$image."'><img src='".$tsource."' alt=''></a>\n";
$image en $tsource zijn eerder in het script al gemaakt en/of gedefinieerd.
Na wat speurwerk denk ik dat het met de " en ' te maken kan hebben, maar ik heb al wat geprobeerd en dat lijkt nie te helpen. Graag jullie hulp.
Overigens heb ik het hele script, met deze en aanvullende vragen een paar dagen geleden al eens gepost, maar tot nu toe zonder antwoord.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
echo'<a href="index.php?i='.$image.'"><img src="'.$tsource.'" alt=""></a>'."\n";
?>
echo'<a href="index.php?i='.$image.'"><img src="'.$tsource.'" alt=""></a>'."\n";
?>
zo zou die goed moeten zijn
GR. mebus!
Dan heb ik nog wel even een vraagje, waarom wel de alt in je <img zetten en leeg laten? Het is altijd aan te raden om alt te vullen met een omschrijving van de te tonen afbeelding.
Een ALT tag MOET als je een Xhtml parser gebruikt
Helaas werkt er nu iets anders niet zo als het moet. Ik hoop dat iemand mij daar ook nog bij kan helpen. ...even uitleggen...
Als het hele script goed werkt, maakt het tumbnails aan (als die er niet zijn) en een pagina met deze tumbnails. Dit gaat dus goed. Als je daar op klikt opent een groter plaatje met navigatie (volgende, vorige plaatje). Omdat ik met het originele script de parse error kreeg had ik tot nu toe in de betreffende regel van het script "index.php?i" weggelaten. Dit leverde geen parse error op en ik kreeg wel tumbnails en als ik er op klikte kreeg ik een grotere foto, maar zonder navigatie. Dit heeft volgens mij te maken met het weglaten van "index.php?i".
Nu, na de oplossing voor de parse error, kan ik geen groter plaatje meer openen. Dit kan er mee te maken hebben dat ik gebruik maak van 1 index.php pagina, waarin ik dynamisch de andere contect laad, m.b.v. een switch/case.
Dit ziet er zo uit:
if(empty($_GET['page'])) $_GET['page'] = 'start';
switch($_GET['page'])
{
case 'xyz':
$content = 'xyz';
break;
case 'abc':
$content = abc;
break;
}
include $content.".php";
Het lijkt me wat onhandig om elke afbeelding die ik heb apart in de switch op te nemen. Weet iemand een manier om dit op te lossen? Of, weet iemand aan andere/betere manier om te doen wat ik probeer te bereiken. Voor de zekerheid hieronder het laatste deel van het script, waarin de naviagatie is geregeld. Als het nodig is, kan ik het ook het hele script nog een keer posten.
$image_path = $path . "/" . $_GET["i"];
if ($_GET["i"] && file_exists($path . '/' . $_GET["i"])) {
echo '<img src="' . $path . '/' . $_GET["i"] . '" . ' / '>';
$id = array_search($_GET["i"], $images);
$files2 = $files - 1;
if ($id > "0" && $id < $files2) {
$next_id = $id + 1;
$prev_id = $id - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prev</a>, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == "0") {
$next_id = "1";
echo 'prev, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == $files2) {
$prev_id = $files2 - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prv</a>, nxt';
}
}
specifier de lokatie van de grotere foto's en probeer ze op te roepen.
als je het via een db doet, kan je aan dit denken:
Code (php)
zo roep je hem aan:
Dit is heel ff snel iets, als je het via de db doet that is :P.
Zo niet kan je beter ff de script posten, dan weten we ook hoe je te werk gaat :)
Bedankt voor je reactie. Het script werkt niet met een db. Per map met foto's maak ik een php file waarin o.a. de naam van de map ($path) staat. Het hele script staat hieronder. Zoals al eerder gezegd, werkt de site via swithc / index.php?page=...
Hoop dat je (of iemand anders) mij verder kan helpen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
$_GET['i'] = 0;
// FOLDERSCAN
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path . "/" . $file) && $file != "." && $file != "..") {
$extension = explode(".", $file);
$extension_i = (count($extension) - 1);
$ext = $extension[$extension_i];
if ($ext == "jpg" || $ext == "jpeg" || $ext == "JPG" || $ext == "JPEG" || $ext == "png" || $ext == "PNG") {
$images[$files] = $file;
$files++;
}
}
}
sort($images);
//MAKE GALLERY
echo "<h1>$title</h1><a>($files foto's in deze gallerij)</a>\n";
echo "<div id='fotogallerij'>\n";
if (!$_GET["i"]) {
foreach ($images as $image) {
$source = $path . "/" . $image;
$tsource = $thumbpath . "/" . $image;
if (file_exists($source) && !file_exists($tsource)) {
$size = getimagesize($source);
$ratio = $size[0] / $size[1];
if ($ratio >= 1) {
$scale = $thumbnail_w / $size[0];
} else {
$scale = $thumbnail_h / $size[1];
}
if ($thumbnail_w >= $size[0] && $thumbnail_h >= $size[1]) {
$scale = 1;
}
$resize = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
switch ($size['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagejpeg($resize, $thumbpath . "/" . $image, $quality);
break;
case 'image/png':
$im = imagecreatefrompng($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagepng($resize, $thumbpath . "/" . $image, $quality);
break;
}
imagedestroy($im);
}
echo "<a href='" . $source . "'> <img src='" . $tsource . "' alt='' /></a>\n";
// echo'<a href="index.php?i='.$image.'"><img src="'.$tsource.'" alt=""></a>'."\n";
// !! bovenste code werkt, maar zonder navigatie; onderste code is wel correct ivm parse error, maar werkt verder niet. zie eerdere posts!!
}
}
echo "<br />";
echo "</div>";
echo "<br /><br />";
//LOOK IMAGES
$image_path = $path . "/" . $_GET["i"];
if ($_GET["i"] && file_exists($path . '/' . $_GET["i"])) {
echo '<img src="' . $path . '/' . $_GET["i"] . '" . ' / '>';
$id = array_search($_GET["i"], $images);
$files2 = $files - 1;
if ($id > "0" && $id < $files2) {
$next_id = $id + 1;
$prev_id = $id - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prev</a>, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == "0") {
$next_id = "1";
echo 'prev, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == $files2) {
$prev_id = $files2 - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prv</a>, nxt';
}
}
?>
$_GET['i'] = 0;
// FOLDERSCAN
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path . "/" . $file) && $file != "." && $file != "..") {
$extension = explode(".", $file);
$extension_i = (count($extension) - 1);
$ext = $extension[$extension_i];
if ($ext == "jpg" || $ext == "jpeg" || $ext == "JPG" || $ext == "JPEG" || $ext == "png" || $ext == "PNG") {
$images[$files] = $file;
$files++;
}
}
}
sort($images);
//MAKE GALLERY
echo "<h1>$title</h1><a>($files foto's in deze gallerij)</a>\n";
echo "<div id='fotogallerij'>\n";
if (!$_GET["i"]) {
foreach ($images as $image) {
$source = $path . "/" . $image;
$tsource = $thumbpath . "/" . $image;
if (file_exists($source) && !file_exists($tsource)) {
$size = getimagesize($source);
$ratio = $size[0] / $size[1];
if ($ratio >= 1) {
$scale = $thumbnail_w / $size[0];
} else {
$scale = $thumbnail_h / $size[1];
}
if ($thumbnail_w >= $size[0] && $thumbnail_h >= $size[1]) {
$scale = 1;
}
$resize = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
switch ($size['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagejpeg($resize, $thumbpath . "/" . $image, $quality);
break;
case 'image/png':
$im = imagecreatefrompng($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagepng($resize, $thumbpath . "/" . $image, $quality);
break;
}
imagedestroy($im);
}
echo "<a href='" . $source . "'> <img src='" . $tsource . "' alt='' /></a>\n";
// echo'<a href="index.php?i='.$image.'"><img src="'.$tsource.'" alt=""></a>'."\n";
// !! bovenste code werkt, maar zonder navigatie; onderste code is wel correct ivm parse error, maar werkt verder niet. zie eerdere posts!!
}
}
echo "<br />";
echo "</div>";
echo "<br /><br />";
//LOOK IMAGES
$image_path = $path . "/" . $_GET["i"];
if ($_GET["i"] && file_exists($path . '/' . $_GET["i"])) {
echo '<img src="' . $path . '/' . $_GET["i"] . '" . ' / '>';
$id = array_search($_GET["i"], $images);
$files2 = $files - 1;
if ($id > "0" && $id < $files2) {
$next_id = $id + 1;
$prev_id = $id - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prev</a>, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == "0") {
$next_id = "1";
echo 'prev, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == $files2) {
$prev_id = $files2 - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prv</a>, nxt';
}
}
?>
Niemand...? Kom op mensen.