site web style journal

Eléphanteau du PHP | 40 Messages

21 juin 2005, 16:01

bonjour,

je voudrais realiser un site type journal. c'est a dire que je voudrais afficher le debut d'un article dans ma page, puis lorsque l'on clique sur ce ce debut d'article, on affiche l'article complet. l'article est stocke dans une BDD.
est il possible de faire un script qui recupere seulement le debut de l'article (la premiere phrase par exemple) puis qui affiche un lien 'voir la suite'.

merci a qui pourra m'aiguiller.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 juin 2005, 16:13

oui c'est possible

tu as des outils tout prêts style Dotclear
sinon tu peux développer, il faut que tu réfléchisses aux informations que tu veux stocker/afficher et construire ta base de données derrière

ensuite afficher la première phrase, c'est du détail... tu peux très facilement ne sélectionner que les n premiers caractères de l'article sur la page d'accueil, et faire une page qui affiche l'article en entier

Eléphanteau du PHP | 40 Messages

21 juin 2005, 16:24

merci pour ta reponse

ma base est prete mais je bloque sur le script. peux tu me dire comment faire le script qui recupere les n premiers caracteres ou tous les caracteres avant le premier point '.' (pour pas couper la phrase)?

a+

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 juin 2005, 16:31

pour sélectionner les n premiers caractères regarde ici c'est justement la question :
http://www.phpfrance.com/forums/voir_sujet-4639.php

pour couper juste au premier point je ne sais pas il doit y avoir plusieurs solutions...

genre un explode avec comme délimiteur le point, et tu ne prends que le premeir morceau

à creuser, je ne sais pas là comme ça :oops:

http://fr.php.net/manual/fr/function.explode.php

Eléphanteau du PHP | 40 Messages

21 juin 2005, 17:32

ca fonctionne avec explode, bien qu'il ne prenne pas le point avec, mais c'est pas trop grave.
par contre je n'arrive pas à selectionner n caracteres. je jveux le faire en php pas sql.

?????

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 juin 2005, 17:37

alors regarde du coté de printf/sprintf

http://fr.php.net/manual/fr/function.sprintf.php
http://fr.php.net/manual/fr/function.printf.php

avec explode tu rajoutes le point à ta chaine récupérée et le tour est joué ;)

Eléphanteau du PHP | 40 Messages

21 juin 2005, 18:03

ok pour explode.

je capte pas comment faire avec printf/sprintf.

mais ca marche avec ca : string substr (string string, int start [, int length])

Eléphant du PHP | 104 Messages

21 juin 2005, 18:18

Salut,

- substr() peut couper un mot en plein milieu ;
- L'éclatement de la chaîne sur un signe (le point) n'est pas toujours pertinente car le point n'est pas toujours là dans une chaîne pour indiquer la fin d'une phrase. On retrouve le point dans les adresses email et les noms de domaine ou encore dans les nombres formatés avec le point comme séparateur, les points de suspension... le résultat est aléatoire.

Il s'agit d'une base de données d'articles, il y a une autre solution qui tient dans la structure d'un article justement. Un article peut être composé de différents éléments, les plus courants sont le sur-titre, le titre, le sous-titre, le chapeau, le corps et la signature (date, auteur).
Pour moi une bonne solution est d'utiliser le chapeau pour ce que tu souhaite faire. En plus un bon chapeau donne bien plus d'informations sur l'article que les premiers n mots, voire la première phrase. C'est donc en plus d'être bien mieux gérable informatiquement, un apport pour le lecteur et les moteurs de recherche.

Eléphanteau du PHP | 40 Messages

21 juin 2005, 18:27

j'etais parti sur cette voie au debut, mais je trouvais ca trop "manuel". je pensais qu'il y avait une solution miracle en php.

ca doit etre la meilleure solution effectivement. merci