php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.03.2006, 14:42  
Benutzer
 
Registriert seit: 25.07.2005
Beiträge: 39
imported_kontur
Standard [done] dumm frage: ursprungsverzeichnis?

Hallo,

bin zwar kein absoluter Anfänger mehr, aber ich benutze php lediglich zum Einbinden von html-Teilen ect., bin also mit den Befehlen nicht grad so versiert.
Bin bisher nicht über einen solchen Befehl gestolpert und hab auch ich Manual/Suche nicht wirklich was gefunden, obwohl ich denke, dass es da sicher was gibt.

z.B.:
Eine Datei, sagen wir, toll.php, welche im Ursprungsverzeichnis meines Webservers liegt, soll von Dateien in unterschiedlicher Verzeichnistiefe aus aufgerufen werden.


Zitat:
'PHP_SELF'

Der Name des aktuell ausgeführten Skripts, relativ zum Wurzelverzeichnis des Servers. Zum Beispiel gibt $_SERVER['PHP_SELF'] in einem Skript mit der Adresse http://example.com/test.php/foo.bar den Namen /test.php/foo.bar zurück.
Gibt es einen Befehl , der mir dann den anderen Teil, also "http://example.com/", zurückgibt?


Hoffe ich hab mich verständlich mitteilen können und die Frage ist nicht allzu beschränkt...

Danke im Vorraus,
k.
imported_kontur ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.03.2006, 14:47  
Erfahrener Benutzer
 
Registriert seit: 25.08.2005
Beiträge: 250
PHP-Kenntnisse:
Fortgeschritten
FireFIghter
Standard

Joa den gibt es müsste mit $_SERVER['HTTP_HOST'] gehen!
FireFIghter ist offline  
Alt 22.03.2006, 14:47  
EoD
Neuer Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 24
EoD
EoD eine Nachricht über ICQ schicken
Standard

Hey ...

ich versteh deine Frage jetzt nicht ganz genau aber meinst du etwa dieses:

PHP-Code:
<?php

realpath
();

# oder

__FILE__

?>
Hmm naja falls es das nich war melde dich nochmal!

Gruss

EoD
__________________
Visit: Design & Coding
EoD ist offline  
Alt 22.03.2006, 15:12  
Benutzer
 
Registriert seit: 25.07.2005
Beiträge: 39
imported_kontur
Standard

Hab mir deine Beispiele im Manual angeschaut und denke, dass ist leider nicht was ich meine.

Mein konkreter Fall:

ich habe in -baseidr-/inc/htmlhead.php eine die Datei -basedir-/css/main.css

Nun wird die htmlhead.php aber in Dateien in den Verzeichnissen "-basedir-/", "-baseidr-/abc/" sowie "-basedir-/abc/def/" includiert. Die Pfadangabe zu der css-Datei ist dabei dann jeweils eine andere.
Nun würde ich an entsprechender Stelle in der htmlhead.php gerne was wie folgend schreiben:

<link rel="stylesheet" href="<?php TOLLER_CSS_BEFEHL_ZUM_BASEDIR; ?>main.css" />

Ich will an der Stelle aber nicht meine Url ala "http://www.meinetolleseite.de/" eingeben, um es sowohl auf meinem Rechner testen als auch online so zu haben.

Hoffe das ist nun klarer ausgedrückt

Wäre dankbar für Hilfe,
k.
imported_kontur ist offline  
Alt 22.03.2006, 15:21  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du meinst du hast das Problem relativer Pfadangaben innerhalb von
CSS-Dateien, zB background-image: url(), wenn du mit verschiedenen
Browsern diese CSS-Datei aus verschiedenen Verzeichnisebenen
includest?

Deshalb absolute Pfade benutzen (hast du ja schon erkannt).

PHP-Code:
<?php
dirname
(__FILE__);
?>
..sollte dir aber trotzdem helfen. Denn damit kannst du schonmal den Pfad
herausbekommen, in dem die CSS-Datei selbst liegt (egal wer sie
aufruft). Und von ihr kannst du relativ zu deiner Angabe wandern, denn
Absolut + Relative-Pfadangabe = Absolute-Pfadangabe :P

Ich habe noch eine "inc.constants.php" mit der ich mir die Pfade selbst
zusammenbastle:

PHP-Code:
<?php
/**
 * transforms a path by replacing backslashes with slashes and
 * adding a closing slash
 */
function validatePath($path)
{
    
$path trim($path);
    
$path str_replace('\\''/'$path);
    if (
$path preg_replace('/[^\/]+\/\.\./'''$path)) {
        
$path str_replace('//''/'$path);
    }
    
// is the last char a slash?
    
if (strrpos($path'/') != strlen($path) - 1) {
        
$path .= '/';
    }
    return 
$path;
}

// this file's position depending on the project root
define('R_SELF',        '/..'); // use an empty string if this file lies in the project root
/**
 * R = relative,    f.e. "myfiles/"
 * S = server path, f.e. "/home/www/myfiles""
 * W = web path,    f.e. "/myfiles/"
 */
define('R_WEBROOT',     '');
define('S_WEBROOT',     validatePath($_SERVER['DOCUMENT_ROOT']));
define('W_WEBROOT',     '/');

define('R_PROJECT',     str_replace(S_WEBROOT''validatePath(dirname(__FILE__).R_SELF)));
define('S_PROJECT',     S_WEBROOT.R_PROJECT);
define('W_PROJECT',     W_WEBROOT.R_PROJECT);

define('R_GLOBINC',     'includes/');
define('S_GLOBINC',     S_WEBROOT.'../'.R_GLOBINC);
define('W_GLOBINC',     '');

define('R_PROJINC',     R_GLOBINC);
define('S_PROJINC',     S_PROJECT.R_PROJINC);
define('W_PROJINC',     '');

define('R_MODULE',      'content/');
define('S_MODULE',      S_PROJECT.R_MODULES);
define('W_MODULE',      W_PROJECT.R_MODULES);

define('R_PEAR',        'pear/');
define('S_PEAR',        S_WEBROOT.'../php/'.R_PEAR);
define('W_PEAR',        W_WEBROOT.'../php/'.R_PEAR);

define('R_CSS',         'css/');
define('S_CSS',         S_PROJECT.R_CSS);
define('W_CSS',         W_PROJECT.R_CSS);

define('R_JAVASCRIPT',  'js/');
define('S_JAVASCRIPT',  S_PROJECT.R_JAVASCRIPT);
define('W_JAVASCRIPT',  W_PROJECT.R_JAVASCRIPT);

define('R_TPL',         'tpl/');
define('S_TPL',         S_PROJECT.R_TPL);
define('W_TPL',         W_PROJECT.R_TPL);

define('R_TPLC',        R_TPL.'tmp/');
define('S_TPLC',        S_PROJECT.R_TPLC);
define('W_TPLC',        W_PROJECT.R_TPLC);



define('MYSQL_DSN',     'mysql://***:***@localhost/***');
define('DEBUG_ON',      true);

if (
DEBUG_ON) {
    
error_reporting(E_ALL);

    require_once 
S_GLOBINC.'debug/func.debug.php';
    require_once 
S_GLOBINC.'debug/func.debug_print.php';
    require_once 
S_GLOBINC.'debug/func.debug_dump.php';
}


if (!
defined('PATH_SEPARATOR')) {
    if (
defined('DIRECTORY_SEPARATOR') && DIRECTORY_SEPARATOR == '\\')
        
define('PATH_SEPARATOR'';');
    else
        
define('PATH_SEPARATOR'':');
}

if (
function_exists('set_include_path') && function_exists('get_include_path')) {
    
set_include_path(get_include_path() .PATH_SEPARATOR .S_PEAR);
} else {
    
ini_set('include_path'ini_get('include_path') .PATH_SEPARATOR .S_PEAR);
}
?>
Dabei liegt die inc.constants.php im "includes"-Ordner des Projektordners.
Die Pfade sollten komplett variabel sein. Nur bei Schlund (Hoster)
schleicht sich ein seltsamer Fehler ein.

Die Konstanten S_* stehen für den absoluten Serverpfad, R_* für die
relativen und W_* für den absoluten Webpfad (jedoch ohne Domain).


Ansonsten einfach mal print_r($_SERVER), var_dump(__FILE__) ausprobieren.
Zergling-new ist offline  
Alt 22.03.2006, 18:09  
Benutzer
 
Registriert seit: 25.07.2005
Beiträge: 39
imported_kontur
Standard

Hey,

danke für Eure Antworten.

PHP-Code:
<?php
$_SERVER
['SERVER_NAME']
?>
funktioniert

k.
imported_kontur 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
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
Frage zu Typen und Performence notyyy PHP-Fortgeschrittene 13 14.11.2007 02:18
Smarty frage: switch($action) PHP Tipps 2007 5 30.12.2006 18:07
Frage zu einem mySQL/php/html Konstrukt &lt;Daniel&gt; PHP Tipps 2006 5 11.07.2006 16:07
Ein kleine Frage zum posten hier im Forum Kein Genie Off-Topic Diskussionen 3 20.03.2006 13:40
Frage zu Counter PHP Tipps 2006 1 17.02.2006 21:45
method post frage test022 PHP Tipps 2007 10 23.12.2005 13:02
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
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
[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
[Erledigt] fputs frage PHP Tipps 2004 2 16.07.2004 19:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
relative pfadangabe php ursprungsordner, php ursprungsverzeichnis, ursprungsverzeichnis php, php ursprungspfad einer datei, webpfad herausbekommen

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