Bir URL biçiminde bir dizi preg_match'in

2 Cevap php

Ben bir dize olarak bir URL var. Nasıl VideoID sonra numaraları maç yok. Ayrıca VideoID URL farklı noktalarda ortaya çıkabilir. Ben bile bu yapamam Ama ben, daha sonra bu konuda endişe olacaktır.

$string = 'http://example.com/index.php?action=vids.individual&VideoID=60085484';

preg_match('/(?<VideoID>)=/', $string, $matches);

print_r($matches);

... Bir çaylak için bazı değişiklik Yedek. :)

2 Cevap

Sadece kullanımı yerleşik parse_url / parse_str

$string = 'http://example.com/index.php?action=vids.individual&VideoID=60085484';
$URL = parse_url($string);
parse_str($URL['query'],$Q);
print_r($Q);

Array (
[action] => vids.individual
[VideoID] => 60085484 )

/(?:\?|&)VideoID=([0-9]+)/   # get just the ID, stored in \\1
/(?:\?|&)(VideoID=[0-9]+)/   # get VideoId=ID, stored in \\1

URL düzgün meydana geldiği varsayımı altında, her zaman ya da ? veya & önünde olacak, ve geçerli bir kimlik maç olacak böylece örnek ile URL, kesinlikle sayısal bir URL sonraki bölüme kadar.