Versio

eerste 7 woorden tonen

Overzicht Reageren

Leendert

leendert

19/03/2007 21:20:00
Quote Anchor link
hallo allemaal.

Ik heb dit scriptje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
$query= "SELECT comment_message FROM fusion_comments LIMIT 5";
$resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");


  while($obj = mysql_fetch_object($resultaat))
  {
     echo".$obj->comment_message.";
  }


Dit werkt perfect

Maar wat ik nu wil is dat alleen de eerste 7 woorden geprint worden.
Dus in de echo in die while-lus.

Dus de eerste 7 woorden wat in de variabele $obj->comment_message zit.

Hoe doe ik dit?
 
PHP hulp

PHP hulp

24/05/2012 13:32:07
Gesponsorde koppelingen:
 
Jan Koehoorn

Jan Koehoorn

19/03/2007 21:35:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
    $woorden
= explode (' ', $obj->comment_message);
    for ($i = 0; $i < 7; $i++) {
        echo $woorden[$i] . ' ';
    }

?>
 
Leendert

leendert

19/03/2007 21:54:00
Quote Anchor link
ja dat werkt!

Hoe doek ik het met tekens in plaats van woorden

Dus bijv 20 tekens, want ik zie nu als het allemaal hele lange woorden zijn dat het ene beetje fout gaat.
 
Jan Koehoorn

Jan Koehoorn

19/03/2007 22:08:00
Quote Anchor link
Dan werk je gewoon met substr.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    echo substr (0, 20, $obj->comment_message);
?>
 
Baarr

Baarr

19/03/2007 23:04:00
Quote Anchor link
Euh jan,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    echo substr ($obj->comment_message, 0, 20);
?>


Je ziet het verschil wel ;-)
 
Jan Koehoorn

Jan Koehoorn

19/03/2007 23:06:00
Quote Anchor link
Hahaha, klopt! Argumentenvolgorde door elkaar gehaald, pardon ;-)
 
Willem Jan Z

Willem Jan Z

19/03/2007 23:51:00
Quote Anchor link
Woorden gedeelte kan sneller:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    echo implode(' ',explode(' ',$tekst,7));
?>

Niet getest, maar moet werken volgens mij..
 
Jan Koehoorn

Jan Koehoorn

20/03/2007 08:24:00
Quote Anchor link
@ WillemJan: die zal niet werken. Kijk maar op php.net:
Quote:
array explode ( string $delimiter, string $string [, int $limit] )

Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string delimiter. If limit is set, the returned array will contain a maximum of limit elements with the last element containing the rest of string.

Jouw code levert dus als resultaat precies dezelfde string op als waarmee je begint:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    $tekst
= 'Hallo allemaal jongens. Hoe gaat het ermee? Met mij gaat het uitstekend!';
    $test = explode (' ', $tekst, 7);
    echo '<pre>';
    print_r ($test);
    echo '</pre>';
    echo implode(' ',explode(' ',$tekst,7));
?>

output:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [0] => Hallo
    [1] => allemaal
    [2] => jongens.
    [3] => Hoe
    [4] => gaat
    [5] => het
    [6] => ermee? Met mij gaat het uitstekend!
)

Hallo allemaal jongens. Hoe gaat het ermee? Met mij gaat het uitstekend!
 
Willem Jan Z

Willem Jan Z

20/03/2007 08:34:00
Quote Anchor link
Tsss, flauw hoor :)
[me]moet eens leren de notes te lezen[/me]
 
Robert Deiman

Robert Deiman

20/03/2007 09:39:00
Quote Anchor link
Voor het aantal tekens kan het ook gewoon met MySQL:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
//geeft 1e 20 tekens uit je kolom comment_message terug als short_comment
SELECT SUBSTRING(comment_message,0,20) AS short_comment

- comment_message is de kolom die je wilt selecteren
- 0 is het startpunt voor de ingekorte tekst
- 20 is het aantal tekens dat vanaf het startpunt worden teruggegeven.



En voor een vast aantal woorden kan het ook met MySQL:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
//selecteerd de 1e 5 woorden in de comment_message
SELECT SUBSTRING_INDEX(comment_message,' ',5)

- comment_message is wederom de kolom die je wilt selecteren
- ' ' is het teken waarop de woorden (in dit geval) gescheiden zijn
- 5 betekend dat die stopt met selecteren van tekst direct voor de 5e keer dat het scheidingsteken (de spatie) voorkomt.
 



Overzicht Reageren

Get Adobe Flash player