extensie
voor de website van mijn moeder heb ik dit stukje code nodig:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$foto="../../bloemenFotos/$latijn.jpg";
if (file_exists($foto)){
echo "<br><img src=\"../../bloemenFotos/$latijn.jpg\">";
}
?>
$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.
Alvast bedankt
Gewijzigd op 01/01/1970 01:00:00 door Hans Vereyken
strtolower ?
Oja, en weet niet waar die $latijn.jpg vandaan komt, maar vars. halen we buiten quotes. Dus:
in plaats van:
Ook in je locatieverwijzingen
Oja, en weet niet waar die $latijn.jpg vandaan komt, maar vars. halen we buiten quotes. Dus:
in plaats van:
Ook in je locatieverwijzingen
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto)){
echo "<br><img src=\"../../bloemenFotos/".$latijn.".jpg\">";
}
?>
$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?
Gewijzigd op 01/01/1970 01:00:00 door Hans Vereyken
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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\">";
}
?>
// 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\">";
}
?>
- 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?
ahm.... als je... bij uploaden images lowercase maakt..... dan kan je ze ook lower case uitlezen?
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...
700 doe je met ftp.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto))
{
...
}
else
{
$foto="../../bloemenFotos/".$latijn.".JPG";
if (file_exists($foto))
{
...
}
}
?>
$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.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
Hans schreef op 02.07.2009 09:01:
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?
- 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.
Emmanuel Delay schreef op 02.07.2009 11:43:
of anders iets als
Trouwens al eens naar de functie pathinfo gekeken?
Zeer handig voor het detecteren van extensies en zo.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto))
{
...
}
else
{
$foto="../../bloemenFotos/".$latijn.".JPG";
if (file_exists($foto))
{
...
}
}
?>
$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.
Waarom niet elseif:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto))
{
...
}
elseif (($foto="../../bloemenFotos/".$latijn.".JPG") && file_exists($foto))
{
...
}
else{
// Errormessage ofzo?
}
?>
$foto="../../bloemenFotos/".$latijn.".jpg";
if (file_exists($foto))
{
...
}
elseif (($foto="../../bloemenFotos/".$latijn.".JPG") && file_exists($foto))
{
...
}
else{
// Errormessage ofzo?
}
?>
Zoiets?
Of gaat dit ten strengste afgeraden worden ivm met variabele aanmaken in if?