Ik wil een stukje script inladen in een template zodra het pathname gelijk is aan /download

dit lukt prima als volgt:
<?php
if($_SERVER['REQUEST_URI'] == '/download')
{echo "hier het script";}
?>

Probleem is echter dat het bezochte path wordt aangeroepen middels variabele parameters.

/download?id=4
/download?produkt=6
etc.

Hoe kan ik dit oplossen?
Ik ben geen expert met RegEx dus hoop dat iemand mij hier mee kan helpen.

Alvast bedankt.
met ereg_replace controleren ;) / uit filtreren
Nee Jaron, geen [php]ereg[/php] of [php]ereg_replace[/php] of iets gebruiken ;-)

Gebruik dan [php]preg_match[/php] :)
@ Jaron,

In php.net staat dit over de betreffende functie:
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.

Dit gebruik ik dus liever niet, weet je een andere oplossing en zo ja ook hoe je het zou schrijven.

Bedankt.
@ Chris,

Zou dit dan werken?
<?php
if(preg_match("/download", $_SERVER['REQUEST_URI'])){
echo "scriptHere";
}
?>
@Patrick: Als je dat zou uitvoeren zou je een foutmelding krijgen over je regex.

Gebruik deze regex eens?


preg_match("~download~", $_SERVER['REQUEST_URI']);
Chris,

Ok ik heb het als volgt:
<?php
if(preg_match("~download~", $_SERVER['REQUEST_URI'])){
?>
echo "scriptHier";
<?php } ?>

Maar er wordt geen scriptHier ge-echoed.
Wat doe ik fout?
<?php
echo 'Debug: '.$_SERVER['REQUEST_URI'].'<br />';

if(preg_match("~download~", $_SERVER['REQUEST_URI'])){
echo 'woppa!';
}
else
{
echo 'nope';
}
?>

Uitkomsten:

Debug: /dump/test.php/downloa
nope



Debug: /dump/test.php/download
woppa!
Shit, ik zat in de verkeerde template te klooien, vandaar dat het niet werkte.
Excuus je voorbeeld werkte perfect..
:) Geen probleem, begon even aan mezelf te twijfelen ;-)
Als je nou nog even wat beter had gekeken in de manual, had je zien staan:
Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster.

Reageren