RegEx check url with parameters

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick

patrick

15/09/2009 10:13:00
Quote Anchor link
Ik wil een stukje script inladen in een template zodra het pathname gelijk is aan /download

dit lukt prima als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?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.
 
PHP hulp

PHP hulp

25/12/2024 07:30:52
 
Jaron T

Jaron T

15/09/2009 10:17:00
Quote Anchor link
met ereg_replace controleren ;) / uit filtreren
 

15/09/2009 10:24:00
Quote Anchor link
Nee Jaron, geen ereg of ereg_replace of iets gebruiken ;-)

Gebruik dan preg_match :)
 
Patrick

patrick

15/09/2009 10:25:00
Quote Anchor link
@ 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.
 
Patrick

patrick

15/09/2009 10:36:00
Quote Anchor link
@ Chris,

Zou dit dan werken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(preg_match("/download", $_SERVER['REQUEST_URI'])){
echo "scriptHere";
}

 ?>
 

15/09/2009 11:01:00
Quote Anchor link
@Patrick: Als je dat zou uitvoeren zou je een foutmelding krijgen over je regex.

Gebruik deze regex eens?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
preg_match("~download~", $_SERVER['REQUEST_URI']);
 
Patrick

patrick

15/09/2009 11:07:00
Quote Anchor link
Chris,

Ok ik heb het als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(preg_match("~download~", $_SERVER['REQUEST_URI'])){
?>

echo "scriptHier";
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php } ?>


Maar er wordt geen scriptHier ge-echoed.
Wat doe ik fout?
 

15/09/2009 11:54:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
echo 'Debug: '.$_SERVER['REQUEST_URI'].'<br />';

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

else
{
echo 'nope';
}

?>


Uitkomsten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Debug: /dump/test.php/downloa
nope


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
Debug: /dump/test.php/download
woppa!
 
Patrick

patrick

15/09/2009 12:34:00
Quote Anchor link
Shit, ik zat in de verkeerde template te klooien, vandaar dat het niet werkte.
Excuus je voorbeeld werkte perfect..
 

15/09/2009 13:02:00
Quote Anchor link
:) Geen probleem, begon even aan mezelf te twijfelen ;-)
 
Mark PHP

Mark PHP

15/09/2009 15:02:00
Quote Anchor link
Als je nou nog even wat beter had gekeken in de manual, had je zien staan:
Quote:
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.