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-ID: 273091

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

Ausgedruckt am: 23.11.2024 um 18:11 Uhr

kaiand1
kaiand1 28.05.2015 um 10:04:56 Uhr
Goto Top
Von ISO-8859-1 auf UTF-8 wechseln?!?
FuryStage
FuryStage 28.05.2015 um 10:09:51 Uhr
Goto Top
Das habe ich schon Probiert, hat leider auch kein Erfolg gebracht.
114757
114757 28.05.2015 um 10:13:58 Uhr
Goto Top
FuryStage
FuryStage 28.05.2015 um 10:41:42 Uhr
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
114757
114757 28.05.2015 um 10:46:49 Uhr
Goto Top
Na alle Variablen welche Sonderzeichen enthalten können mit der Funktion Kapseln so dass Sonderzeichen URL konform umgewandelt werden.
FuryStage
FuryStage 15.06.2015 um 11:24:19 Uhr
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
Larmina
Larmina 30.06.2015 aktualisiert um 14:40:30 Uhr
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