Atitinka URL adreso kelią, atėmus failo vardo plėtinį

Kokia būtų geriausia reguliarioji išraiška šiam scenarijui?

Atsižvelgiant į šį URL adresą:

kalba: lang-none -->

http://php.net/manual/en/function.preg-match.php

Kaip turėčiau pasirinkti viską, kas yra tarp http://php.net ir .php (bet neįskaitant):

/manual/en/function.preg-match

Tai Nginx konfigūracijos failas.

Sprendimas

Panašiai kaip šis:


if (preg_match('/(?
Komentarai (2)

Išbandykite tai:

preg_match("/net(.*)\.php$/","http://php.net/manual/en/function.preg-match.php", $matches);
echo $matches[1];
// prints /manual/en/function.preg-match
Komentarai (0)

Šis bendras URL atitikmuo leidžia pasirinkti URL adreso dalis:

if (preg_match('/\\b(?Phttps?|ftp):\/\/(?P[-A-Z0-9.]+)(?P\/[-A-Z0-9+&@#\/%=~_|!:,.;]*)?(?P<parameters>\\?[-A-Z0-9+&@#\/%=~_|!:,.;]*)?/i', $subject, $regs)) {
    $result = $regs['file'];
    //or you can append the $regs['parameters'] too
} else {
    $result = "";
}
Komentarai (0)