php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.10.2005, 11:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

PHP ist eine serverseitige Scriptsprache, wird dir also nie den Pfad der "eigenen" (Usersicht) Festplatte liefern. Wenn es das doch tut, testest du noch lokal.

Du kannst auch Serverpfad nicht mit Web-Adresse vergleichen.

Meine inc.constants.php liegt im Root-Ordner des Projekts. Sie ist sicher nicht optimal, aber vielleicht kannst du dir ja ein paar Sachen rauskopieren, die interessant für dich sind:

PHP-Code:
<?php
function formatPath($path)
{
    
//  doppelte / durch ein / ersetzen
    
$path preg_replace("/\/{2,}/""/"$path);
    
$path preg_replace("/[\\\]{1,}/""/"$path);
    
// (doppelte) \ durch / ersetzen
    
if(strrpos($path"/") != (strlen($path) - 1)) {
        
$path .= "/";
    }
    return 
$path;
}

define("_DOCROOT",       formatPath($_SERVER["DOCUMENT_ROOT"]));
define("_PROJECT",       str_replace(_DOCROOT""formatPath(dirname(__FILE__))));
define("_PROJECTROOT",   _DOCROOT _PROJECT);
define("_WEB",           "/" _PROJECT);
define("_WWW",           "http://" $_SERVER["HTTP_HOST"] . "/" _PROJECT);
?>
Zergling-new ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.10.2005, 11:57  
Gast
 
Beiträge: n/a
Standard

das ist ja interessant.
wie benutzt du den später diese "define" (definierung?). werden das einfache variablen?!
 
Alt 31.10.2005, 11:58  
Gast
 
Beiträge: n/a
Standard

aha:
http://www.php.net/manual/de/function.define.php

ok, war mit der frage zu schnell
 
Alt 31.10.2005, 12:01  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Das sind Konstanten und damit überall im Folgescript verfügbar (Funktionen, Klassen).

z.B.
PHP-Code:
<?php
print '<link href="' _WEB _CSS 'default.css'" rel="stylesheet" type="text/css" media="all" />';
?>
_CSS hatte ich auch mit 'css/' definiert, aber rausgelassen.
Ist sehr komfortabel, da du das Projekt eigentlich beliebig verschieben kannst, da es die eigene Position im Ordner-Verzeichnis ja selbst ermittelt mit dirname(__FILE__) und im Verhältnis zum DOCUMENT_ROOT setzt (das der Server liefert).
Zergling-new ist offline  
Alt 31.10.2005, 12:06  
Gast
 
Beiträge: n/a
Standard

das ist echt ne tolle sache.
aber du musst schon die datei immer includen (in der die define() stehen) oder muss man die nur einmal starten?

ich habe gerade mal was richtig neues und gleichzeitig gutes gelernt. ein lob auf zergling
 
Alt 31.10.2005, 12:10  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Danke, kein Problem.

Aber die Datei musst du jedes mal includen, weshalb du wissen musst, in welcher Ordner-Ebene sich die Datei im Projekt selbst befindet, die diese "inc.constants.php" includen will!

Vieleicht interessiert dich das:
http://de2.php.net/manual/de/language.constants.php
http://de2.php.net/define
Zergling-new ist offline  
 


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
[Erledigt] [url]http://localhost:8080/[/url] anstatt [url]http://localhost/[/url] Server, Hosting und Workstations 3 04.08.2004 14:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
file_exists $_server[\'http_host\'], $_server[\'http_host\'] file_exists, $_server[\'http_host\'] == \'localhost.de:8080\', php file_exists \http://localhost\, http file_exists, file_exists url

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:39 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.