Che cosa sto facendo di sbagliato con preg_match_all?
-
19-09-2019 - |
Domanda
Lo scopo è quello di trovare insiemi quali <!-- content:start -->some content here<!-- content:stop -->
e il processo di ognuno di metterlo in un array, ma ogni volta che trova corrispondenze e echos mia dichiarazione muoiono senza stampare alcun partite fuori. Nota. Il contenuto tra i tag di inizio e fine di solito si estende su più righe
Questa è la funzione corrente che è in esecuzione.
function boom($data) {
$number = preg_match_all("/(<!-- ([\w]+):start -->)(.*?)(<!-- \\2:stop -->)/", $data, $matches, PREG_SET_ORDER);
if ($number == 0) $data['content'] = $data;
//else unset($data);
foreach ($matches as $item) print_r($item)."\n\n"; // $data[$item[2]] = explode("<!-- breaker -->", $item[3]);
die("<code>".str_replace("\n", "<br />", htmlentities($data))."</code>");
return $data;
}
Soluzione
Se il testo continua su più righe, basta aggiungere il modificatore /s
al vostro modello (per rendere .
partita ritorni a capo).
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow