Avatar billede sbay Nybegynder
11. oktober 2004 - 11:24 Der er 20 kommentarer og
1 løsning

Ændring af PHP script

Hejsa

Jeg kunne godt tænke mig at få ændret følgende script, så det viser en frem og tilbage knap i stedet for thumbnails. Er der en der kan omskrive det??

Se det eventuelt i funktion her: http://www.flyingfish.dk/index.php?page2=Billeder/Damp2003/gallary1.php


<!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>
<title>Fotoalbum</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body >
<?

// Her definere du hvilken mappe som den skal lede efter de andre mapper. S† hvis du har en mappe der hedder billeder og inde i den s† ligger du under mapper med de andre billeder som mc_bike.
// $pictures fungere s† p† denne m†de: <a href=$PHP_SELF?pictures=jern_og_metal>Jern og Metal</a> $PHP_SELF betyder den linker til filen selv.
// ? betyder entlig bare vi bruger php til at definere noget.
// pictures er s† = den mappe du v‘lger. S† hvis man klikker p† "Jern og Metal" linket s† g†r den ind under mappen "billeder" og leder efter en mappe der hedder "jern_og_metal". Finder den denne s† henter den billederne fra denne mappe.
$directory = "Billeder/Damp2003/Images"; // link til store pics
$directory_thumb = "Billeder/Damp2003/Thumbs"; // link til thumbs
echo "

<br>
<table  width=400 height=0 cellpadding=0 cellspacing=0 border=0 align=center>
<tr>
<td align=center>
<table width=400 border=0 cellspacing=0 cellpadding=0>
<tr>
<td width=30% valign=top>
<br>
";
if(!$picture) {
$a = 1;
if ($dir = opendir($directory)) { // Her definere vi $dir til at fungere som "†bner" af mappen
while ((($file = readdir($dir)) !== false) && $a <= 1)  { // Her g†r vi videre hvis vi kan †bne mappen
if (substr($file, -3) == 'jpg' || substr($file, -3) == 'JPG') { // Her v‘lger vi filer med *.jpg og *.JPG ›nsker du andre tilf›jer du bare || substr($file, -3) == 'GIF' som eksempel.
$a++;
echo "<a href='$directory/$file' target=_blank><img src='$directory/$file' border=0></a>";

} } }
} else { echo "<a href='$directory/$picture' target=_blank><img src='$directory/$picture' border=0></a>"; }
echo "
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>

<table width=0 border=0 cellspacing=0 cellpadding=0 align=center>
<tr>
<td>
<table width=0 border=0 cellspacing=0 cellpadding=0 align=left>
";

$width = 80; // Bredden p† thumbnailet
$height = 61; // H›jden p† thumbnailet
$max = 5; // Max antal billeder den m† vise i hver r‘kke
$antal = 0; // Her definere vi antal som 0 i starten... det er s† scriptet ligsom kan s‘ttes igang ;) Den t‘ller automatisk nede i selve scriptet, og bruges til at sikkre den ikke viser mere end max.

if ($dir = opendir($directory)) { // Her definere vi $dir til at fungere som "†bner" af mappen
while ((($file = readdir($dir)) !== false))  { // Her g†r vi videre hvis vi kan †bne mappen
if (substr($file, -3) == 'jpg' || substr($file, -3) == 'JPG') { // Her v‘lger vi filer med *.jpg og *.JPG ›nsker du andre tilf›jer du bare || substr($file, -3) == 'GIF' som eksempel.
$antal++; // Her ligger den 1 til $antal
if($antal <= $max) { // Hvis $antal er minde end $max s† laver vi endnu en billede i r‘kken.



echo "
<td valign=top>
<a href='../index.php?page2=Billeder/Damp2003/gallary1.php&picture=$file'><img src='$directory_thumb/$file' border=0 width=$width height=$height></a></td>
";   
}


if($antal == $max) { // Hvis antal s† er n†et op p† max s† skal vi starte p† en ny r‘kke s† vi starter med at slutte r‘kken af og s‘tte antal til 0 igen.
    echo "<tr><td colspan=$max></td></tr>";
    $antal = 0;
}
if($antal == 0) { echo "<tr>"; } // Da antal s† er 0 s† starter vi p† en ny r‘kke
}
}
}

echo "</table>";
?>
</td>
</tr>
</table>
</body>
</html>
Avatar billede sukos Juniormester
11. oktober 2004 - 12:23 #1
Altså, du vil ha' vist det store billede, et ad gangen, uden at der bruges thumbnails?
Avatar billede sbay Nybegynder
11. oktober 2004 - 13:51 #2
Ja, lige præcis.
Avatar billede sukos Juniormester
11. oktober 2004 - 15:17 #3
Det var fan's til besvær!
Ved ikke hvad jeg lige tænker på, men prøv at include denne fil:
Det eneste du skulle ha' brug for at ændre, er disse:

//dirpath ved visning af billede i browser
$webpath = "/arrays/";

// path, den fulde sti, til dir med billeder
$fullpath = $_SERVER["DOCUMENT_ROOT"]. $webpath;



<?php
//dirpath ved visning af billede i browser
$webpath = "/arrays/";

// path, den fulde sti, til dir med billeder
$fullpath = $_SERVER["DOCUMENT_ROOT"]. $webpath;


$path = opendir($fullpath);

$billeder = array();

while (false !== ($fil = readdir($path))){
    if (is_dir($fil) || false == @getimagesize($fullpath . $fil)) {
continue;
    }
$billeder[] = $fil;
}
closedir($path);

$antal = count($billeder);

// STARTER OUTPUT

echo"<center>\n";

if($antal < 1) {

echo"Ingen billeder at vise, desv&aelig;rre!!!";

}else{

function make_link($getvar, $tx, $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}
return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". htmlentities($tx) ."</a>";
}

function get_id($navn, $var="") {
global $billeder;
$key = array_search($navn, $billeder);
    if(empty($var)) {
    return @$billeder[$key-1];
    }else{
    return @$billeder[$key+1];
    }
}

$a = "";
$b = "";
$last = end($billeder);

if(isset($_GET["vis"])) {

    if(in_array($_GET["vis"], $billeder)) {
    $vis = $_GET["vis"];

        if(true == get_id($vis)) {
        $a = make_link("?vis=". get_id($vis), "forrige");
            if($antal > 3) {
            $$a = make_link("", "<<")." - ". $a;
            }else{
            $$a = $a;
            }
        }else{
        $$a = "&nbsp;";
        }

        if(true == get_id($vis, 1)) {
        $b = make_link("?vis=". get_id($vis, 1), "næste");
            if($antal > 3) {
            $$b = $b ." - ". make_link("?vis=". $last, ">>");
            }else{
            $$b = $b;
            }
        }else{
        $$b = "&nbsp;";
        }

    $size = getimagesize($fullpath . $vis);
    echo "<img src=\"". $webpath . $vis ."\" ". $size[3] .">";

    }else{
    $error = "Billedet findes desv&aelig;rre ikke!<br />\n<a href=\"". $_SERVER["PHP_SELF"] ."\">Klik her</a> for at se billederne";
    }

}else{
$vis = $billeder[0];
$$a = "&nbsp;";

if(true == get_id($vis, 1)) {
    $b = make_link("?vis=". get_id($vis, 1), "næste");
        if($antal > 3) {
        $$b = $b ." - ". make_link("?vis=". $last, ">>");
        }else{
        $$b = $b;
        }
}else{
$$b = "&nbsp;";
}

$size = getimagesize($fullpath . $vis);
echo"<img src=\"". $webpath . $vis ."\" ". $size[3] .">";
}

echo"<p>";

if(!isset($error)) {

echo"<table width=\"360\"><tr>\n";
echo"    <td width=\"100\">". $$a ."</td>\n";
echo"    <td align=\"center\">";
for($x=0; $x < $antal; $x++) {
if($billeder[$x] == $vis) {
echo $x+1;
    }
}
echo" af ". $antal ."</td>\n";
echo"    <td width=\"100\" align=\"right\">". $$b ."</td>\n";
echo"</tr></table><br>\n";

}else{
echo $error;
}

echo"</p>";

}

echo"</center>";

?>
Avatar billede sbay Nybegynder
11. oktober 2004 - 20:41 #4
kan simpelthen ikke få denne linie til at virke:

return "<a href="". $filename . $getvar ."" class="". $class ."">". htmlentities($tx) ."</a>";

Har sat første linie:

<?php
//dirpath ved visning af billede i browser
$webpath = "images";

// path, den fulde sti, til dir med billeder
$fullpath = $_SERVER["DOCUMENT_ROOT"]. $webpath;
echo "$fullpath";
Avatar billede sbay Nybegynder
11. oktober 2004 - 20:43 #5
Avatar billede sukos Juniormester
11. oktober 2004 - 20:49 #6
Du skal bruge / (skråstreger) omkring navnet på dir, og stien er fra roden af dit domæne, /

<?php
//dirpath ved visning af billede i browser
$webpath = "/images/";
Avatar billede sukos Juniormester
11. oktober 2004 - 20:51 #7
ehh, vil sige, at hvis der skal kikkes efter billeder fra roden af dit domæne, skal der kun stå en skråstreg.

<?php
//dirpath ved visning af billede i browser
$webpath = "/";
Avatar billede sbay Nybegynder
11. oktober 2004 - 21:06 #8
Virker stadig ikke :-( Har lagt tre billeder ud i roden, men får stadig samme fejl i linie 39 som før!

<?php
//dirpath ved visning af billede i browser
$webpath = "/";
Avatar billede sukos Juniormester
11. oktober 2004 - 21:13 #9
Prøv at kun loade flg. i din browser.

<?php
//dirpath ved visning af billede i browser
$webpath = "/Billeder/Damp2003/";

// path, den fulde sti, til dir med billeder
$fullpath = "/customers/flyingfish.dk/flyingfish.dk/httpd.www/". $webpath;


$path = opendir($fullpath);

$billeder = array();

while (false !== ($fil = readdir($path))){
    if (is_dir($fil) || false == @getimagesize($fullpath . $fil)) {
continue;
    }
$billeder[] = $fil;
}
closedir($path);

$antal = count($billeder);

// STARTER OUTPUT

echo"<center>\n";

if($antal < 1) {

echo"Ingen billeder at vise, desv&aelig;rre!!!";

}else{

function make_link($getvar, $tx, $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}
return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". htmlentities($tx) ."</a>";
}

function get_id($navn, $var="") {
global $billeder;
$key = array_search($navn, $billeder);
    if(empty($var)) {
    return @$billeder[$key-1];
    }else{
    return @$billeder[$key+1];
    }
}

$a = "";
$b = "";
$last = end($billeder);

if(isset($_GET["vis"])) {

    if(in_array($_GET["vis"], $billeder)) {
    $vis = $_GET["vis"];

        if(true == get_id($vis)) {
        $a = make_link("?vis=". get_id($vis), "forrige");
            if($antal > 3) {
            $$a = make_link("", "<<")." - ". $a;
            }else{
            $$a = $a;
            }
        }else{
        $$a = "&nbsp;";
        }

        if(true == get_id($vis, 1)) {
        $b = make_link("?vis=". get_id($vis, 1), "næste");
            if($antal > 3) {
            $$b = $b ." - ". make_link("?vis=". $last, ">>");
            }else{
            $$b = $b;
            }
        }else{
        $$b = "&nbsp;";
        }

    $size = getimagesize($fullpath . $vis);
    echo "<img src=\"". $webpath . $vis ."\" ". $size[3] .">";

    }else{
    $error = "Billedet findes desv&aelig;rre ikke!<br />\n<a href=\"". $_SERVER["PHP_SELF"] ."\">Klik her</a> for at se billederne";
    }

}else{
$vis = $billeder[0];
$$a = "&nbsp;";

if(true == get_id($vis, 1)) {
    $b = make_link("?vis=". get_id($vis, 1), "næste");
        if($antal > 3) {
        $$b = $b ." - ". make_link("?vis=". $last, ">>");
        }else{
        $$b = $b;
        }
}else{
$$b = "&nbsp;";
}

$size = getimagesize($fullpath . $vis);
echo"<img src=\"". $webpath . $vis ."\" ". $size[3] .">";
}

echo"<p>";

if(!isset($error)) {

echo"<table width=\"360\"><tr>\n";
echo"    <td width=\"100\">". $$a ."</td>\n";
echo"    <td align=\"center\">";
for($x=0; $x < $antal; $x++) {
if($billeder[$x] == $vis) {
echo $x+1;
    }
}
echo" af ". $antal ."</td>\n";
echo"    <td width=\"100\" align=\"right\">". $$b ."</td>\n";
echo"</tr></table><br>\n";

}else{
echo $error;
}

echo"</p>";

}

echo"</center>";

?>
Avatar billede sbay Nybegynder
11. oktober 2004 - 21:22 #10
http://www.flyingfish.dk/Billeder/Damp2003/gallary2.php

Pastede det den nye kode ind i en ny side - men får stadig fejl!
Avatar billede sukos Juniormester
11. oktober 2004 - 21:34 #11
hmm, måske noget "bøf" ved copy/paste ???
Har lige lagt en zip ud, som du kan prøve med:

http://exp.showsource.dk/549067/gallery.zip
Avatar billede sbay Nybegynder
11. oktober 2004 - 21:44 #12
Så ser den sådan her ud???? Men der er altså billeder i folderen!

http://www.flyingfish.dk/Billeder/Damp2003/gallery.php
Avatar billede sbay Nybegynder
11. oktober 2004 - 21:46 #13
ohhh  den sidste /  manglede.... Men nu er al koden synlig ?!?!?")#)¤#)!("¤
Avatar billede sukos Juniormester
11. oktober 2004 - 21:50 #14
Jahh, det virker jo fint nok! :O)

Denne:
show_source($_SERVER["SCRIPT_FILENAME"]);

viser koden, og kan godt slettes! :O)
Avatar billede sbay Nybegynder
11. oktober 2004 - 21:53 #15
ok - takker mange gange for det store arbejde :-) Send lige et svar så du kan få point!
Avatar billede sukos Juniormester
11. oktober 2004 - 21:57 #16
Ok! :O)
Avatar billede sbay Nybegynder
12. oktober 2004 - 12:56 #17
et lille tillægsspørgsmål: Jeg vil gerne have et stykke grafik i stedet for teksten næste, hvordan hulen gør jeg det?

$b = make_link("?$linkpath&vis=". get_id($vis, 1), "næste" <img src="http://www.flyingfish.dk/Graphics/Buttons/next.gif">);
Avatar billede sukos Juniormester
12. oktober 2004 - 13:44 #18
Hmm, kan gøres så'n:

function make_link($getvar, $tx, $img="", $filnavn="", $class="") {
if(empty($filnavn)) {
$filename = $_SERVER["PHP_SELF"];
}else{
$filename = $filnavn;
}

$text = htmlentities($tx);
if(!empty($img)) {
$text = "<img src=\"". $img ."\" border=\"0\" alt=\"". $text ."\">";
}

return "<a href=\"". $filename . $getvar ."\" class=\"". $class ."\">". $text ."</a>";
}


Og så bruger:
$b = make_link("?vis=". get_id($vis, 1), "næste", "/Graphics/Buttons/next.gif");

hvor "/images/left.jpg" er sti og filnavn.

Men make_link() kan jo også laves om til lige præcis dit brug.
F.eks. er det jo altid en god ide at angi str. i pixels.
Avatar billede sukos Juniormester
12. oktober 2004 - 13:45 #19
hov,
hvor "/Graphics/Buttons/next.gif" er sti og filnavn.
Avatar billede sukos Juniormester
12. oktober 2004 - 13:48 #20
function make_link($getvar, $tx, $img="") {

$text = htmlentities($tx);

if(!empty($img)) {
$text = "<img src=\"". $img ."\" border=\"0\" width=\"120\" height=\"32\" alt=\"". $text ."\">";
}

return "<a href=\"". $_SERVER["PHP_SELF"] . $getvar ."\">". $text ."</a>";
}


$a = make_link("?vis=". get_id($vis), "forrige", "/Graphics/Buttons/forrige.gif");

$b = make_link("?vis=". get_id($vis, 1), "næste", "/Graphics/Buttons/next.gif");
Avatar billede sbay Nybegynder
12. oktober 2004 - 15:03 #21
Stort! Jeg bukker og takker mange gange! :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester