Een simpele probleem waar ik nog niet helemaal uit ben gekomen.
Je laadt gewoon een pagina met HTML in. Deze bevat wel veel zooi zoals:
(ignore php begin/einde omdat er geen [html] code view bestaat
)
Het is dus uit Excel geexporteerd.
Het is bedoeling dat ik hieruit rijen kan halen en vervolgens nog een keer <td></td> velden eruit halen. Daarna wordt in de dezelfde rij imagelink opgezocht dat http://......jpg bevat. Dan ben ik klaar.
De eerste poging om rijen eruit te filteren lukt niet goed.
Ik deed het met:
Meer heb ik niet, maar dat komt ook omdat ik niet verder kan nu de rijen eruit halen niet goed gaat.
Hij ziet begin <tr... wel, maar hij mist veel </tr><tr .... tussendoor, wat niet goed is. Pas aan het eind van $content2 ziet ie pas wel weer laatste </tr> tegen. Ertussen is dus overgeslagen.
Ik heb dus diverse zoek patterns geprobeerd, maar ik kom nog lang niet in buurt van gewenste resultaat.
Alleen met:
ziet hij wel meer beginnende tr's.
ziet ie echter niet meer goed en pakt teveel mee en gaat over </tr><td ...>, wat ik niet moet hebben.
Welke idee heb je dus voor mijn probleem? Ook in het begin met ^ en einde met $ werkt niet, ook \A en \z lijken niet goed te werken. Ze zouden begin en einde zoekstring moeten aangeven.
Door preg_replace is het dus 1 groot doorlopende string geworden, want newlines waar met '.' ermee stopt zijn eruit gehaald.
Je laadt gewoon een pagina met HTML in. Deze bevat wel veel zooi zoals:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| <table x:str border=3D0 cellpadding=3D0 cellspacing=3D0 width=3D1141 = style=3D'border-collapse: collapse;table-layout:fixed;width:856pt'> <col width=3D80 span=3D2 = style=3D'mso-width-source:userset;mso-width-alt:2925; width:60pt'> <col width=3D271 = style=3D'mso-width-source:userset;mso-width-alt:9910;width:203pt'> <col width=3D94 = style=3D'mso-width-source:userset;mso-width-alt:3437;width:71pt'> <col width=3D121 = style=3D'mso-width-source:userset;mso-width-alt:4425;width:91pt'> <col width=3D95 = style=3D'mso-width-source:userset;mso-width-alt:3474;width:71pt'> <col class=3Dxl31 width=3D136 span=3D2 = style=3D'mso-width-source:userset;mso-width-alt: 4973;width:102pt'> <col width=3D64 span=3D2 style=3D'width:48pt'> <tr height=3D18 style=3D'height:13.5pt'> <td height=3D18 class=3Dxl24 id=3D"_x0000_s1025" x:autofilter=3D"all" x:autofilterrange=3D"$A$1:$H$1103" width=3D80 = style=3D'height:13.5pt;width:60pt'>Article</td> <td class=3Dxl27 id=3D"_x0000_s1037" x:autofilter=3D"all" width=3D80 style=3D'width:60pt'>ticle</td> <td class=3Dxl24 id=3D"_x0000_s1026" x:autofilter=3D"all" width=3D271 style=3D'width:203pt'>Description</td> <td class=3Dxl24 id=3D"_x0000_s1028" x:autofilter=3D"all" width=3D94 style=3D'width:71pt'>decr</td> <td class=3Dxl27 id=3D"_x0000_s1035" x:autofilter=3D"all" width=3D121 style=3D'width:91pt'>free stock</td> <td class=3Dxl27 id=3D"_x0000_s1027" x:autofilter=3D"all" width=3D95 style=3D'width:71pt'>ind price</td> <td class=3Dxl32 id=3D"_x0000_s1032" x:autofilter=3D"all" width=3D136 style=3D'width:102pt'>Best offer price</td> <td class=3Dxl32 id=3D"_x0000_s1031" x:autofilter=3D"all" width=3D136 style=3D'width:102pt'>Total Euro</td> <td class=3Dxl15 width=3D64 style=3D'width:48pt'></td> <td class=3Dxl15 width=3D64 style=3D'width:48pt'></td> </tr> |
(ignore php begin/einde omdat er geen [html] code view bestaat

Het is dus uit Excel geexporteerd.
Het is bedoeling dat ik hieruit rijen kan halen en vervolgens nog een keer <td></td> velden eruit halen. Daarna wordt in de dezelfde rij imagelink opgezocht dat http://......jpg bevat. Dan ben ik klaar.
De eerste poging om rijen eruit te filteren lukt niet goed.
Ik deed het met:
PHP:
1
2
3
4
5
6
7
8
9
10
| // read file $filename="lijst.html"; $handle=fopen($filename,"r"); $contents = fread ($handle, filesize($filename)); fclose ($handle); // remove newlines $contents2=preg_replace('@([\r\n])[\s]+@','',$contents); // rijen eruit expressies $result=preg_match_all('/<tr .*>(.*)<\/tr>/i',$contents2,$matches,PREG_SET_ORDER); |
Meer heb ik niet, maar dat komt ook omdat ik niet verder kan nu de rijen eruit halen niet goed gaat.
Hij ziet begin <tr... wel, maar hij mist veel </tr><tr .... tussendoor, wat niet goed is. Pas aan het eind van $content2 ziet ie pas wel weer laatste </tr> tegen. Ertussen is dus overgeslagen.
Ik heb dus diverse zoek patterns geprobeerd, maar ik kom nog lang niet in buurt van gewenste resultaat.
Alleen met:
PHP:
1
| $result=preg_match_all('/<tr/i',$contents2,$matches,PREG_SET_ORDER); |
ziet hij wel meer beginnende tr's.
PHP:
1
| $result=preg_match_all('/<tr .*>/i',$contents2,$matches,PREG_SET_ORDER); |
ziet ie echter niet meer goed en pakt teveel mee en gaat over </tr><td ...>, wat ik niet moet hebben.
Welke idee heb je dus voor mijn probleem? Ook in het begin met ^ en einde met $ werkt niet, ook \A en \z lijken niet goed te werken. Ze zouden begin en einde zoekstring moeten aangeven.
Door preg_replace is het dus 1 groot doorlopende string geworden, want newlines waar met '.' ermee stopt zijn eruit gehaald.