php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.11.2004, 20:59  
Gast
 
Beiträge: n/a
Standard Frage zu dirname

Ich habe eine Frage zu dirname:

PHP-Code:
<?php
$path 
"/";
$file dirname($path);
print 
$file;
?>
Ausgegeben wird aber "\". Warum?

Liegt das an PHP oder an der Apache/PHP Konfiguration.

Umgebung: W2k/PHP5/Apache 1.3

Gruß Cartman
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.11.2004, 21:24  
dws
Benutzer
 
Registriert seit: 30.10.2004
Beiträge: 72
dws
Standard

was willst du mit dem Befehl machen?
ich kenn mich zwar auch nicht gut aus, aber ich glaube, das ist so, das man mit dirname() das Verzeichniss ausgeben kann
wenn bei deinem Beispiel
Code:
$path = "/srv/www/htdocs;
dann bekommst du /srv/www/

ich kann mir vorstellen, das du basename() brauchst.
Dieser Befehl lest aus der Pfadangabe den Dateinamen heraus.

bei
Code:
$path = "/srv/www/htdocs/index.php;
wäre das dann index.php
ich bin zwar kein guter Programmierer, aber ich glaube, das stimmt so
mfg
georg
dws ist offline  
Alt 13.11.2004, 23:03  
Gast
 
Beiträge: n/a
Standard

Sorry, hatte ganz vergessen zu schreiben wofür ich es brauche.

dirname ist in folgenden Befehl eingebunden:

PHP-Code:
header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."listing.php"); 
Das funktioniert auch, allerdings nicht wenn die Datei, in dem der Befehl steht, direkt in htdocs liegt. Dann wird der Slash in einen Backslash umgewandelt. Ebenso wenn ich dirname direkt einen Slash als Pfad übergebe (siehe erstes Posting).

Beispiel:

Aus /test.php wird \

Aus /verzeichnis/test.php wird /verzeichnis

Möglicherweise ist das auch eine Einstellungssache von PHP oder Apache.

Cartman
 
Alt 14.11.2004, 02:16  
Gast
 
Beiträge: n/a
Standard

Der Grund ist relativ simpel - die lösung auch, aber nervig.

Unter Windows wird die Verzeichnis-Struktur mit einem Backslash "\" getrennt und allen anderen Systemen mit einem Slash "/".

Du könntest einerseits eine Funktion schreiben die mittels php_uname das OS checkt und ggf. die Slashes durch Backslashes ersetzt oder du benutzt statt dirname() -> pathinfo()

pathinfo() liefert ein Array zurück.
Unter Array['dirname'] müsstest du dann auch unter Windows Slashes haben.

gruß
 
Alt 14.11.2004, 13:07  
Gast
 
Beiträge: n/a
Standard Ich bastel mir nen Link

Pathinfo hilft leider auch nicht. Ich habe das Problem jetzt so gelöst:

PHP-Code:
$curdir  dirname($_SERVER['PHP_SELF']);
$curdir  str_replace("\\""/"$curdir).'/';
$curdir  preg_replace('/(.*)\/\/$/i''$1/'$curdir);
$curdir  $_SERVER['HTTP_HOST'].$curdir;
$curdir .= 'datei.php';
header("Location: http://".$curdir); 
Das ist zwar etwas umständlich aber es funktioniert. Ein Schalter für dirname, der diese funktionalität gleich mitbringt wäre praktisch.

Cartman
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
DNS Problem / Frage b++ Server, Hosting und Workstations 3 12.10.2006 13:27
Frage zu einem mySQL/php/html Konstrukt &lt;Daniel&gt; PHP Tipps 2006 5 11.07.2006 16:07
Frage zu Counter PHP Tipps 2006 1 17.02.2006 21:45
[Erledigt] Einfache Frage! Datenbanken 2 21.09.2005 08:27
Frage zu Speicherreservierung in PHP FiSiHRO PHP Tipps 2005-2 4 13.09.2005 12:00
Frage zu grafiken JohnRambo PHP Tipps 2005-2 23 16.08.2005 20:57
[PDO] Frage zur Portabilität freq.9 PHP-Fortgeschrittene 2 29.07.2005 13:28
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php ($_server[\'php_self\'] dirname, php dirname backslash, php dirname ohne backslash

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.