preg_match () шаблон регулярных выражений для получения 3 вещей из моего URL - PullRequest
0 голосов
/ 12 марта 2012

Я новичок в шаблонах регулярных выражений PHP, поэтому я попытался создать шаблон для этого URL:

$turl=http://ss-3.domian.com/screenshot/50/18/screenshot_multiple/501800/501800_multiple_1_extra_large.jpg 

Я просто хочу получить 3 вещи: "3", "50/18", "501800"

Поэтому я использовал этот код:

preg_match('#http://ss-(.*?).domain.com/screenshot/(.*?)/screenshot_multiple/(.*?)/(.*?)_multiple_1_extra_large\.jpg#',$turl,$t_url)

Так что, если я использую $matches[1]=3; $matches[2]=50/18; $matches[3]=501800, я должен получить правильные числа ??

1 Ответ

1 голос
/ 12 марта 2012
<?php
$turl = 'http://ss-3.domain.com/screenshot/50/18/screenshot_multiple/501800/501800_multiple_1_extra_large.jpg';
preg_match_all('#http://ss\-([^\.]*)\.domain.com/[^/]+/([^/]*)/([^/]*)/[^/]*/([^/]*)/([^/]*)#msi',$turl,$match);
// For testing
var_dump($match);
?>

У вас была опечатка (domian) в строке поиска, и она не была в кавычках.Этот вид URL, вероятно, изменится, поэтому я сделал его как можно более универсальным, сохраняя при этом форму.Я думаю, если бы мы знали вашу проблему, мы бы пересмотрели использование регулярных выражений, если это возможно.Кроме того, чтение объявлений функций в php.net поможет вам понять их применение.

...