Mehrere Bild Endungen festlegen

Brian Folte

Angesehenes Mitglied
Guten morgen.

In meinem Script kann man momentan zwar jpg und gif Bilder hochladen jedoch werden diese nicht in der Galerie angezeigt, hier werden nur die jpg Bilder gezeigt.

Nun veruche ich das Problem so:
CODE $endung_tell = array("jpg,JPG,gif,GIF,JPEG);

so:

CODE $endung_tell = jpg,JPG,gif,GIF,JPEG;


so


CODE $endung_tell = array("jpg","JPG","gif","GIF","JPEG");


oder so:

CODE $endung_tell = array(".jpg",".JPG",".gif",".GIF",".JPEG");


Leider funktioniert keine Version davon und andere sind mir auch nicht bekannt.

LG Brian
 
<?php

$dir = './';
foreach( glob($dir.'*.{gif,jpg,jpeg,png}', GLOB_BRACE) as $filename ) {
echo '<a href="'.$filename.'"><img src="'.$filename.'"></a><br>';
}
?>

demo: http://theposterity.th.ohost.de/demo/php_b...listebilder.php

So in etwa ? naja kannst ja an deinen bedüfnissen anpassen
wink.gif
 
Naja von der Syntax her sind eh nur die letzten beiden richtig. Was Du aber brauchst, damit Dein Script läuft kann Dir anhand von einer Zeile wohl keiner sagen.

Schau Dir doch auch mal strtolower/strtoupper im PHP Manual an, könnte Dir ggf. auch helfen ein paar Abfragen / Kombinationen zu sparen.
 
Hier der komplette Code, ich möchte dieses Script gerne weiterverwenden deshalb wäre es super wenn jemand ein paar Tipps hat.

CODE //Hier angeben, wo die Vorschaubilder (Thumbs) liegen
//Beispiel: /upload
$thumb_dir = "../template/upload";

//Hier angeben, wo die Original Bilder liegen
//Beispiel: ./template/upload
$photo_dir = "../template/upload";

//Wie lautet die Endung der Bilder (Auf Groß- und Kleinschreibung wird geachtet!!!)
//Beispiel: gif oder jpg
$endung_tell ="jpg$id";
?>

<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Fotogalerie</title>

<style type="text/css">
<!--

.tooltiptitle{COLOR: #FFFFFF; TEXT-DECORATION: none; CURSOR: Default; font-family: arial; font-weight: bold; font-size: 8pt}
.tooltipcontent{COLOR: #000000; TEXT-DECORATION: none; CURSOR: Default; font-family: arial; font-size: 8pt}

#ToolTip{position:absolute; width: 100px; top: 0px; left: 0px; z-index:4; visibility:hidden;}

-->
</style>
<script language = "javascript">
<!--
ContentInfo = "";
topColor = "#808080"
subColor = "#C0C0C0"
var mouse_X;
var mouse_Y;
var tip_active = 0;

function update_tip_pos(){

document.getElementById('ToolTip').style.left = mouse_X + 20;
document.getElementById('ToolTip').style.top = mouse_Y;
}
var ie = document.all?true:false;
if (!ie) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;

function getMouseXY(e) {
if (ie) { // grab the x-y pos.s if browser is IE
mouse_X = event.clientX + document.body.scrollLeft;
mouse_Y = event.clientY + document.body.scrollTop;
}
else { // grab the x-y pos.s if browser is NS
mouse_X = e.pageX;
mouse_Y = e.pageY;
}
if (mouse_X < 0){mouse_X = 0;}
if (mouse_Y < 0){mouse_Y = 0;}

if(tip_active){update_tip_pos();}
}
function EnterContent(TTitle, TContent){

ContentInfo = '<table border="0" width="100" cellspacing="0" cellpadding="0">'+
'<tr><td width="100%" bgcolor="#000000">'+

'<table border="0" width="100%" cellspacing="1" cellpadding="0">'+
'<tr><td width="100%" bgcolor='+topColor+'>'+

'<table border="0" width="90%" cellspacing="0" cellpadding="0" align="center">'+
'<tr><td width="100%">'+

'<font class="tooltiptitle"> '+TTitle+'</font>'+

'</td></tr>'+
'</table>'+

'</td></tr>'+

'<tr><td width="100%" bgcolor='+subColor+'>'+

'<table border="0" width="90%" cellpadding="0" cellspacing="1" align="center">'+

'<tr><td width="100%">'+

'<font class="tooltipcontent">'+TContent+'</font>'+

'</td></tr>'+
'</table>'+

'</td></tr>'+
'</table>'+

'</td></tr>'+
'</table>';

}
function tip_it(which, TTitle, TContent){
if(which){

update_tip_pos();

tip_active = 1;

document.getElementById('ToolTip').style.visibility = "visible";
EnterContent(TTitle, TContent);

document.getElementById('ToolTip').innerHTML = ContentInfo;

}else{

tip_active = 0;

document.getElementById('ToolTip').style.visibility = "hidden";
}
}
//-->
</script>
</head>
<body>
<div id="ToolTip"></div>
<div align="center">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><table border="0" width=500><?php
$verz=opendir ($thumb_dir);
while ($file = readdir ($verz)) {

if($file != "." && $file != "..")
if($file) {
$endung = explode(".", $file);
if($endung[1] != $endung_tell) { } else {
$count = $count+1;
$size=getimagesize("$photo_dir/$file");
$hoehe = $size[1];
$breite = $size[0];
$neueBreite=150;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
$filtype = $size[2];
$endung = explode(".", $file);
?>

<?
if($count == "5") { echo '<tr>'; }
else { } ?>


<td valign="top"><table id="table1" width="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="13">
<img src="../template/img/content_01.gif" width="13" height="11" alt=""></td>
<td background="../template/img/content_02.gif">
</td>
<td width="11">
<img src="../template/img/content_03.gif" width="11" height="11" alt=""></td>
</tr>
<tr>
<td background="../template/img/content_04.gif" width="13">
 </td>
<td valign="top"><? echo ''.$file.''; ?>

<a href="#" onMouseover="tip_it(1,'<? echo $file; ?>','<? echo $breite; ?>x<? echo $hoehe; ?> Pixel<BR>Dateityp: <? echo $endung[1]; ?>');" onMouseout="tip_it(0, '', '')" onMouseout="tip_it(0, '', '')" onclick="Fenster1=window.open('<? echo ''.$photo_dir.'/'.$file.''; ?>','','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=<? echo $breite; ?>,height=<? echo $hoehe; ?>'); return false;"><? echo "<IMG border=0 src='$thumb_dir/".$file."' width=100 height=66></a>"; ?><br>
</td>
<td background="../template/img/content_06.gif" width="11">
<p>
</td>
</tr>
<tr>
<td width="13">
<img src="../template/img/content_07.gif" width="13" height="29" alt=""></td>
<td background="../template/img/content_08.gif">
 </td>
<td width="11">
<img src="../template/img/content_09.gif" width="11" height="29" alt=""></td>
</tr>
</table></td>
<?
if($count == "4") { echo '</tr>'; $count = 0; }
else { } ?>


<?
} }
}
closedir($verz);
?> </table></td>
</tr>
</table>
</div>

 
CODE if($endung[1] != $endung_tell) { } else {


Das Script kann nicht mit mehreren Endungen umgehen.

Mit in_array kannst Du die Zeile umschreiben, dann kannst Du ganz oben, wo $endung_tell definiert wird, Dein Array aus dem Vorpost reinschreiben.
 
Hallo Yosh

Ich bekomme folgene Fehlermeldung:
Warning: Wrong parameter count for in_array() in /srv/www/htdocs/web10/html/rechnungen/usersaldo2.php on line 127


wenn ich es so eintrage:

CODE $endung_tell ="jpg";
if (in_array("jpg","JPG","gif","GIF","JPEG"));


Habe ich mal wieder was falsch verstanden oder vergessen?

Über deine Hilfe bin ich sehr dankbar.

LG Brian
 
Yip, und zwar

bool in_array ( mixed $needle, array $haystack [, bool $strict] )

bedeutet, dass Du mindestens 2 Parameter angeben musst
wink.gif


$needle ist das, was Du suchst, also in Deinem Fall $endung[1]
$haystack ist Dein Array array("jpg","JPG","gif","GIF","JPEG");

Ansonsten bitte nochmal mit der grundsätzlichen Syntax von PHP beschäftigen ...
 
Also das hört sich leichter an als es ist jedenfalls für mich
unsure.gif


Irgendwie bekomme ich das nicht hin.

LG Brian
 
Dann vielleicht kein PHP programmieren
wink.gif


$endung_tell ="jpg";

ersetzen durch

$endung_tell =array("jpg","gif","jpeg");

und

if($endung[1] != $endung_tell) { } else {

ersetzen durch

if(in_array(strtolower($endung[1]), $endung_tell)) {

setzt allerdings voraus, dass $endung_tell sonst nirgends verwendet wird, weil dann kommt es zu Problemen wenn es jetzt auf einmal ein Array ist und vorher nur ein String war.


Naja, ich mein mit grundsätzlicher PHP Syntax, wann welche Klammern gesetzt werden müssen, Datentypen, Operatoren und wie das PHP Manual aufgebaut ist. Ich denke, wenn Du Dir die Teile nochmal anschaust, ist Dir sicherlich gut geholfen.

Selbst wenn Dein Script im Endeffekt irgendwann mal laufen sollte, ist noch lange nicht sichergestellt, dass es sicher ist, dass Du gescheit Anpassungen vornehmen oder Fehler beheben kannst wenn Du den Quelltext selber nicht verstehst.

Pass gut auf damit, solche Scripte ins Netz zu stellen, wenn es mal jemand böse meinen sollte, dann bist Du ganz schnell um ein paar Trojaner reicher und Root-Zugänge ärmer. Und das wünsche ich wirklich niemanden der versucht im Web Fuß zu fassen.


Also: Manual wühlen, nicht aufgeben und immer weiter probieren, PHP ist nicht schwer!
 
Ich bekomme dennoch die Meldung:
Warning: Wrong parameter count for in_array() in /srv/www/htdocs/web10/html/rechnungen/usersaldo2.php on line 127

In Zeile 127 steht nur ?>

Über google konnte ich die Meldung mir nicht übersetzen lassen.
Ich habe nur die beiden Sachen ausgetauscht wie du es geschrieben hast.

PHP lernen wird nun echt Zeit, ich lese mich ja nun schon langsam ein nur das Script raubt mir alle nerven.

LG Brian
 
Yosh herzlichen Dank für deine Hilfe, es hat wunderbar funktioniert ich mußte lediglich ein ; entfernen und schon lief an.

Danke nochmal.

LG Brian
 
Zurück
Oben