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-Key: 288013

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

Printed on: April 27, 2024 at 01:04 o'clock

Mitglied: 122990
122990 Nov 10, 2015 updated at 23:03:41 (UTC)
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
Member: zuffen
zuffen Nov 10, 2015 at 20:17:06 (UTC)
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,)
Member: zuffen
zuffen Nov 10, 2015 at 20:18:43 (UTC)
Goto Top
wie grexit meint: seine variante ist schoener
Member: Martin-BR
Martin-BR Nov 10, 2015 at 20:53:48 (UTC)
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 ?
Member: zuffen
zuffen Nov 10, 2015 at 20:59:28 (UTC)
Goto Top
wen meinst du?
Member: Martin-BR
Martin-BR Nov 10, 2015 updated at 21:04:45 (UTC)
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.
Member: zuffen
zuffen Nov 10, 2015 at 21:24:41 (UTC)
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.
Mitglied: 122990
122990 Nov 10, 2015 updated at 23:09:37 (UTC)
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