Eğer gerçekten Regexes (sizin dize her zaman ki gibi biçimlendirilir gerçekten eminseniz Tamam olabilir), ne durumda böyle bir şey, hakkında kullanmak istiyorsanız:
$str = <<<A
<table>
<tr>
<td>quote1</td>
<td>have you trying it off and on again ?</td>
</tr>
<tr>
<td>quote65</td>
<td>You wouldn't steal a helmet of a policeman</td>
</tr>
</table>
A;
$matches = array();
preg_match_all('#<tr>\s+?<td>(.*?)</td>\s+?<td>(.*?)</td>\s+?</tr>#', $str, $matches);
var_dump($matches);
Regex hakkında birkaç kelime:
<tr>
- o alanlarda herhangi bir sayı
- sonra
<td>
- o zaman ne yakalamak istiyorum
- sonra
</td>
- ve yine aynı
- ve son olarak,
</tr>
Ve ben kullanın:
?
regex olmayan açgözlü modda maç
preg_match_all
tüm maçları almak için
Daha sonra $matches[1]
ve $matches[2]
(not $matches[0]
) ; here's the output of the var_dump
Ben kullanılan istediğiniz sonuçları elde (I've remove entry 0, to make it shorter):
array
0 =>
...
1 =>
array
0 => string 'quote1' (length=6)
1 => string 'quote65' (length=7)
2 =>
array
0 => string 'have you trying it off and on again ?' (length=37)
1 => string 'You wouldn't steal a helmet of a policeman' (length=42)
Daha sonra sadece bazı dizeleri birleştirme veya benzeri ile bu dizi, işlemek gerekir; Örneğin, bu gibi:
$num = count($matches[1]);
for ($i=0 ; $i<$num ; $i++) {
echo $matches[1][$i] . ':' . $matches[2][$i] . '<br />';
}
Ve sen olsun:
quote1:have you trying it off and on again ?
quote65:You wouldn't steal a helmet of a policeman
Not: (like preg_match_all
return gereken bazı güvenlik kontrolleri eklemek gerekir doğrudur, saymalı olmak en az 1, ...) em>
Bir yan not olarak: {[(0)];} Eğer gerçek bir çözümleyici kullanabilirsiniz eğer, bu yol daha güvenli olmalı ...