Variable parsen
Rolf
- php
Hallo,
eine Variable kann folgende Werte annehmen:
<?php
$PT = array(
1=>'./',
2=>'./Berge/',
3=>'./Himmel/an0173.jpg',
4=>'./Wald/',
);
foreach($PT as $path) {
echo $nr.'. '.dirname($path)."\n";
}
?>
erzeugt:
1. .
2. .
3. ./Himmel
4. .
gebraucht wird jedoch:
1. .
2. ./Berge
3. ./Himmel
4. ./Wald
Dazu suche ich eine möglichst einfache Lösung.
mbG Rolf
Hallo!
eine Variable kann folgende Werte annehmen:
...
gebraucht wird jedoch:
- .
- ./Berge
- ./Himmel
- ./Wald
Warum verwendest du dann dirname?
Mach doch einfach:
<?php
$PT = array(
1=>'./',
2=>'./Berge/',
3=>'./Himmel/an0173.jpg',
4=>'./Wald/',
);
foreach($PT as $nr => $path) {
echo $nr.'. '.$path."\n";
}
?>
Grüße,
Warum verwendest du dann dirname?
etl wegen
3=>'./Himmel/an0173.jpg',
spätestens hier würde man dirname() brauchen^^
MFG
bleicher
äh blödsinn..
Seh jetzt was du wolltest.
So würds gehen, geht aber wahrscheinlich einfacher.
<?php
$PT = array(
1=>'./',
2=>'./Berge/',
3=>'./Himmel/an0173.jpg',
4=>'./Wald/',
);
foreach($PT as $nr => $path) {
$path = explode("/", $path );
array_pop($path);
$path = implode("/", $path)."/";
echo $nr.'. '.$path."<br />\n";
}
?>
Ich seh wieder den Wald vor lauter Bäumen nicht:
$path = substr($path, 0, strrpos($path, "/"));
Grüße,
foreach($PT as $path) {
echo $nr.'. '.dirname($path)."\n";
}
?>
hast du es ohne den 2en "/" am ende an den dirnamen im array versucht?
MFG
bleicher
Hi Rolf,
ich würde es so machen:
foreach($PT as $path) {
echo $nr.'. '.(substr ($path, 0, strpos ($path, '/', strpos($path, '/'))));
}
Ist allerdings ungetestet, vielleicht ist ne minimale Anpassung nötig.
Gruß
Franz
Hallo,
habe es zwischenzeitlich wie folgt gelöst:
<?php
function myDirName($path) {
return (filetype($path) == 'dir') ? $path : dirname($path).'/';
}
$PT = array(
1=>'./',
2=>'./Berge/',
3=>'./Himmel/IP0988.jpg',
4=>'./Wald/',
);
foreach($PT as $nr => $path) {
echo $nr.'. '.myDirName($path)."\n";
}
?>
Grund ist, dass man opendir() nicht auf Dateinamen anwenden kann.
Bislang bin ich davon ausgegangen, dass PHP intelligenter an die
Sache herangeht, als einfach das letzte Element zu entfernen.
mbG Rolf