Если номера всегда находятся в той же схеме, вы можете сделать это с этим:
<?php
$string = "{
label: 'P',
available: false,
ref: '031-0132-806-02'
},
{
label: 'M',
available: false,
ref: '031-0132-806-03'
}]
}
},";
preg_match_all('![0-9]{3}\-[0-9]{4}\-[0-9]{3}\-[0-9]{2}!',$string,$matches);
print_r($matches);
?>
Обновленный Скажем, это гусеничный для данных.
<?php
$url = 'http://www.urltocapture...';
function crawlSite($url){
$refIDs = array();
$string = file_get_contents($url);
preg_match_all('!\items: +?\[[^]]+\]!s',$string,$sets);
foreach($sets as $items){
foreach($items as $item){
$cleanupPattern = array('!\t+!','! +!','!(\r\n|\n|\r)+!','! +!');
$cleanupReplacements = array(' ',' ',""," ",);
$item = preg_replace($cleanupPattern,$cleanupReplacements,$item);
//echo $item."\n";
preg_match_all('!label: \'P\'[^\}]+([0-9]{3}\-[0-9]{4}\-[0-9]{3}\-[0-9]{2})[^\}]+}!',$item,$item_match);
if(!empty($item_match[1][0])){
$refIDs[] = $item_match[1][0];
}
}
}
return $refIDs;
}
$refIDs = crawlSite($url);
print_r($refIDs);
?>
Почему не декодирует данные с 'json_decode()', а затем обработать объект/массив, чтобы получить информацию, которую Вы хотите? – Sammitch
Является ли этот код объектом или вы хотите регулярное выражение именно на этом коде? – 2013-04-04 17:50:56
Да ... есть json внутри html. Это начинается с productPage1.init ({и заканчивается с //]]> \t. Есть ли способ использовать preg_math? – adrianogf