Akke Skrevet 30. september 2003 Del Skrevet 30. september 2003 Lager wap-side som skal ha nyheter. Inne på en valgt nyhet kommer $tekst som da hentes fra mySQL. Da mobiler har liten skjerm har jeg kommet frem til at ca. 450 tegn per side er passe. Utfordringen er da enten å dele opp $tekst i bolker med 450 tegn og lenke til neste side, som igjen (hvis det er over 900 tegn) lenker til neste side osv. Eller fikse det hele med variabeler i spørringen med hjelp av SELECT SUBSTRING. $tekst vil normalt ikke være over 900 tegn men kan være det, så best om det ikke blir noen begrensing. Setter pris på om noen har tips om metoder/kode Mvh Akke Lenke til kommentar
BlueEAGLE Skrevet 1. oktober 2003 Del Skrevet 1. oktober 2003 Tjaa.. sånn på stående fot så ville vel dette være passende Men den har ikke kode for å lage nav-bar. Men siden den genererer en array så er ikke det noe stress. Det er bare å linke til neste side hvis ikke dette er den siste side (sizeof()); Du vil muligens også passe på at siden slutter med et helt ord slik at ikke ord blir delt på midten. Håper dette hjelper. Lenke til kommentar
Akke Skrevet 1. oktober 2003 Forfatter Del Skrevet 1. oktober 2003 Takker, dette hjalp veldig mye Landet opp med: $TegnPerSide=450; $AntSider=ceil(strlen($tekst)/$TegnPerSide); for ($Cnt=0; $Cnt<$AntSider;$Cnt+=1) { $sidetekst[$Cnt]=substr($tekst, $Cnt*$TegnPerSide, $TegnPerSide); } If ($side == ""){ $vistittel = "<p><b>$tittel</b></p>"; $side = 0; $sidenr = $side + 1; } else { $sidenr = $side + 1; $vistittel = ""; } $mer = "<br><a href='nytt.php?vis=$vis&side=$sidenr'>Mer...</a>"; if ($AntSider == $sidenr){ $mer = ""; } $vissidetekst = trim ($sidetekst[$side]); echo ("$vistittel<p>$vissidetekst$mer</p>"); Sikkert litt rare løsninger på sideskift/lenke biten, men det funker. Eneste svakheten her som jeg kan se er at ord deles på midten. Takk skal du ha BlueEAGLE Lenke til kommentar
magikern Skrevet 1. oktober 2003 Del Skrevet 1. oktober 2003 fant en funksjon på php.net som bare deler mellom ord, men den er egentlig til linjeskift så det må skrives om litt for å bli sideskift: function short_words($str,$cols,$cut) { $str = str_replace("rn","",$str); $str = str_replace("n","",$str); $str = str_replace("r","",$str); $tag_open = '<'; $tag_close = '>'; $in_tag = 0; $str_len = strlen($str); $segment_width = 0; for ($i=0; $i <= $str_len; $i++){ if (substr($str,$i,strlen($cut)) == $cut) { $i += strlen($cut)-1; $segment_width = 0; } else { if ($str[$i] == $tag_open) { $in_tag++; } elseif ($str[$i] == $tag_close) { if ($in_tag > 0) { $in_tag--; } } else { if ($in_tag == 0) { $segment_width++; if ($str[$i] == " ") { $last_space = $i; } if (($segment_width > $cols) && ($str[$i] != " ")) { if ($last_space < $i) { $str = substr($str,0,$last_space).$cut.substr($str,$last_space); $i = $last_space + strlen($cut) - 1; } else { $str = substr($str,0,$i).$cut.substr($str,$i); $i += strlen($cut) - 1; } $last_space = 0; $str_len = strlen($str); $segment_width = 0; } } } } } return $str; } $str = short_words($str, 45 ,"<br />"); Lenke til kommentar
BlueEAGLE Skrevet 1. oktober 2003 Del Skrevet 1. oktober 2003 Flott Magikern! :smile: Lenke til kommentar
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å