Base de fichier et non base de données

Eléphant du PHP | 258 Messages

16 oct. 2006, 17:30

Bonjour à tous et à toute

Bon je rentre directement dans le vif du sujet je voudrais creer un base fichier pour stocker des données.

Exemple on a un texte en page d'accueil qui est stocker dans un fichier texte et se que je voudrais c'est faire un editeur (comme celui ou je suis en train d'ecrire se message) pour pouvoir modifier mon fichier texte et ainsi me retrouver avec mon texte modifier en page d'accueil.

Je sais pas si on à le droit de faire de la pub ou pas mais le logiciel GuppY utilise se proceder.

Merci de votre aide. A+ :lol:

Mammouth du PHP | 1339 Messages

17 oct. 2006, 02:06

Bon sinon tu me fais un message privé et on se fait un TeamViewer

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 oct. 2006, 09:46

Regarde les fonction fopen() pour ouvrir un fichier et lire son contenu et fwrite() pour écrire dans un fichier... tu pourras ainsi proposer le contenu de ton fichier dans un champ textarea (ou un wysiwyg si tu veux un éditeur html), le modifier et enregistrer les modifications dans le fichier :)

Eléphant du PHP | 258 Messages

17 oct. 2006, 16:35

Merci a ryle et elie mais quand vous dite un champ textearea je voulais savoir si le gras, l'italique etc vous m'avez compris si se sont des fonction php ou plutot du javascript car moi ce que je voudrais faire c'est comme la pageou je suis en se moment (Poster une reponse) .

Merci beaucoup pour votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 oct. 2006, 17:06

Le champ <textarea> c'est juste une boite dans laquelle tu peux mettre du texte, comme celle que tu utilises pour poster un message sur le forum.

Ici, la notion de gras, italique et autre est géré à l'aide du BBCode. Au lieu du tag html <b></b> pour mettre en gras, on utilise le code [ b ][ /b ]. Cela permet d'interdire le html (pour éviter que de petits malins n'en usent ou abusent) et autorise malgré tout un peu de mise en forme. Lorsque les messages sont affichés, les [ b ] sont remplacés automatiquement en php par des <b> pour obtenir le html affiché :)

La solution Wysiwyg (principallement javascript) te permet de générer directement du html dont tu vois le résultat directement à l'écran avant de l'enregistrer (ce qui est généralement plus agréable pour des néophytes : voir le gras est plus explicite que supposer que [ b ] mettra le texte en gras ;) )

Eléphant du PHP | 258 Messages

17 oct. 2006, 17:53

Merci ryle
Bon si j'ai bien tout compris le fonctionnement.

J'ai ma page news en php avec une endroit ou le texte s'affiche, je veut le change se texte donc je cree une page php avec un texte area puis des icons gras italique etc... puis un bouton changer texte.

Bon voila mais question :

Comment le bouton gras c'est que c'est le texte dans l'area qu'il faut mettre en gras?

Avec le bouton "changer texte" sa envoi le texte , le mieux et dans une base de donnée ou un fichier texte?

Et pour les couleur texte comment cela ce passe?

Et il possible d'integré des photos?

Je pose toutes ses question car au lieu de telecharger un script deja tout pret, l'installer sans rien comprendre au fonctionnement , ne favorise pas la comprehention du php ou autre et comme je suis dans la section debutant!!!

Eléphant du PHP | 258 Messages

18 oct. 2006, 12:45

Bon voila j'ai trouvé pour mettre le texte entre les balises [b][/b]

[code]
<a href="#" onclick="addText(' [b][/b] ');return(false)">
<imgsrc="../icones/images/bold.png" width="23" height="23" border="0"></a>
[/code]


Enfin quand je dis trouver par exemple pour le mot "merci" il me met

[b][/b] et non [b]merci[/b] comment cela ce fait?

Et est il possible de l'afficher directement en gras?

Et comment je recupere le message?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 oct. 2006, 14:18

Pour mettre tes balises autour du texte selectionné, il te faut capturer le texte et le remplacer en lui ajoutant tes balises. Ca se fait en javascript, ce n'est pas forcément ce qu'il y a de plus simple, ni ce qu'il y a de plus passionant, mais si cela t'interesse de le faire entièrement par toi même, il te faut chercher du côté de la fonction "document.selection.createRange()"

Pour l'afficher directement en gras, il ne faut pas simplement un champ textarea, mais un éditeur wysiwyg (What You See Is What You Get : Ce que tu vois correspond à ce que tu auras). Il se divise en fait en deux parties : la première est un champ (généralement caché) qui contient le code de ta page (avec les balises html), la seconde est l'apperçu (modifiable) du code généré. Ainsi, quand tu mets en gras une partie du texte, visuellement celui-ci apparait en gras, et dans ton code tu trouveras les balises html <b></b> autour du texte correspondant.

Pour récupérer le message, il te suffit simplement de mettre un formulaire autour, d'ajouter un bouton submit pour envoyer le formulaire à un script php qui enregistrera les informations en base ou dans ton fichier :)

Pour les photos, tu peux en inclure également en spécifiant leur url (aussi bien en bbcode qu'en wysiwyg). Cela implique donc que les photos soient déjà en ligne sur internet, mais rien ne t'empêche de proposer un système d'upload de fichier sur ton serveur pour pouvoir y déposer un fichier dont on utilisera l'url ensuite :)

Enfin, quant au choix base ou fichier, y a pas vraiment de meilleure solution, tout dépend de l'usage que tu en auras. Une recherche est plus rapide dans une base de données, mais pour de l'affichage simple l'inclusion d'un fichier demandera moins de ressource qu'une connexion à la base, etc.

Eléphant du PHP | 258 Messages

18 oct. 2006, 15:04

Merci tyle toute devient plus clair enfin moins trouble
.je vais voir tout ca et je vous tient au courant

Eléphant du PHP | 258 Messages

18 oct. 2006, 15:25

Bon voila je sais vous alez dire que je change d'avis comme de code php mais j'ai resolu mon probleme des b avec se code trouver

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript"> /*function storeCaret(text) { // voided } */ function AddText(startTag,defaultText,endTag) { with(document.poster) { if (message.createTextRange) { var text; message.focus(message.caretPos); message.caretPos = document.selection.createRange().duplicate(); if(message.caretPos.text.length>0) { //gère les espace de fin de sélection. Un double-click sélectionne le mot //+ un espace qu'on ne souhaite pas forcément... var sel = message.caretPos.text; var fin = ''; while(sel.substring(sel.length-1, sel.length)==' ') { sel = sel.substring(0, sel.length-1) fin += ' '; } message.caretPos.text = startTag + sel + endTag + fin; } else message.caretPos.text = startTag+defaultText+endTag; } else message.value += startTag+defaultText+endTag; } } </script>


Quelqun pourrait-il me l'explique car comme ryle me le disais il y a la fonction "document.selection.createRange()" bon je sais que c'est du javascript et que l'on est sur un site php mais bon j'essaye quand meme.


Petit complement d'info c'est pour changer mon message d'accueil quand je le veut donc en definitif je pense que je vais prendre une base de donnée.

ensuite pour recuperer le message j'ai deux trois questions a poser et sa c'est du php.

Comment le base de données recuperera t-elle mon texte avec les b(je suppose que oui)?

C'est dans la page qui affiche le texte dois je mettre un script particulier pour pouvoir afficher le texte avec les gras,italiques etc..?


Merci et a tres vite.

Eléphant du PHP | 258 Messages

18 oct. 2006, 17:42

bon j'arrive à enregistrer bans ma base de donnée un texte sous forme :

Salut les [b]loulous[/b]


Mais dans ma page ou doit s'affiche mon texte je n'arrive pas a transformer les[b][/b] en gras quel sera la syntax et la fonction à employer SVP

Merci d'avance

ViPHP
ViPHP | 1961 Messages

18 oct. 2006, 17:55

Bonjour,
Avant l'affichage, tu peux par exemple utiliser
str_replace()
pour remplacer les [ b] par <b> et les [ /b] par </b>

Mais aussi les expressions régulières
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 258 Messages

18 oct. 2006, 19:06

Merci mais qu'entend tu par expression reguliere

Pour le code j'ai utiliser ca mais sa ne marche pas:

Code : Tout sélectionner

$txt = preg_replace("!\[b\](.+)\[/b\]!isU" , "<strong>$1</strong>", $txt);

Eléphant du PHP | 258 Messages

18 oct. 2006, 20:15

j'ai essayé sa
<?php $txt =  preg_replace("/  /i" , "<strong>$txt</strong>", $txt);

?>
Mais sa m'affiche l'erreur

Warning: Unknown modifier 'b' in c:\program files\easyphp1-7\www\sitedebase\index.php on line 20

Auriez vous une idée SVP merci

Eléphant du PHP | 258 Messages

18 oct. 2006, 20:26

j'ai trouvai j'avais une boulette au debut mais avec celle la


$txt = eregi_replace("[b](.*)[/b]","<strong>\\1<strong>",$txt);


il m'affiche

Notice: Array to string conversion in c:\program files\easyphp1-7\www\sitedebase\index.php on line 20


toujours personne pour m'aider