English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A função preg_match_all é usada para executar uma coincidência de expressão regular global.
int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
Procura todas as coincidências do padrão regular dado no subject e as exibe na ordem especificada pelo flag no matches.
Depois de encontrar a primeira coincidência, a subsequência continua a procurar a partir da posição da última coincidência.
Descrição dos parâmetros:
$pattern: Padrão a ser pesquisado, em formato de string.
$subject: String de entrada.
$matches: Matriz multidimensional, usada como parâmetro de saída para exibir todos os resultados de coincidência, a ordenação da matriz é especificada pelos flags.
$flags: Pode ser combinado com as marcas a seguir (atenção: não pode ser usado ao mesmo tempo PREG_PATTERN_ORDER e PREG_SET_ORDER):
PREG_PATTERN_ORDER: A ordenação dos resultados é $matches[0] que salva todas as coincidências do padrão completo, $matches[1] Salva todas as coincidências do primeiro grupo subordinado, por exemplo.
PREG_SET_ORDER: A ordenação dos resultados é $matches[0] que contém todas as coincidências obtidas pela primeira vez (inclusive os grupos subordinados), $matches[1É um array que contém todas as coincidências encontradas pela segunda vez (inclusive os grupos subordinados), por exemplo.
PREG_OFFSET_CAPTURE: Se esse marcador for passado, cada correspondência encontrada aumentará o deslocamento relativo em relação à string de destino.
offset: Normalmente, a busca começa a partir da posição inicial da string de destino. O parâmetro opcional offset é usado para especificar a posição de início da busca na string de destino (em bytes).
Retorna o número total de correspondências completas (pode ser 0), ou FALSE se ocorrer um erro.
<?php
$userinfo = "Nome: <b>PHP</b> <br> Título: <b>Idioma de Programação</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r($pat_array[0]);
?>
O resultado da execução está conforme abaixo:
Array ( [0] => <b>PHP</b> [1] => <b>Idioma de Programação</b> )
<?php
//\",2É um exemplo de referência posterior. Isso diz ao pcre que ele deve corresponder ao segundo parênteses de expressão regular (aqui é ([\w+))
//Os resultados correspondentes. Aqui são usados dois backslashes porque estão sendo usadas aspas duplas.
$html = "<b>texto em negrito</b><a href=howdy.html>clique aqui</a>";
preg_match_all("/(<([\w+)[^>]*)>(.*/\",2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4]; "\n\n";
}
?>
O resultado da execução está conforme abaixo:
matched: <b>texto em negrito</b> part 1: <b> part 2: b part 3: texto em negrito part 4: </b> matched: <a href=howdy.html>clique aqui</a> part 1: <a href=howdy.html> part 2: a part 3: clique aqui part 4: </a>