PHP: Nasıl bir düzenli ifade örnek bir maç dönüştürebilirim?

2 Cevap php

Ben eşleşen adresleri için normal bir ifade var. Örneğin,

preg_match("/^my\/uri\//i", "my/uri/whatever");

Ben "http://www.mywebsite.com/my/uri/page.html" (tabii kaldırıldı protokol / host ile) Yukarıdaki maç olacak exmample için, yönlendirme için kullandığınız.

Maç olacak en genel tanım içine düzenli ifadeyi değerlendirmek için herhangi bir yolu var mı? Örneğin,

"Benim / uri /"

2 Cevap

Ben aslında ne istediğinizi anlayamadım.

Bu kod neye ihtiyacınız olabilir:

$general_uri = 'my/uri/';
$regex = '/^' . preg_quote($general_uri) . '/i';

İsterseniz yukarıdaki kodu ters:

$regex = '/^my\/uri\//i';
$general_uri = str_replace('\\', '', preg_replace('/^\/\^(.*)\/i?$/', '$1', $regex));

Ancak kod yukarıdaki karmaşık regexes çalışmaz.

Bu çıkmaz içine götüren orijinal sorun söyleyebilirim Belki birisi durumla ilgili bir büküm verebilir.

Kendime bir yönlendirme Algoritmlerin yaptık ve ben sadece kullanmak ve '/' üzerinde patlayabilir ve o çok güzel Magento veya Zend Framework does it, yol denetleyicileri veya yönlendiriciler ve kaydedilmesi gibi bir şey çalışır Onları bağlayan.

Belki de orijinal sorunun PHP ile bir düzenli ifade motoru yazmaya gerek kalmadan çözülebilir.