Substr()
hi, ik heb een probleem met sub str. ik heb het volgende script:
zoals je ziet haal ik een nieuws bericht op die ik laat afkappen na een x aantal karakters. maar nu het volgende probleem.
ik voeg nieuws toe met een plaatje en daarvoor gebruik ik bij het toevoegen deze code :
<img src"http://www.bernardveeningen.nl/blog/afbeelding.jpg" width="120" alt="" />
zo ongeveer dan, maar die word wel is op de helft afgekapt, wat kan ik hieraan doen? want die afbeelding kan dan niet worden weergegeven
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
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
<?php
$host = "localhost";
$db_user = "****";
$db_pass = "****";
$tabel = "foto_overzicht";
$database = "****";
$db = mysql_connect($host, $db_user, $db_pass) or die (mysql_error());
mysql_select_db($database, $db) or die (mysql_error());
$sql = "SELECT ID, naam, titel, dag, maand, jaar, bericht FROM nieuws ORDER BY id DESC";
$uitvoeren = mysql_query($sql);
while ($res = mysql_fetch_array($uitvoeren)) {
?>
<table class="nieuwsbericht">
<tr>
<td class="nieuws_titel"><h3><?php echo $res['titel']; ?></h3></td>
</tr>
<tr>
<td>
<?php echo substr($res['bericht'], 0, 250)."..."; ?></td>
</tr>
<tr>
<td class="vervolg"><b><a href="http://www.bernardveeningen.nl/blog/index.php?id=<?php echo $res['ID']; ?>">lees meer</a></b></td>
</tr>
<tr>
<td class="auteur"><?php echo "Door: <b>".$res['naam']."</b> | op: ".$res['dag']." ".$res['maand']." ".$res['jaar']." | reacties (<b>0</b>)" ?></td>
</tr>
</table><br /><br />
?>
$host = "localhost";
$db_user = "****";
$db_pass = "****";
$tabel = "foto_overzicht";
$database = "****";
$db = mysql_connect($host, $db_user, $db_pass) or die (mysql_error());
mysql_select_db($database, $db) or die (mysql_error());
$sql = "SELECT ID, naam, titel, dag, maand, jaar, bericht FROM nieuws ORDER BY id DESC";
$uitvoeren = mysql_query($sql);
while ($res = mysql_fetch_array($uitvoeren)) {
?>
<table class="nieuwsbericht">
<tr>
<td class="nieuws_titel"><h3><?php echo $res['titel']; ?></h3></td>
</tr>
<tr>
<td>
<?php echo substr($res['bericht'], 0, 250)."..."; ?></td>
</tr>
<tr>
<td class="vervolg"><b><a href="http://www.bernardveeningen.nl/blog/index.php?id=<?php echo $res['ID']; ?>">lees meer</a></b></td>
</tr>
<tr>
<td class="auteur"><?php echo "Door: <b>".$res['naam']."</b> | op: ".$res['dag']." ".$res['maand']." ".$res['jaar']." | reacties (<b>0</b>)" ?></td>
</tr>
</table><br /><br />
?>
zoals je ziet haal ik een nieuws bericht op die ik laat afkappen na een x aantal karakters. maar nu het volgende probleem.
ik voeg nieuws toe met een plaatje en daarvoor gebruik ik bij het toevoegen deze code :
<img src"http://www.bernardveeningen.nl/blog/afbeelding.jpg" width="120" alt="" />
zo ongeveer dan, maar die word wel is op de helft afgekapt, wat kan ik hieraan doen? want die afbeelding kan dan niet worden weergegeven
Gewijzigd op 01/01/1970 01:00:00 door Bernard
Je zou moeten testen of de substring '<img' in je oorspronkelijke string voorkomt. Dan met een regex de lengte van de img code ophalen en die bij je 250 optellen.
Mmm okay, ik heb niet zo veel ervaring dat ik weet hoe ik dit voor elkaar kan krijgen kan je misschien helpen?
Gewijzigd op 01/01/1970 01:00:00 door bernard
preg_match("/<img[\s\S]*\/>/i", $string, $subs);
$maxlength = 250 + $strlen($subs[0]);
$maxlength = 250 + $strlen($subs[0]);
Gewijzigd op 01/01/1970 01:00:00 door CrawlBackwards
ok, maar hoe kan ik dat toevoegen aan mijn script? want ik snap ook die substring niet helemaal
waar haal je nou die $subs vdaan CrawlBackwards?
offtopic:
@bernard; die bloemetjes in je header, waar haal je die vandaan (op welk zoekwoord google je, welek site, etc) :) die zoek ik al best lang maar weet niet waar ik moet zoeken, bedankt
offtopic:
@bernard; die bloemetjes in je header, waar haal je die vandaan (op welk zoekwoord google je, welek site, etc) :) die zoek ik al best lang maar weet niet waar ik moet zoeken, bedankt
$string is het stuk tekst waarmee je werkt (dus watje uit de database haalt)
en $maxlength moet je gebruiken ipv jou 250.
ik krijg t idee dat het alleen niuet voldoende is en als dat idd niet zo is laat maar ff weten.
en $maxlength moet je gebruiken ipv jou 250.
ik krijg t idee dat het alleen niuet voldoende is en als dat idd niet zo is laat maar ff weten.
okay, maar ik begrijp nog steeds niet hoe ik hem in mijn script kan toepassen, met preg_match heb ik nooit gewerkt, ben nog met de basis van php bezig
'Jan:
Je zou moeten testen of de substring '<img' in je oorspronkelijke string voorkomt. Dan met een regex de lengte van de img code ophalen en die bij je 250 optellen.
Je moet ook kijken wáár de '<img' staat.
jah die aanvulling had ik ook gegeven als t niet genoeg was aangezien ik eerst aan nam dat de img aan t begin staat..
en ja ik weet t ik moet niet zomaar wat aan nemen maar ik doe t lekker toch! o.0
en ja ik weet t ik moet niet zomaar wat aan nemen maar ik doe t lekker toch! o.0
hehe, maar ik weet nu nog vrij weinig:P
ik heb wel is gelezen ergens dat je ook een tekst op hele woorden kan afkappen, weet iemand hier meer over?
Een tekst op hele woorden afkappen kun je doen door op een spatie te exploden. Er zijn al vrij veel topics over geweest. Gebruik de zoekfunctie!




