"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP, Filenamen herauslesen

Facetious 11.02.2004 - 15:21 495 7
Posts

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
hi leute!

schon wieder ein php problem :)

ich muss dynamisch den filenamen der gerade geöffneten seite herauslesen und diese dann in eine db schreiben.

gibts da eine funktion? :confused:

tia Facetious
Bearbeitet von Facetious am 11.02.2004, 18:26

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
$_SERVER['SCRIPT_FILENAME'] , wird von Apache gesetzt.

Schau dir den Output von phpinfo() , dann siehst du was es noch alles gibt.

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
passt danke!

funktioniert tadellos!

edit:

also .. mit der funktion $_SERVER['SCRIPT_NAME'] bekomm ich jetzt aber die ordner auch dazu also wenn das file zb "bier" heisst steht dann dort:

/webshop/shop/artikel/bier.php

ich bin kein experte, aber kann man das nicht irgendwie "wegschneiden"?
tia
Bearbeitet von Facetious am 11.02.2004, 16:18

Smoldi

rape diem
Avatar
Registered: Oct 2000
Location: Wien
Posts: 1371
du könntest mit explode den string in ein array exploden und den letzten wert hernehmen (achtung: russische lösung ;))...
alternativ gehts sicher mit preg_replace()

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25423
ich wollts vorher posten.. hab mir aber dann gedacht es wäre unnötig :) :p

willst du den relativen pfad zum document root oder wirklich nur filename?

filename wäre:
Code: PHP
$szInclude = $_SERVER['SCRIPT_NAME'];

$szRippedInc = strrchr($szInclude,"/");
$szRippedInc = $szRippedInc == "" ? $szInclude : substr
($szRippedInc,1);

allerdings bin ich mir nicht sicher ob du wirklich SCRIPT_NAME willst. wenn du wirklich immer den filenamen der augenblicklichen datei haben willst dann benötigst du __FILE__

ein beispiel:

test.php
Code: PHP
<?php include("inc.php"); ?>
inc.php
Code: PHP
<?php echo "Filename: ".$_SERVER['SCRIPT_FILENAME']."<br>File:".__FILE__; ?>

wenn du jetzt test.php im browser ausführst dann wirst du sehen, dass SCRIPT_FILENAME test.php ist und nicht inc.php.

hth
mat

Rektal

Here to stay
Registered: Dec 2002
Location: Inside
Posts: 4452
Um nur den Filename zu bekommen bei einer Pfadangabe, verwende basename:
Code: PHP
$filename = basename($_SERVER['SCRIPT_FILENAME']);

orpheus

in a nutshell
Avatar
Registered: Mar 2002
Location: Klagenfurt
Posts: 533
Code: PHP
<?php
$path = "/home/httpd/html/index.php";
$file = basename ($path);        // $file is set to "index.php"
$file = basename ($path,".php"); // $file is set to "index"
?>

Facetious

Addicted
Avatar
Registered: Oct 2003
Location: Wien
Posts: 406
thx 4 help!

das mit basename funktioniert perfekt

[x]SOLVED

nochmal danke

Facetious
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz