furystage
Goto Top

Verzeichnis auslesen und Link generieren - Php-Programmierung

Hallo zusammen,

ich habe ein kleines Problem, mit umlauten ä, ö und ü. Folgendes wurde realisiert.

Diese HTML & PHP Code, ließt ein Verzeichnis aus und erstellt aus den vorhanden Dateien einen brauchbaren Link:

<!DOCTYPE html>
<html>

<head>
    <title>Titel</title>

    <meta charset="ISO-8859-1">  
    <meta name="description" content="">  
    <meta name="author" content="">  
    <meta name="keywords" content="">  

</head>

<body>
<ul>
<?php
// Ordnername 
$ordner = "dienstplan"; //auch komplette Pfade möglich ($ordner = "download/files";)  

// Ordner auslesen und Array in Variable speichern
$alledateien = scandir($ordner); // Sortierung A-Z
// Sortierung Z-A mit scandir($ordner, 1)               				

// Schleife um Array "$alledateien" aus scandir Funktion auszugeben  
// Einzeldateien werden dabei in der Variabel $datei abgelegt
foreach ($alledateien as $datei) {
	
	// Zusammentragen der Dateiinfo
	$dateiinfo = pathinfo($ordner."/".$datei);   
	//Folgende Variablen stehen nach pathinfo zur Verfügung
	// $dateiinfo['filename'] =Dateiname ohne Dateiendung  *erst mit PHP 5.2  
	// $dateiinfo['dirname'] = Verzeichnisname  
	// $dateiinfo['extension'] = Dateityp -/endung  
	// $dateiinfo['basename'] = voller Dateiname mit Dateiendung  
	
	// Größe ermitteln zur Ausgabe
	$size = ceil(filesize($ordner."/".$datei)/1024);   
	//1024 = kb | 1048576 = MB | 1073741824 = GB
	
	// scandir liest alle Dateien im Ordner aus, zusätzlich noch "." , ".." als Ordner  
	// Nur echte Dateien anzeigen lassen und keine "Punkt" Ordner  
	// _notes ist eine Ergänzung für Dreamweaver Nutzer, denn DW legt zur besseren Synchronisation diese Datei in den Orndern ab
	if ($datei != "." && $datei != ".."  && $datei != "_notes") {   
	?>
    <li><a href="<?php echo $dateiinfo['dirname']."/".$dateiinfo['basename'];?>"><?php echo $dateiinfo['filename']; ?></a> (<?php echo $dateiinfo['extension']; ?> | <?php echo $size ; ?>kb)</li>  
<?php
	};
 };
?>     
</ul>
</body>
</html>


Nun mein Problem, wenn sich im Ordner Dateien befinden mit ä,ö und ü, dann passen die Links nicht mehr und der Pfade wird nicht geöffnet. wenn keine umlaute vorhanden sind, dann funktioniert die Generierung Einwand frei. Wie kann ich die Problematik lösen mit umlauten?

Vielen Dank an alle Helfer ;)

Content-Key: 273091

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

Printed on: April 25, 2024 at 09:04 o'clock

Member: kaiand1
kaiand1 May 28, 2015 at 08:04:56 (UTC)
Goto Top
Von ISO-8859-1 auf UTF-8 wechseln?!?
Member: FuryStage
FuryStage May 28, 2015 at 08:09:51 (UTC)
Goto Top
Das habe ich schon Probiert, hat leider auch kein Erfolg gebracht.
Mitglied: 114757
114757 May 28, 2015 at 08:13:58 (UTC)
Goto Top
Member: FuryStage
FuryStage May 28, 2015 at 08:41:42 (UTC)
Goto Top
Ich glaube, das Du mir die Lösung gegeben hast, allerdings bin ich gerade bissel überfordert, und weiß nicht wie ich dieses in den Quelltext einarbeiten soll. face-sad
Mitglied: 114757
114757 May 28, 2015 at 08:46:49 (UTC)
Goto Top
Na alle Variablen welche Sonderzeichen enthalten können mit der Funktion Kapseln so dass Sonderzeichen URL konform umgewandelt werden.
Member: FuryStage
FuryStage Jun 15, 2015 at 09:24:19 (UTC)
Goto Top
Hab nun schon einige Tests gemacht, wenn ich das rawurlencode aber einbau, zeigt er mir ständig nur eine leere Seite ein. Egal wo ich das einsetze face-confused
Member: Larmina
Larmina Jun 30, 2015 updated at 12:40:30 (UTC)
Goto Top
Hi Furystage,
da gibt es noch ein bis zwei Möglichkeiten.
Du könntest mit UTF8_encode (http://php.net/manual/de/function.utf8-encode.php) oder UTF8_decode (http://php.net/manual/de/function.utf8-decode.php) versuchen die Ausgabestrings richtig zu Codieren.
Ich werfe meistens einfach mal beide Funktionen in den Code und schau dann welche bessere Ausgaben provoziert ;)

(Die Codierung unserer Warenwirtschaftsdatenbank ist nämlich so ne Sache...)


Wenn selbst das nicht geht, probier mal IConv() (http://php.net/manual/de/book.iconv.php)

Liebe Grüße
Larmina