Nieuws bericht verkoten en html

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Derk  Janssen

Derk Janssen

24/05/2010 23:50:49
Quote Anchor link
Hallo allemaal ik heb een vraagje.
Ik zou het leuk vinden als mijn nieuws berichten verkort worden bij 1000 tekens.
Normaal is dat niet zo moeilijk dan gebruik je gewoon.
$news_body = substr($news_body,0,1000);
echo $news_body . ' '...';
Maar nu heb ik de Tinymce editor er in zitten dus er zit html in en verknoeid hij dat als hij boven de 1000 tekens komt.
Hoe kan ik het bericht laten verkortten terwijl hij wel alle html heel houd.
 
PHP hulp

PHP hulp

29/03/2024 09:19:55
 
Loran DP

Loran DP

25/05/2010 06:45:30
 

25/05/2010 08:40:08
Quote Anchor link


Hij heeft html in z'n berichten, dus bijvoorbeeld heeft hij bijvoorbeeld staan. Als je dan strip_tags doet is die opmaak dus weg.
Niet de bedoeling lijkt mij.
 
Derk  Janssen

Derk Janssen

25/05/2010 15:05:38
Quote Anchor link
Bedankt Mr Bean en Karl Karl wat Karl Karl zegt is inderdaad het geval als ik dat zou gebruiken er kunnen namelijk plaatjes in zitten.
 
Thom nvt

Thom nvt

25/05/2010 15:18:52
Quote Anchor link
zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$nieuws = array();
    $i=0;
    $res = $db->query("SELECT nieuws_id, headline, content FROM nieuws ORDER BY datum DESC LIMIT 20;");
    while(list($id, $headline, $content)=mysql_fetch_row($res)){
        $nieuws[$i][0] = $id;
        $nieuws[$i][1] = $headline;
        $content =  explode("\r\n",$content);
        $j=0;
        while($j<=2){
            if($j == 2){
                $nieuws[$i][2] .= $content[$j];
            }else{
                $nieuws[$i][2] .= $content[$j];
            }
            $j++;
        }
        $nieuws[$i][2] .= "<a href='index.php?page=nieuws#".$nieuws[$i][0]."'>Lees verder</a>";
        $i++;
    }


Is niet de mooiste oplossing, maar het werkt wel. Ik had hetzelfde probleem.

Als je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
while($j<=2){
aanpast naar een hoger getal worden er meer regels weergeven.
Dit script kapt de tekst af na 2 regels. (eigenlijk na 2 newlines, daarom moet je na elke regel een newline zetten om dit script te laten werken.)

Maargoed, zoals ik zei, niet mooi en zeker niet al te efficiënt, maar wel effectief.

Verbeteringen zijn natuurlijk welkom.
 
Wesley Overdijk

wesley Overdijk

25/05/2010 15:31:43
Quote Anchor link
Of je zoekt na een aantal tekens de laatste </b|u|i|etc> op?
 
Andries Louw Wolthuizen

Andries Louw Wolthuizen

25/05/2010 15:41:54
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

/**
 * String afbreken na X karakters
 * Return: str
 */

function word_cut($str, $maxLength, $char){
    $maxLength += strlen($char);
    if(strlen($str) <= $maxLength){
        return $str;
    }

    
    $count = 0;
    $newStr = '';
    $openTag = false;
    
    for($i=0; $i<strlen($str); $i++){
        $newStr .= $str{$i};  
      
        if($str{$i} == '<'){
            $openTag = true;
            continue;
        }
elseif(($openTag == true) && ($str{$i} == '<')){
            $openTag = false;
            continue;
        }
elseif($openTag == false){
            $count++;
            if($count==$maxLength){//if current word max length is reached
                $newStr = substr($newStr,0,-strlen($char)).$char;//insert word break char
                return $newStr;
            }
        }  
    }

    return $newStr;
}

?>


Dat gebruik ik altijd, voor het geval dat je dus tags hebt. Voorbeeldje van gebruik; 30 tekens, en afsluiten met ... : word_cut('Hele lange lap tekst die afgekort moet worden op 30 tekens',30,'...');
 
Derk  Janssen

Derk Janssen

25/05/2010 16:13:13
Quote Anchor link
dankje wel Andries Louw Wolthuizen
 
Taenadar Bla

Taenadar Bla

25/05/2010 17:36:05
Quote Anchor link
Voordat je je bericht door tinyMCE gooid op 1000 tekens controleren en daarna pas je html + andere rotzooi toevoegen?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.