Php regex kullanarak bir kelimeyi nasıl ayıklanır?

2 Cevap php

Nasıl php regex kullanarak, foo şu URL'den ve bir varialbe saklamak ayıklamak?

http://example.com/pages/foo/inside.php

Ben bir cevap için biraz googled ama beni anlamak için en regex örnekleri çok karmaşık idi.

2 Cevap

If ilk bölümü değişmez olduğu:

$s = 'http://example.com/pages/foo/inside.php';
preg_match('@^http://example.com/pages/([^/]+).*$@', $s, $matches);
$foo = $matches[1];

Ana bölümü not bir çizgi her şeyi maçları ([^/]+) hangi (/). Biz dize sonraki eğik çizgi veya sonuna ("foo" bölümü son olabilir eğer) bulma kadar eşleşen konum olduğunu.

Peki, foo ayıklanmasını istediğiniz ne kural dayalı çoklu çözümler, orada olabilir. Eğer henüz belirtmek vermedi, ben sadece (yanlış ise, soru genişletin lütfen) geçerli dosyanın klasör adını almak istediğiniz tahmin edeceğiz.

<?php
$str = 'http://example.com/pages/foo/inside.php';
preg_match( '#/([^/]+)/[^/]+$#', $str, $match );
print_r( $match );
?>