PDA

Bekijk Volledige Versie : Toon bestandsnaam zonder .php



martin -
05/04/06, 13:00
Hoi allen.

Kan een php pagina de bestandsnaam zonder path en zonder .php tonen? Wat
voor script moet ik dan aanwakkeren?

*Voorbeeld:*
De bestandsnaam is ''http://www.example.com/verjaardagen/05-04.php''. Via
include komt dan <li>Naam</li> op de pagina van vandaag onder de jarigen.
Daar wil ik automatisch <li>Naam (05-04)</li> van maken.

Alvast bedankt.


Martin.

Erik Hensema
05/04/06, 13:40
On Wed, 5 Apr 2006 12:49:58 +0200, martin - (nomail@example.com) wrote:
> Kan een php pagina de bestandsnaam zonder path en zonder .php tonen? Wat
> voor script moet ik dan aanwakkeren?
>
> *Voorbeeld:*
> De bestandsnaam is ''http://www.example.com/verjaardagen/05-04.php''. Via
> include komt dan <li>Naam</li> op de pagina van vandaag onder de jarigen.
> Daar wil ik automatisch <li>Naam (05-04)</li> van maken.

Het is me nog niet helemaal duidelijk wat je precies zoekt. Wil
je gewoon dat een php script weet hoe hij zelf heet? Dat staat
geloof ik in $_SERVER['PHP_SELF'], sowieso ergens in $_SERVER.

Je kunt misschien handiger url rewriting gebruiken. Even
aangenomen dat je een apache server gebruikt: maak een .htaccess
met de volgende inhoud:

RewriteEngine On
RewriteRule ^verjaardagen/(\d\d)-(\d\d)\.php$ /verjaardag.php?dag=$1&maand=$2

En dan maak je gewoon een verjaardag.php in je docroot die dag en
maand als GET variabelen verwacht.

Het is dan overigens ook nergens meer voor nodig om .php in de
url op te nemen. Je kunt er alles van maken wat je maar wilt
(inclusief helemaal niks).
--
Erik Hensema (erik@hensema.net)
Please note that my From: field is spamtrapped.

martin -
05/04/06, 14:20
Hieronder volgt een reactie op dit bericht:
>> Kan een php pagina de bestandsnaam zonder path en zonder .php tonen?
>> Wat voor script moet ik dan aanwakkeren?

> Het is me nog niet helemaal duidelijk wat je precies zoekt. Wil
> je gewoon dat een php script weet hoe hij zelf heet? Dat staat
> geloof ik in $_SERVER['PHP_SELF'], sowieso ergens in $_SERVER.

Wat ik bedoel is het volgende (ik licht het even toe omdat het misschien
makkelijker kan dan jouw oplossing):

Je hebt de volgende pagina's:

http://www.example.com/jarig/03-04.php
http://www.example.com/jarig/04-04.php
http://www.example.com/jarig/05-04.php
http://www.example.com/jarig/06-04.php
http://www.example.com/jarig/07-04.php

Het script doet z'n werk als volgt:

**Jarigen**
include http://www.example.com/jarig/03-04.php
include http://www.example.com/jarig/04-04.php
include http://www.example.com/jarig/05-04.php
include http://www.example.com/jarig/06-04.php
include http://www.example.com/jarig/07-04.php


De inhoud van bijvoorbeeld ''/jarig/05-04.php'' is:
<li>Pietje</li>
<li>Klaasje</li>
<li>Jantje</li>
<li>Wilhelminaatje</li>

Ik wil dan dat bijvoorbeeld ''<li>Pietje</li>'' als ''<li>Pietje
(bestandsnaam)</li>'' wordt weergegeven, dus bijvoorbeeld:

<li>Pietje (05-04)</li>

Ik hoop eigenlijk dat daar iets heel simpels voor is.

Groetjes Martin.

Warden Dave
05/04/06, 14:20
"martin -" <nomail@example.com> wrote:

> Hoi allen.

Dag,

> De bestandsnaam is ''http://www.example.com/verjaardagen/05-04.php''.
> Via include komt dan <li>Naam</li> op de pagina van vandaag onder de
> jarigen. Daar wil ik automatisch <li>Naam (05-04)</li> van maken.

Zie http://nl2.php.net/manual/en/function.basename.php ('basename').
[Zie ook http://nl2.php.net/manual/en/function.pathinfo.php e.v.]

WD

Warden Dave
05/04/06, 14:20
"martin -" <nomail@example.com> wrote:

> Ik wil dan dat bijvoorbeeld ''<li>Pietje</li>'' als ''<li>Pietje
> (bestandsnaam)</li>'' wordt weergegeven, dus bijvoorbeeld:
>
> <li>Pietje (05-04)</li>

Dus iets simpels als:

echo "<li>Pietje (",
basename($_SERVER['PHP_SELF'], ".php"),
")</li>";

of:

$pathParts = pathinfo($_SERVER['PHP_SELF']);

echo "<li>Pietje (",
basename($_SERVER['PHP_SELF'], '.' . $pathParts['extension']),
")</li>";

etc.

WD

martin -
05/04/06, 14:20
Hieronder volgt een reactie op dit bericht:
> "martin -" <nomail@example.com> wrote:
>
>> Ik wil dan dat bijvoorbeeld ''<li>Pietje</li>'' als ''<li>Pietje
>> (bestandsnaam)</li>'' wordt weergegeven, dus bijvoorbeeld:
>>
>> <li>Pietje (05-04)</li>
>
> Dus iets simpels als:
>
> echo "<li>Pietje (",
> basename($_SERVER['PHP_SELF'], ".php"),
> ")</li>";

Precies!

echo "(", basename($_SERVER['PHP_SELF'], ".php"), ")";

is de oplossing, bedankt!


Martin.