Wordwrap functie in echo

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Remco Schrijvers

Remco Schrijvers

13/03/2013 17:12:08
Quote Anchor link
Beste allen,

Ik ben al enige tijd bezig met een wordwrap functie voor mijn laatste forum berichten.

Graag zou ik zien dat deze forum titels maar 15 tekens breed zijn en dat daarachter ".." komt te staan.

Alles wat ik doe aan onderstaande code, zorgt voor een wit beeld...

Heb de functie wordwrap meerdere malen doorgenomen maar ik krijg het niet voor elkaar :( Iemand enig idee?

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
37
38
<?php
    // How Many Topics you want to display?
    $topicnumber = 5;
    // Change this to your phpBB path
    $urlPath = "/phpbb";
 
    // Database Configuration (Where your phpBB config.php file is located)
    include 'config.php';
 
    $table_topics = $table_prefix. "topics";
    $table_forums = $table_prefix. "forums";
    $table_posts = $table_prefix. "posts";
    $table_users = $table_prefix. "users";
    $link = mysql_connect("$dbhost", "$dbuser", "$dbpasswd") or die("Could not connect");
    mysql_select_db("$dbname") or die("Could not select database");
 
    $query = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username
    FROM $table_topics t, $table_forums f, $table_posts p, $table_users u
    WHERE t.topic_id = p.topic_id AND
    f.forum_id = t.forum_id AND
    t.forum_id != 4 AND
    t.topic_status <> 2 AND
    p.post_id = t.topic_last_post_id AND
    p.poster_id = u.user_id
    ORDER BY p.post_id DESC LIMIT $topicnumber"
;
    $result = mysql_query($query) or die("Query failed");                                    
 
    print "<table cellpadding='3' cellSpacing='2' width='640'>";
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
 
    echo "<a href=\"$urlPath/viewtopic.php?f=$row[forum_id]&t=$row[topic_id]&p=$row[post_id]#p$row[post_id]\" TARGET=\"_blank\">" .
    $row["topic_title"] .
    "</a><br>";
    }

    print "</table>";
    mysql_free_result($result);
    mysql_close($link);
    ?>


Groeten
Schrijvers.
Gewijzigd op 13/03/2013 17:16:01 door Remco Schrijvers
 
PHP hulp

PHP hulp

26/11/2024 01:51:14
 
Willem vp

Willem vp

13/03/2013 18:02:47
Quote Anchor link
Bij word wrapping wordt een regel afgebroken over meerdere regels met een maximum bvreedte. Volgens mij is dat niet wat je wilt.

Volgens mij wil je iets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo substr($row["topic_title"],0,15) . "...";
 
Wouter J

Wouter J

13/03/2013 19:10:39
Quote Anchor link
En dan een iets mooiere variant zodat hij niet halverwege woorden afbreekt:
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
<?php
/**
 * @param string  $string
 * @param integer $limit  The limit of characters
 * @param integer $offset Where to start in the string. Default = 0
 *
 * @return string
 */

function excerpt($string, $limit, $offset = 0) {
    $string = substr($string, $offset);

    if ($limit > strlen($string)) {
        return $string;
    }


    $limitedString = substr($string, 0, $limit);
    $restString = substr($string, $limit);
    $finishWord = substr($restString, 0, strpos($restString, ' '));
    $finishWord = trim($finishWord, '.,!?:;');


    return $limitedString.$finishWord;
}

?>
 
Remco Schrijvers

Remco Schrijvers

15/03/2013 17:57:34
Quote Anchor link
Hartelijk dank voor de code, echter ben ik weer meerdere malen aan de slag geweest deze ertussen te bouwen maar ik krijg telkens weer een wit scherm.

Aangezien op het forum vaak lange woorden langskomen, heb ik liever dat de titels na 15 tekens stoppen en er dan ... verschijnt.

Iemand die zo lief is mij heeel goed op weg te helpen?
 
Eddy E

Eddy E

15/03/2013 20:10:48
Quote Anchor link
De code hierboven van Wouter J doet precies dat!
Nu nog even excerpt($jouw_tekst) in je code duwen.
 
Remco Schrijvers

Remco Schrijvers

15/03/2013 21:28:19
Quote Anchor link
Ik krijg het maar niet voor elkaar....!!!!

Is er geen andere manier dan wordwrap om de titel kort te houden volgens mij is het gewoon niet mogelijk.
 
Eddy E

Eddy E

15/03/2013 21:53:27
Quote Anchor link
Ja, substr().
Maar excerpt() is een betere, uitgebreidere versie met dezelfde syntax.
 
Remco Schrijvers

Remco Schrijvers

15/03/2013 22:00:21
Quote Anchor link
Waar plaats ik dat het best dan?

Als ik deze codes ook maar ergens neerzet word me scherm wit.

Word het serieus echt gek van maar anders word me layout verneukt.

Iemand oplossing?
 
Willem vp

Willem vp

16/03/2013 01:19:20
Quote Anchor link
Vervang de $row["topic_title"] in regel 32 van de code in je eerste bericht door de substr($row["topic_title"],0,15) uit mijn vorige bericht en je bent er...
Gewijzigd op 16/03/2013 01:22:42 door Willem vp
 



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.