Aiuto per i feed di BlogItalia: PHP ed espressioni regolari

Questo è un appello.

Cerco qualcuno che conosca PHP e l’uso delle espressioni regolari (che per me sono incomprensibili) per sistemare due cose nei feed di BlogItalia. La prima è un problemino che già c’è e colpisce solo alcuni Blog.

La seconda cosa, ben più grave, inizierà a farsi sentire quando Splinder introdurrà il nuovo strumento di formattazione automatico dei post, compatibile sia con IE che con firefox.

In pratica, si tratta estrarre da una stringa tutto ciò che è compreso tra due precisi delimitatori.

Chi avesse voglia di darmi una mano, può scrivermi una mail, lasciarmi un commento con un recapito, scrivermi un messaggio privato su splinder, contattarmi telepaticamente, o qualunque altra cosa.

L’umanità ve ne sarà eternamente riconoscente.

8 Risposte a “Aiuto per i feed di BlogItalia: PHP ed espressioni regolari”

  1. Facendo una ricerca veloce su Google, non sembra complicato, ipotizzando che hai già la tua stringa compresa di delimitatori, il codice dovrebbe essere questo qua:
    eregi(“iniziodelimitatore(.+)finedelimitatore“, $tuastringa, $ret)
    dentro la variabile $ret che è un array, avrai come argomento zero ($ret[0]) la stringa intera, mentre negli altri argomenti, tutte le occorrenze.

    Sperando di non avere scritto castronerie.

  2. la faccenda è un po’ più complicata… con quella funzione estraggo ciò che è compreso tra [title] e [/title] (ovviamente non con ] ma con >), ma in alcuni casi non riconosce il /title ed estrae tutta la stringa fino in fondo.
    Esempio: http://www.blogitalia.it/fg.asp?id=1137 (aperto con firefox, e guardando il sorgente, ci si rende conto). Però usando (.*) invece di (.+), che differenza fa?
    Ma la cosa più importante, è che non ho idea di come scovare i tag innestati.
    se c’è uno [span class=”rss:item”]pippo [span]pluto[/span] topolino[/span] io voglio poter estrarre “pippo [span]pluto[/span] topolino”… come?

  3. dimenticavo di dire che ora quella cosa la fa una preg_match_all(“%rss:item *” *>(.+?)%is”, $data, $items);

  4. Dunque, .* indica zero o più occorrenze mentre .+ una o più, quindi in teoria sarebbe più giusto il primo.
    L’esempio che hai indicato a me da un errore di undefined entity.
    Per la questione del “pippo pluto” la regular expression dovrebbe essere così:
    [span class=”rss:item”]*[^[/span]].*[/span]

  5. ehm… a questo punto però con le ] e i > non capisco più nulla… sono tutti >? faccio qualche prova, ma se puoi scrivermi una mail mi faresti un gran favore.. ovviamente bisogna che io sia capace di pescare un numero qualunque di span annidati, estraendo tutto quello che è contenuto nello span più esterno…

I commenti sono chiusi.