Wordwrap functie in echo
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)
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
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);
?>
// 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
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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;
}
?>
/**
* @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;
}
?>
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?
Nu nog even excerpt($jouw_tekst) in je code duwen.
Is er geen andere manier dan wordwrap om de titel kort te houden volgens mij is het gewoon niet mogelijk.
Maar excerpt() is een betere, uitgebreidere versie met dezelfde syntax.
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?
Gewijzigd op 16/03/2013 01:22:42 door Willem vp