Stránka 1 z 1

[php] název souboru

Odeslat příspěvekNapsal: 28. 3. 2008 17:47
od Thomas123
Čau lidi, opět se ozývám.

Kód: Vybrat vše
<? $nazev = funkce(""); ?>


Nevím, co mám doplnit místo toho funkce. Potřebuji udělat, aby se mi do proměné $nazev dostal název souboru bez přípony. Trochu nesrozumitelné, ale ještě dám příklad.

Ve souboru test.php bude určitý obsah. Potřebuji aby se do proměné $nazev dostalo slovo test. Toto bych si pak vložil tam, kam potřebuji. Víte někdo jak na to?

Odeslat příspěvekNapsal: 28. 3. 2008 18:04
od b.4.4.L

Odeslat příspěvekNapsal: 28. 3. 2008 18:23
od Thomas123
Pokud jsem to pochopil správně, tak by to mělo být nějak takhle?

Kód: Vybrat vše
<?php
$nazev = pathinfo('test.php');

echo $path_parts['filename'], "\n"; ?>


Ovšem toto mi moc nepomůže. Pomohlo by mi to, kdybych tam nemusel zadávat to test.php, aby to zkrátka vzalo ten soubor, ze kterého se to "spouští". Jde to nějak upravit?

Odeslat příspěvekNapsal: 28. 3. 2008 19:03
od aacid
skus jednu z tychto premennych:
Kód: Vybrat vše
$_SERVER['SCRIPT_FILENAME']
$_SERVER['SCRIPT_NAME']
$_SERVER['PHP_SELF']

Odeslat příspěvekNapsal: 28. 3. 2008 19:06
od b.4.4.L
Jak psal acid, ale jelikož jsem se s tím psal tak už to sem vložím :evil:
Kód: Vybrat vše
$soubor=$_SERVER['SCRIPT_NAME'];
$JmenoSouboru=pathinfo($soubor, PATHINFO_FILENAME);
echo $JmenoSouboru;

Odeslat příspěvekNapsal: 28. 3. 2008 20:47
od Thomas123
to b.4.4.L: Zkoušel jsem ten kód a vyhazuje mi to chybu.

Notice: Use of undefined constant PATHINFO_FILENAME - assumed 'PATHINFO_FILENAME' in c:\php\test.php on line 1

Warning: pathinfo() expects parameter 2 to be long, string given in c:\php\test.php on line 1


Pochopil jsem z toho, že asi neexistuje PATHINFO_FILENAME, tak jak je zapsáno a že parametr 2 u pathinfo () je dlouhý. Někde je myslím nějaká kosmetická vada. Je chyba u mne nebo v kódu?

Odeslat příspěvekNapsal: 28. 3. 2008 21:01
od b.4.4.L
Mě to doma i na freehostingu funguje. A v dokumentaci píšou, že je to použitelný od verze PHP 5.2.0. Tak je možný že máš doma starší.
Tak to udělej jak jsi psal prvně.
Kód: Vybrat vše
$nazev = pathinfo($_SERVER['SCRIPT_NAME']);
echo $nazev['filename']."\n";

Odeslat příspěvekNapsal: 28. 3. 2008 21:19
od Morfeus211
bože, neviem čo riešite:

Kód: Vybrat vše
substr(substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '.php')), strrpos($_SERVER['PHP_SELF'], '/') + 1);


(Apache/2.2.4 (Win32) DAV/2 mod_ssl/2.2.4 OpenSSL/0.9.8d mod_autoindex_color PHP/5.2.1)

Odeslat příspěvekNapsal: 28. 3. 2008 21:23
od aacid
divne, ani mne to nejde, dokonca ani $nazev['filename'] nesiel, ale $nazev['basename'] ide, a asi to aj bude vyhovovat viac, pretoze filename da iba nazov bez pripony...

Morf: aj tak sa da, ale je to dost krkolomne, takto to je o dost elegantnejsie :)

Odeslat příspěvekNapsal: 28. 3. 2008 21:34
od Morfeus211
aacid: vnorený substr vysekne koncovku .php, vonkajší odsekne cestu. Trochu je ale radšej by som toto použil

Odeslat příspěvekNapsal: 28. 3. 2008 21:46
od Thomas123
Už vím, kde mám asi problém. Používám EasyPHP 1.8 - PHP 4.3.

Teď jsem to total zdrbal, tak se na to mrknu asi až zítra.

Odeslat příspěvekNapsal: 28. 3. 2008 22:10
od b.4.4.L
Morfeus211: Vím že to není tenhle případ ale co když se nebude jedna o php soubor. Radši vždy použiji obecnější možnost.
Ale jde to taky no. :)

aacid: Však on chtěl jméno souboru bez koncovky.

Odeslat příspěvekNapsal: 28. 3. 2008 22:21
od Thomas123
Mno, už jsem to dal nějak dohromady, uvidím, jak dlouho mi EasyPHP pojede.

Ano, b.4.4.L má pravdu, já chtěl název souboru bez koncovky. Zkoušel jsem to od Morfeuse221 a celkem dobrý, ale asi to bude složitější. Já v index.php includuji např. test.php. V test.php chci zjistit ten název, ale logicky se mi zobrazí název index. Jde nějak docílit, že se mi po includnutí test.php zobrazí název test nebo budu mít vždy hodnotu index?

Odeslat příspěvekNapsal: 28. 3. 2008 23:06
od Morfeus211
čo sa týka includovania tak ma jedine napadá, že v index.php definovat pole $php_subory a premennú $php_subory_pocet. v každom includovanom súbore spustiť toto:
Kód: Vybrat vše
$php_subory_pocet++;
$php_subory[$php_subory_pocet] = 'includovany php subor.php';
Pokiaľ by si includoval nejako dynamicky napr z $_GET tak by to bola bezpečnostná diera (bolo by možno includovať hocičo).

iná možnosť je nahádzať názvy súborov a cesty do databázy a len SELECTom načítavať a nič nezapisovať

btw. možno je na to nejaká severovská premenná alebo niečo také.

Re: [php] název souboru

Odeslat příspěvekNapsal: 24. 1. 2009 12:41
od Darkweaver
<?php
$cesta = "/www/zkouska/zobrazit/test.php"; // nebo použij __FILE__
$nazev = basename($cesta, ".php");

echo $nazev;
?>