voor de website van mijn moeder heb ik dit stukje code nodig:
<?php
$foto="../../bloemenFotos/$latijn.jpg";
if (file_exists($foto)){
echo "<br><img src=\"../../bloemenFotos/$latijn.jpg\">";
}
?>
Dit werkt goed, op voorwaarde dat de extensie van de foto .jpg is en niet .JPG, want in het tweede geval vindt hij de foto niet. Is hier een eenvoudige oplossing voor zodat hij .JPG bestanden wel vindt? Het probleem is dat ons nieuw fototoestel de foto's een extensie in hoofdletters zet en het vorige in kleine letters. Ik voel er persoonlijk niet veel voor om ze allemaal één voor één te veranderen.
Ja, klopt, beetje slordig van mij. Maar dat lost het probleem niet op. Dit heb ik nu: <?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto)){
echo "<br><img src=\"../../bloemenFotos/".$latijn.".jpg\">";
}
?>
Wat bedoel je nu met die strtolower? Ik zie niet hoe ik dit kan gebruiken. Of bedoel je dat ik een script moet maken dat alle extensie's automatisch naar kleine letters zet?
heel netjes is het niet en er bestaan vast betere manieren, maar wat je kan doen:
<?php
// haal alle bestanden uit de map flowerpower op
$files = glob('../../bloemenFotos/*');
// zet alle namen naar niet-hoofdlettertjes
$files = array_map('strtolower', $files);
// zet alleen de bestandsnamen neer
$files = array_map('basename', $files);
// naam van foto die we nodig hebben (met kleine letters)
$foto= strtolower($latijn . ".jpg");
// checken of de foto betaat in de array, zo ja, dan bestaat de foto..
if (in_array($foto, $files)) {
echo "<br><img src=\"../../bloemenFotos/".$latijn.".jpg\">";
}
?>
Als ik de volledige map uitlees ben ik natuurlijk veel flexibeler... Maar dit werkt niet omdat:
- de variabele $latijn bevat hoofdletters, als deze naar kleine letters worden gezet bv "Aster" en op het einde wordt dat "aster.jpg" dan geeft hij geen foto.
- hetzelfde geldt eigenlijk voor de extensie, zolang de bestandsnaam niet is aangepast naar een extensie met kleine letters mag ik deze niet zomaar veranderen in het script, het resulteert in het niet vinden van de foto.
Ik heb wel gemerkt dat zowel mijn systeem als dat van Terence perfect werkt op mijn eigen servertje (127.0.0.1), daar zijn die hoofdletters blijkbaar geen probleem. Dat doet mij vermoeden dat het ergens instelbaar is?
om mezelf niet te veel werk te bezorgen laat ik de foto's opladen via ftp, ik denk niet dat zoiets mogelijk is dan, maar uiteindelijk zal ik zoiets moeten verzinnen, want het ziet ernaar uit dat het anders behoorlijk ingewikkeld gaat worden. Bestaat er ergens een goed upload script waar je een hele hoop foto's tegelijk kan uploaden (of toch de opdracht geven voor een hele hoop tegelijk), het gaar namelijk over meer dan 700 foto's, allemaal één voor één uploaden...
of anders iets als
<?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto))
{
...
}
else
{
$foto="../../bloemenFotos/".$latijn.".JPG";
if (file_exists($foto))
{
...
}
}
?>
Trouwens al eens naar de functie pathinfo gekeken?
Zeer handig voor het detecteren van extensies en zo.
Als ik de volledige map uitlees ben ik natuurlijk veel flexibeler... Maar dit werkt niet omdat:
- de variabele $latijn bevat hoofdletters, als deze naar kleine letters worden gezet bv "Aster" en op het einde wordt dat "aster.jpg" dan geeft hij geen foto.
- hetzelfde geldt eigenlijk voor de extensie, zolang de bestandsnaam niet is aangepast naar een extensie met kleine letters mag ik deze niet zomaar veranderen in het script, het resulteert in het niet vinden van de foto.
Ik heb wel gemerkt dat zowel mijn systeem als dat van Terence perfect werkt op mijn eigen servertje (127.0.0.1), daar zijn die hoofdletters blijkbaar geen probleem. Dat doet mij vermoeden dat het ergens instelbaar is?
ik laat $latijn in zijn huidige waarde, maar stop de lowercase in een andere variable. Ik check met alleen maar lowercasewaardes, waardoor het nooit een probleem zal zijn wanneer er hoofdletters zijn.
?
Onbekende gebruiker
02-07-2009 16:45
Emmanuel Delay schreef op 02.07.2009 11:43
of anders iets als
<?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto))
{
...
}
else
{
$foto="../../bloemenFotos/".$latijn.".JPG";
if (file_exists($foto))
{
...
}
}
?>
Trouwens al eens naar de functie pathinfo gekeken?
Zeer handig voor het detecteren van extensies en zo.