martin-br
Goto Top

Dateiendung und Verzeichnisname aus Scriptausgabe entfernen

Hallo zusammen,

ich möchte gerne in einem bereits vorhanden Script das
Verzeichnis und die Dateiendung in der Ausgabe entfernen.
Zum Beispiel so

Handbuecher/Testhandbuch.pdf
in
Testhandbuch

Die Endung ist kein Problem für mich,
aber Endung & Verzeichnis zusammen schon,
da ich wohl beim Aufbau irgendwelche Fehler mache.
Ich weiß, dass es zu diesem Thema viel im Internet zu finden gibt,
aber leider nicht wie ich es auf mein
Script bezogen anwenden muss.

MFG Martin Breuer

 
<?php 
$files = glob('Handbuecher/*.pdf');  
echo '  


<div align="center">  
	<table border="1" width="270" cellspacing="0" cellpadding="0" height="28">  
		<tr>
			<td bgcolor="#FFFFFF" bordercolor="#FFFFFF" width="100%" align="center">  
			<font size="2" face="Arial">Dateiname</font></td>  
		</tr>
</table>
</div>

';  
foreach($files as $file)
{

echo '  
<div align="center">  
<table border="1" width="270" cellspacing="0" cellpadding="0" height="28">  

<tr>

<td bgcolor="#F7F7F7" bordercolor="#FFFFFF" width="77%" align="left">  
<font size="2" face="Arial"><a style="text-decoration:none" href="'.$file.'">&nbsp;'.$file.'</a></font></td>  

</tr>

</table>
</div>

';  
} 
?>

Content-ID: 288013

Url: https://administrator.de/contentid/288013

Ausgedruckt am: 25.11.2024 um 10:11 Uhr

122990
122990 10.11.2015, aktualisiert am 11.11.2015 um 00:03:41 Uhr
Goto Top
Moin.
Hiermit kommst du in deiner Schleife an den 'Basename' der Datei ohne Extension.
echo pathinfo($file,PATHINFO_FILENAME);

http://php.net/manual/de/function.pathinfo.php

Gruß grexit
zuffen
zuffen 10.11.2015 um 21:17:06 Uhr
Goto Top
einfach so:
in $file ist der dateiname,
weil nicht erkennlich ist, ob windows oder linux,
zuerst einen replace des $file von backslash zu slash ( \ zu / )
dann einen explode. ( $x = explode ( $file, "/" ))
es folgt:
$dateiname = array_pop ( $x );
jetzt ist in dateiname nur noch der dateiname ohne verzeichnis.
die extension geht so weg
$x = explode ( $dateiname , ":" )
$name = array_shift ( $x )
und damit es ins script passt
$file = $name
auf zeile 19 einfuegen


OT:
( dieser text wurde mit google translater uebersetzt und danke fuer den hinweis ( codetag ), kannte ich nicht,)
zuffen
zuffen 10.11.2015 um 21:18:43 Uhr
Goto Top
wie grexit meint: seine variante ist schoener
Martin-BR
Martin-BR 10.11.2015 um 21:53:48 Uhr
Goto Top
Sorry aber kannst du das nochmal genauer erklären ?
Ich bekomm jetzt zwar nicht mehr das Verzeichnis angezeigt aber immer noch die Endung.
Was mache ich falsch ?
zuffen
zuffen 10.11.2015 um 21:59:28 Uhr
Goto Top
wen meinst du?
Martin-BR
Martin-BR 10.11.2015 aktualisiert um 22:04:45 Uhr
Goto Top
Ich meinte eigendlich grexit
und dachte wenn ich unter seinem Beitrag auf kommentieren klicke,
dann sieht man dass ich ihn meine. Ist aber wohl nicht so.
zuffen
zuffen 10.11.2015 um 22:24:41 Uhr
Goto Top
ist auch nicht so wichtig.
aber jetzt gibt es mehrere moeglichkeiten, je nach gusto.

splitte die variable mit explode. ( explode ( ".", deinevari))
nimmt vom ergebnis den ersten eintrag.
122990
122990 11.11.2015 aktualisiert um 00:09:37 Uhr
Goto Top
Zitat von @Martin-BR:

Sorry aber kannst du das nochmal genauer erklären ?
Ich bekomm jetzt zwar nicht mehr das Verzeichnis angezeigt aber immer noch die Endung.
Was mache ich falsch ?
Sorry zurück, die Konstante war falsch... das kommt wenn man mit mehreren Sprachen hantiert. Ist aber bei PHP auch missverständlich denn in jeder anderen Sprache bedeutet "Basename" -> Dateiname ohne Suffix, aber nö PHP nennt es genau umgekehrt...
ist oben korrigiert.

Gruß grexit

p.s. ab und zu mal in die Doku schauen dann hättest du es auch selber rausgefunden face-wink