Avatar billede davidskp Nybegynder
03. marts 2009 - 22:42 Der er 10 kommentarer og
1 løsning

Giv hveranden <tr> i string en style

Jeg har en table gemt i en string på følgende måde:

$table = "
<table>
  <tr>
    <td></td>
  </tr>
  <tr>
    <td></td>
  </tr>
  <tr>
    <td></td>
  </tr>
  <tr>
    <td></td>
  </tr>
</table>
";

Jeg vil gerne gå stringen igennem og gi hveranden <tr> en style. Hvordan gør jeg det?
Avatar billede Slater Ekspert
03. marts 2009 - 23:02 #1
Det er utrolig besværligt når du gør det på den måde.

Hvorfor udskriver du ikke hver row i en while-løkke?
Avatar billede davidskp Nybegynder
03. marts 2009 - 23:14 #2
Jeg har desværre ikke kontrol over det, da tabellen hentes fra en anden hjemmeside...ellers ville jeg også ha lavet en while løkke ;)
Avatar billede olebole Juniormester
03. marts 2009 - 23:48 #3
<ole>

Kan du ikke bare få det andet site til at levere dig data i et andet format - f.eks JSON eller XML?

/mvh
</bole>
Avatar billede davidskp Nybegynder
04. marts 2009 - 00:37 #4
Det er ikke sitet der leverer - jeg bruger file_get_contents() og isolerer en tabel jeg skal bruge data fra.
Avatar billede Slater Ekspert
04. marts 2009 - 09:10 #5
$zebra = 0;
$pos = 0;
do {   
  $pos = strpos($table, '<tr', $pos+1);
  if ($pos === false) break;
  str_inject($table, ' class="'.(++$zebra%2?'0':'1').'"', $pos + 3);   
} while (true);

function str_inject(&$str, $inject, $position) {
  $str = substr($str, 0, $position) . $inject . substr($str, $position);
}
Avatar billede Slater Ekspert
04. marts 2009 - 09:11 #6
.. og så kommer hver anden til at hedde class="0" og hver anden class="1" - det skal du selvfølgelig ændre - eller du kan erstatte det med style="..." hvis du hellere vil bruge inline.
Avatar billede olebole Juniormester
04. marts 2009 - 09:45 #7
"Det er ikke sitet der leverer" >> Så skal du nok spørge om lov først, hvis det skal bruges til noget  ;o)
Avatar billede davidskp Nybegynder
04. marts 2009 - 10:37 #8
Yes det virker perfekt! :)

Mange tak viperine for andet besvarede spm inden for få timer :)

Smider du et svar?

Og ole det er en stilling i vores pulje fra infosport.dk som jeg gerne vil vise på vores fodboldholds side så tror ik de har noget imod det....ellers må de brokke sig :)
Avatar billede Slater Ekspert
04. marts 2009 - 10:51 #9
Gerne :)
Avatar billede jantzen88 Nybegynder
04. marts 2009 - 14:51 #10
Avatar billede olebole Juniormester
04. marts 2009 - 15:39 #11
"Og ole det er en stilling i vores pulje fra infosport.dk som jeg gerne vil vise på vores fodboldholds side så tror ik de har noget imod det....ellers må de brokke sig"

Nej, du burde undlade at bruge data på den måde - ikke mindst når sitet helt klart og tydeligt skriver, det er forbudt at bruge data på den måde, du ønsker at gøre det  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester