phun-ky Skrevet 26. januar 2005 Skrevet 26. januar 2005 (endret) skulle gjerne likt å visst hvordan man gjør dette. noen som har forslag til hvordan dette kan gjøres? Endret 27. januar 2005 av phun-ky
Loomy Skrevet 26. januar 2005 Skrevet 26. januar 2005 Hva mener du med tabellfelt egentlig? Uansett, noe sånt som dette kan funke: $tekst = "Lorem ipsum dolor sit amet"; $tekst = explode(" ", $tekst); echo $tekst[0];
Jonas Skrevet 26. januar 2005 Skrevet 26. januar 2005 (endret) Loomy, hva om man vil hente ut flere ord, og det ikke finnes så mange ord på den linjen, men flere linjer nedover? Da må man splitte med "\n" også. Finnes det en teknikk for å splitte med to ting? Edit: Splitte/Eksplodere. Henger igjen fra VB-funksjonen Split().. Endret 26. januar 2005 av Jonas
phun-ky Skrevet 26. januar 2005 Forfatter Skrevet 26. januar 2005 funket fint det. men så kom jeg til å tenke på at jeg må jo da "fjerne" det første ordet i selve feltet.. dvs, jeg har et felt som inneholder artikler, og jeg vil ta det første ordet ut og ha en annen style på det. men det skaper jo en ny problemstilling, hvordan fjerne det første ordet i artikkelen?
Loomy Skrevet 26. januar 2005 Skrevet 26. januar 2005 Sånn: $tekst = "Lorem ipsum dolor sit amet"; $tekst = explode(" ", $tekst, 1); echo $tekst[0]; // Printer ut Lorem echo $tekst[1]; // Printer ut ipsum dolor sit amet
phun-ky Skrevet 26. januar 2005 Forfatter Skrevet 26. januar 2005 hm <? $spe = mysql_query("SELECT id,tittel,artikkel,forfatter,dato, type FROM news ORDER BY id DESC LIMIT 0, 5",$cxn); while($row = mysql_fetch_array($spe)) { $tekst = $row[artikkel]; $tekst = explode(" ", $tekst, 1); $tt = $tekst[0]; $tt1 = $tekst[1]; echo "<div id=\"nyheter\">"; echo " <p> <span class=two> $tt </span> <span class=test> $tt1 </span> </p> </div>"; echo "<div id=\"fill\"></div>"; } ?> dette vil ikke funke skikkelig. får den første stylen på alt... wtf?
phun-ky Skrevet 26. januar 2005 Forfatter Skrevet 26. januar 2005 byttet ut $tekst = explode(" ", $tekst, 1); med $tekst = explode(" ", $tekst, 2);
???????? Skrevet 26. januar 2005 Skrevet 26. januar 2005 Det finnes en funksjon for dette, som gir deg ordene i en array - se str_word_count()
stiber Skrevet 26. januar 2005 Skrevet 26. januar 2005 Et annet alternativ er regular expressions. <?php $tekst = "Lorem ipsum dolor sit amet"; print preg_replace("/^([^ ])(.*)/","<span class=\"tekst\">\\1</span>\\2",$tekst); ?> Dette gir også ønsket effekt. Forklaring: ^ #begynnelse av tekst. ([^ ]+) #Alt som ikke er mellomrom, men før første mellomrom, blir lagret i "\\1" (.*) #resten blir lagret i "\\2"
???????? Skrevet 26. januar 2005 Skrevet 26. januar 2005 Hva er poenget med å gjøre det vanskligere for seg selv?
stiber Skrevet 26. januar 2005 Skrevet 26. januar 2005 Bruker ganske mye RegExp, så det falt meg ganske naturlig. Syns det er en bedre løsning enn sprengstoff (explode()) i dette tilfellet.
???????? Skrevet 26. januar 2005 Skrevet 26. januar 2005 Ingen av de løsningene er det noe poeng i å bruke så lenge PHP har en funksjon for dette!
phun-ky Skrevet 26. januar 2005 Forfatter Skrevet 26. januar 2005 enklere enn dette? $tekst = explode(" ", $tekst, 1);
???????? Skrevet 27. januar 2005 Skrevet 27. januar 2005 str_word_count() tar også hensyn til dersom det skulle være flere mellomrom, eller hvis det er linjeskift - annet enn det så blir den ganske lik explode - man får hvert ord i en arrayen.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå