Estrarre dei valori da testo/codice html

Salve a tutti, ho un piccolo problema con php, mi auguro che possiate aiutarmi. Ho cercato nel forum ma non ho trovato niente di simile.

Mettiamo caso che abbia questo codice html:

<a href="/gambphp/spaw2/uploads/images/230px-Fmp_sagara.jpg">
<img border="0" alt="" style="width: 122px; height: 122px;" src="/gambphp/spaw2/uploads/images/230px-Fmp_sagara.jpg" /></a>
<a href="/gambphp/spaw2/uploads/images/12151081036.jpg">
<img border="0" alt="" style="width: 386px; height: 289px;" src="/gambphp/spaw2/uploads/images/12151081036.jpg" /></a>
<br />

come noterete è il codice html prodotto da spaw2 (ma consideriamo un qualsiasi editor WYSIWYG che produca questo codice).

Ora la mia necessità è quella di estrarre il collegamento src presente in ogni immagine e i valori in pixel del ridimensionamento dell'immagine (i vari style="width: 122px; height: 122px") e quindi far si che ad ogni immagine corrisponda il relativo ridimensionamento, salvato magari in un array.

Questo perché?

Praticamente ho la necessità di ridimensionare le immagini con le librerie GD (che creano nuove e vere immagini ridimensionate). L'immagine ridimensionata finirà in una cartella con i thumbnail(le immagini rimpicciolite), e l'indirizzo a questa nuova immagine sostituirà il vecchio.

In questo modo l'utente finale, che visionerà la pagina prodotta da quel codice html, vedrà i thumbnail correttamente sfumati e non sgranati.

Pensavo di farlo con le espressioni regolari, ma attualmente sono uno dei miei talloni di achille, in quanto non so come estrarre i valori correttamente, per elaborarli e sostituirli.

Pensavo di poter fare una cosa del genere:

1. estrai gli attributi dai tag img

2. depositali in un array in modo da avere:

 [immagine1](

   [src] = "indirizzo immagine";

   [width] = "200";

   [height] = "200";

)

 [immagine2](

   [src] = "indirizzo immagine";

   [width] = "345";

   [height] = "543";

)

3. Ridimensionare ogni immagine

4. Sostituire l'attributo src in modo che punti alla thumb.

Ma non sono sicuro sia giusto (e comunque non saprei come fare).

A dirla tutta mi chiedo se sia possibile farlo o meno.

Vi ringrazio per l'attenzione, spero di essermi spiegato chiaramente e che qualcuno riesca ad aiutarmi, ogni consiglio è ben accetto.

inviato 7 anni fa
yuxuri
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda