logo
05.09.2019 09:27
1
Potřebuji udělat regulární výraz na obsah řetězců v URL

DOMENA.cz | Registrace domén, web zdarma, e-mailové schránky

Potřebuji získat info jestli je v URL
https://subdomena.domena.cz/potvrzeni/ a zároveň cad=1


https://subdomena.domena.cz/potvrzeni/ = je vždy na začátku
cad=1 = nemusí být vždy na konci

Díky

Co se právě děje na Webtrhu?

05.09.2019 09:50
2
Dej ukazku tveho vyrazu at ho pripadne muzeme poupravit.
05.09.2019 09:53
3
s regulárním výrazem jsem nikdy nepracoval jen co jsem načetl tzn jsem úplně mimo...
05.09.2019 10:15
4
kasli na regex a radsej si naparsuj url a vytiahni query argumenty. neviem v akom jazyku robis, takze si najdi prislusnu funkciu.
05.09.2019 10:31
5
A pro jaký jazyk/prostředí to chceš? Oni nejsou všude stejné :).

Pokud chceš přes httaccess takové url odchytit, může to vypadat takhle:

Kód:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(?:.*&)*(cad=1)(?:&.*?)*$ [NC]
RewriteRule ^(.*?)$ /potvrzeni/?%1 [L,R=301]

# presmeruje url https://subdomena.domena.cz/potvrzeni?test=33&cad=1&test2=1
# na url https://subdomena.domena.cz/potvrzeni/?cad=1
# tj. vytahne pouze cad=1 parameter a zbytek zahodi, pokud je
Pokud bys to chtěl pro php, již to bude trochu složitější:

PHP kód:
$regex '/https?::\/\/subdomena\.domena\.cz\/potvrzeni\/?\?(?:.*&)*(cad=1)(?:&.*?)*/mi';
$domeny 'https://subdomena.domena.cz/potvrzeni/
https://subdomena.domena.cz/potvrzeni/?cad=1
https://subdomena.domena.cz/potvrzeni?test=33&cad=1
https://subdomena.domena.cz/potvrzeni/?test=33&cad=1&sdfa=cad=1'
;

preg_match_all($regex$domeny$matchesPREG_SET_ORDER0);

var_dump($matches); 
Udělal jsem si vzorek několika možných variant, vyzkoušej si to a uvidíš, kterou a jak to chytne. Kód je psaný z ruky, netestoval jsem ho.

Je ale otázka co s tím chceš pak dál dělat...
05.09.2019 14:06
6
Potřebujito zadat do filtru k google analytics...

---------- Příspěvek doplněn 05.09.2019 v 16:12 ----------

S php nedelam, ale když to zkusím porovnat tak to nefunguje, možná to špatně porovnávám... Nebudu to použivat jako kod, ale vkládám to do regulárního vzorce pro filtry v GA...

Kód:
$regex = '/https?::\/\/subdomena\.domena\.cz\/potvrzeni\/?\?(?:.*&)*(cad=1)(?:&.*?)*/mi';
$domeny = 'https://subdomena.domena.cz/potvrzeni/';


if($regex == $domeny)
{
        echo "ANO";
}
else {
        echo "ne";
 }
06.09.2019 14:40
7
ten tvůj php kód je samozřejmě špatně (podívej se na můj příklad, pokud to nenajde, bude pole $matches prázdné...), ale pokud to nepotřebuješ v php, nemá smysl to řešit dál.

Do google analytics potřebuješ vložit tohle:

Kód:
^https?::\/\/subdomena\.domena\.cz\/potvrzeni\/?\?(?:.*&)*(cad=1)(?:&.*?)*$
Nebo tohle v případě, kdy máš již doménu v rámci filtru a chceš hledat pouze stránky:

Kód:
^\/potvrzeni\/?\?(?:.*&)*(cad=1)(?:&.*?)*$
Druhý případ bude u GA častější, takhle jsem to třeba nastavil já pro ukázku:

06.09.2019 14:41
8
Záleží opravdu kam to chceš zadávat, pošli kdyžtak screen jak to vypadá, co to našlo/nenašlo a jak jsi to zadal. Jak jsem psal, každé prostředí regulární výrazy potřebuje v trochu jiném formátu, trochu jinak se chovají a musí se lehce upravit podle toho. Není to univerzální jazyk.