preg_replace voor preg_match

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack .NET Developer voor zakelijke vergelijk

Dutch is mandatory for this position. Als Full Stack C#.NET Developer zorg jij ervoor dat het vergelijkingsplatform over de nieuwste functionaliteiten beschikt. Deze applicatie ondersteunt assurantiekantoren in het inzichtelijk maken en vergelijken van verschillende verzekeringsproducenten. Denk hierbij aan de meest actuele gegevens over premies en voorwaarden. Dit doen zij volledig onafhankelijk. Als Developer ben je bedreven in het samenvoegen van verschillende web services en databasen. Samen met jouw collega’s ben je verantwoordelijk voor het volledige ontwikkeltraject. Je schakelt makkelijk met verschillende afdelingen over bestaande en nieuw te ontwikkelen functionaliteiten. Naast het ontwikkelen van nieuwe functionaliteiten, zal je ook de bestaande

Bekijk vacature »

Jasper DS

Jasper DS

14/03/2013 11:00:45
Quote Anchor link
Hallo,

ik heb een string:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/register/activate/:email/:activation


die ik met preg_replace vul*:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$this->rgx = preg_replace('#:([a-z])+#','(?P<$1>[^/]+)',$path);


dat geeft de volgende output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
string '/register/activate/(?P<l>[^/]+)/(?P<n>[^/]+)' (length=44)


nu wil ik dat hij deze output geeft:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
string '/register/activate/(?P<email>[^/]+)/(?P<activation>[^/]+)' (length=44)


zodat ik hem in een pregmatch kan gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(!preg_match('#'.$this->rgx.'$#', $path, $matches))


en de matches alsvolgende kan ophalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
echo $matches['email'];
echo $matches['activation'];


*hier loopt het waarschijnlijk mis bij de $1. Ik heb heel de preg_replace docu doorgespit en ik weet niet wat ik daar moet zetten maar ik weet wel dat het zou moeten kunnen wat ik hier tracht te doen.
Gewijzigd op 14/03/2013 11:01:24 door Jasper DS
 
PHP hulp

PHP hulp

12/05/2021 03:45:16
 
Ivo Breeden

Ivo Breeden

15/03/2013 22:35:20
Quote Anchor link
Jasper, je moet de plus (+) een klein stukje verplaatsen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$path
='/register/activate/:email/:activation';
$result=preg_replace('#:([a-z]+)#','(?P<$1>[^/]+)', $path);
echo "$result\n";
?>


Resultaat:
/register/activate/(?P<email>[^/]+)/(?P<activation>[^/]+)
 
Jasper DS

Jasper DS

18/03/2013 15:04:31
Quote Anchor link
Bedankt, werkt perfect!
 



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.