Domanda

Ho eseguito in questo problema più volte prima di quando si cerca di fare un po 'html raschiando con php e le preg * funzioni.

La maggior parte del tempo ho a strutture di cattura del genere:

<!-- comment -->
<tag1>lorem ipsum</tag>

<p>just more text with several html tags in it, sometimes CDATA encapsulated…</p>
<!-- /comment -->

In particolare voglio qualcosa di simile:

/<tag1>(.*?)<\/tag1>\n\n<p>(.*?)<\/p>/mi

ma \ n \ n non sembra che avrebbe funzionato.

C'è un interruttore generale di interruzione di riga?

È stato utile?

Soluzione

Penso che si potrebbe sostituire il \n\n con (\r?\n){2} questo modo di catturare la coppia CRLF invece di char LF.

Altri suggerimenti

Sei sicuro di volere analizzare HTML usando espressioni regolari? HTML non è regolare e ci sono troppi casi d'angolo.

Vorrei studiare una qualche forma di parser HTML (forse questo ?), E quindi identificare il modello che ti interessa tramite la struttura dei dati HTML restituito.

Oppure si potrebbe guardare il rel="nofollow Dom Estensione per php. Ha una funzione di carico html da una stringa o di un file . È quindi possibile utilizzare i metodi php DOM per attraversare il DOM e trovare i dati che interessa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top