Extraire donnée fichier txt vers un div [Résolu]

Signaler
Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020
-
Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020
-
Bonjour

Je reviens vers vous pour un nouveau problème.

Je prepare un livre de temoignage.

J'utilise <canvas> (très bien pour faire un livre)

Je voudrais dans chaque page, inserer deux messages du fichier messages.txt.

La creation de la nouvelle page se fait mais j'ai une erreur ressource id#4

Pourriez m'aider a mettre dans chaque page deux messages en creant chaque fois une nouvelle pages?

Je vous remercie par avance de votre aide et de votre attention, sachant que nombre d'entre vous sont bénévoles. Un grand merci pour faire que cela continue d'exister.

A+


mon code

<?php


function extraireMessage($message)
{
$fichier = fopen("messages.txt","r");

/* caractères a remplacer*/
$aremplacer = array("<hr />");

/* remplacer par un & */

$enremplacement = "&";

/* je remplace */
$sansponctuation = trim(str_replace($aremplacer,
$enremplacement, $message));

/* on coupe la chaîne en fonction du séparateur,*/
$separateur = "#[&]+#";
$mots = preg_split($separateur, $sansponctuation);

return $mots;
}

$message = extraireMessage($fichier);
/* je cree une nouvelle page*/
echo "<section><div>;
foreach($message as $valeur)
{
echo "$valeur<br>";
}
echo "</section></div>";
?>


le fichier messages.txt

<b>Pierre </b> a écrit le : 20/10/2020<br/> Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre <br />
<hr />

<b>Michel </b> a écrit le : 19/10/2020<br />
Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel <br />
<hr />

<b>Gerard </b> a écrit le : 19/10/2020<br />Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard Gerard <br />
<hr />

<b>Judith </b> a écrit le : 19/10/2020<br />Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith Judith <br />
<hr />

<b>Robert </b> a écrit le : 19/10/2020<br />Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert Robert <br />
<hr />

7 réponses

Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020
2 912
Bonjour,

Déjà, merci de bien vouloir éditer ton message pour corriger les balises de code ( en y précisant le langage)
Explications à lire entièrement : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, pourrais tu nous donner le message d'erreur complet ?
Je ne vois pas d'où pourrait provenir ce message d'erreur dans le code que tu nous montres.

Par contre, je vois des erreurs.
Il manque une quote fermante à la ligne
echo "<section><div>; 

et tu as inversé la fin de section et de div dans la ligne
echo "</section></div>";

Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020

Bonjour Jordane.

Voici le code php


<?php
						
						
						function extraireMessage($message)
						{    
							$fichier = fopen("messages.txt","r");
							
						/* caractères que l'on va remplacer (tout ce qui sépare les messages, en fait) */
							$aremplacer = array("<hr />");
 
						/* on va les remplacer par un & */
 
							$enremplacement = "&";
 
      
						/* on fait le remplacement (comme dit ci-avant), et on supprime les espaces de
						// début et de fin de chaîne (trim) */
							$sansponctuation = trim(str_replace($aremplacer, $enremplacement, $message));
   
  
   
						/* on coupe la chaîne en fonction d'un séparateur, et chaque élément est une
						// valeur d'un tableau */
							$separateur = "#[&]+#"; // 1 ou plusieurs espaces
							$mots = preg_split($separateur, $sansponctuation);
      
							return $mots;
						}
  
							$message = extraireMessage($fichier);
							echo "<section><div>"; 
									 
							foreach($message as $valeur)
							{
							echo "$valeur<br>";
							}
							echo "</div></section>";
						?> 


Concernant le message d'erreur, c'est celui que j'ai donné. ressource id#4 La fonction créé la nouvelle page et l'erreur s'écrit dans la nouvelle page.

Merci Jordane.

Cordialement
Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020
2 912
Si le message d'erreur était une erreur PHP ... tu aurais beaucoup plus d'infos.. comme, par exemple, le numéro de la ligne concernée.
Je suppose donc que ce n'est pas une erreur php....

Au cas où, pourrais tu activer l'affichage des erreurs PHP en plaçant ces lignes au début de ton ficher php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);



Peux tu également ajouter une vérification sur l'existence du fichier dans ton code php
function extraireMessage($message) 	
{    
  $file = "messages.txt";
  if(file_exists($file)){
    $fichier = fopen($file,"r");
  }else{
   echo " Fichier introuvable " . $file . PHP_EOL;
   exit;   
  }
							



Peux tu nous en faire une capture écran ?
Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020

message d'erreur dans la page du livre



j'ai suivi tes indications.

j'ai le message suivant erreur php


et la ligne 125 est située aprés le <html>



Je prepare cette page web avec wamp seveur
Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020
2 912
Comme je te l'ai déjà indiqué... tu dois nous poster le code en utilisant les balises de code et non en image... car avec une image on ne peut rien en faire !
Donc :
Déjà, merci de bien vouloir éditer ton message pour corriger les balises de code ( en y précisant le langage)
Explications à lire entièrement : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

De plus, il nous faut le code COMPLET de ce fichier.
L'erreur est certainement liée à une fermeture d'accolade ou de parenthèse manquante ailleurs dans ton code...
mais il n'y a qu'avec le code complet qu'on pourra le voir.
Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020
2 912 >
Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020

A noter que.. concernant l'utilisation des balises de code... on te l'a déjà dit depuis plusieurs années...
par exemple en 2017 : https://forums.commentcamarche.net/forum/affich-34684758-js-ne-reconnait-pas-une-variable-php#22
A un moment.. va falloir commencer à bien te le rentrer dans le crâne.. c'est un peu fatiguant de devoir en permanence répéter les mêmes choses.
Ce petit "pique" étant fait,.. j'attends ton code pour pouvoir t'aider.
Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020

<!DOCTYPE html>
<html>
    <head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<link type="text/css" href="css/pageflip.css" rel="stylesheet" media="screen" />
		<style type="text/css" src="messages,js"> </style>
		
	</head>
	<body>
	<?php
						error_reporting(E_ALL);
						ini_set('display_errors', TRUE);
						ini_set('display_startup_errors', TRUE);
	?>					
		<div id="book">
			<canvas id="pageflip-canvas"></canvas>
			<div id="pages">
				<section>
					<div>
						<h2>TEMOIGNAGE</h2>
						<img src="image/fond.jpg" width="100%">
					</div>
				</section>
				<section>
					<div>
						<?php
						$consultez="messages.txt";
						readfile($consultez);
						?>
					</div>
				</section>
				<section>
					<div>
						
						<p> 
						Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre.<br>
						Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre .

						Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre <br />
						<b>Pierre </b> a écrit le : 20/10/2020<br/></p>

						<p>
						Michel Michel Michel Michel Michel Michel Michel Michel Michel 

						Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel 

						Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel <br />
						<b>Michel </b> a écrit le : 19/10/2020<br /></p>
					</div>
				</section>
				
				
				<?php
					function extraireMessage($message)
						{    
							
							$file = "messages.txt";
							if(file_exists($file)){
							$fichier = fopen($file,"r");
							}else{
							echo " Fichier introuvable " . $file . PHP_EOL;
							exit;   
						
														
						/* caractères que l'on va remplacer (tout ce qui sépare les messages, en fait) */
							$aremplacer = array("<hr />");
 
						/* on va les remplacer par un & */
 
							$enremplacement = "&";
 
      
						/* on fait le remplacement (comme dit ci-avant), et on supprime les espaces de
						// début et de fin de chaîne (trim) */
							$sansponctuation = trim(str_replace($aremplacer, $enremplacement, $message));
   
  
   
						/* on coupe la chaîne en fonction d'un séparateur, et chaque élément est une
						// valeur d'un tableau */
							$separateur = "#[&]+#"; // 1 ou plusieurs espaces
							$mots = preg_split($separateur, $sansponctuation);
      
							return $mots;
						}
  
							$message = extraireMessage($fichier);
							echo "<section><div>"; 
									 
							foreach($message as $valeur)
							{
							echo "$valeur<br>";
							}
							echo "</div></section>";
						?> 
			</div>
		</div>
		<script type="text/javascript" src="js/pageflip.js"></script>
	</body>
<html>


Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020

les première <section> fonctionne parfaitement
Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020
2 912
<?php
//Affichage des erreurs PHP ( à placer AU DEBUT du script )
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

//Fonctions
function extraireMessage($file)
{    
  

  if(file_exists($file)){
    $fichier = fopen($file,"r");
  }else{
    echo " Fichier introuvable " . $file . PHP_EOL;
    exit;   
  }
                
/* caractères que l'on va remplacer (tout ce qui sépare les messages, en fait) */
  $aremplacer = array("<hr />");

/* on va les remplacer par un & */
  $enremplacement = "&";

/* on fait le remplacement (comme dit ci-avant), et on supprime les espaces de
// début et de fin de chaîne (trim) */
  $sansponctuation = trim(str_replace($aremplacer, $enremplacement, $message));

/* on coupe la chaîne en fonction d'un séparateur, et chaque élément est une
// valeur d'un tableau */
  $separateur = "#[&]+#"; // 1 ou plusieurs espaces
  $mots = preg_split($separateur, $sansponctuation);

  return $mots;
}
//---------------------------------------------//
//début du script
//---------------------------------------------//

//initalisation des variables
$fichier="messages.txt";

//récupération des messages
$message = extraireMessage($fichier);


?>
<!DOCTYPE html>
<html>
    <head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<link type="text/css" href="css/pageflip.css" rel="stylesheet" media="screen" />
		<style type="text/css" src="messages,js"> </style>
		
	</head>
	<body>			
		<div id="book">
			<canvas id="pageflip-canvas"></canvas>
			<div id="pages">
				<section>
					<div>
						<h2>TEMOIGNAGE</h2>
						<img src="image/fond.jpg" width="100%">
					</div>
				</section>
				<section>
					<div>
						<?php
					 if(file_exists($fichier)){
             readfile($fichier); 
          }else{
            echo " Fichier introuvable " . $fichier . PHP_EOL;
            exit;   
          }
						?>
					</div>
				</section>
				<section>
					<div>
						<p> 
						Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre.<br>
						Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre .

						Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre Pierre <br />
						<b>Pierre </b> a écrit le : 20/10/2020<br/></p>

						<p>
						Michel Michel Michel Michel Michel Michel Michel Michel Michel 

						Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel 

						Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel Michel <br />
						<b>Michel </b> a écrit le : 19/10/2020<br /></p>
					</div>
				</section>
				
				
				<?php
							echo "<section>
                     <div>"; 
									 
                foreach($message as $valeur) {
                  echo "$valeur<br>";
                }
              echo   "</div>
                   </section>";
						?> 
			</div>
		</div>
		<script type="text/javascript" src="js/pageflip.js"></script>
	</body>
<html>


Messages postés
29924
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 novembre 2020
2 912
Messages postés
58
Date d'inscription
mardi 6 juin 2017
Statut
Membre
Dernière intervention
24 octobre 2020

J'ai resolu mon problème.

J'ai inclus les balises dans le "POST" du formulaire et un php include() dans ma page.

Ce n'est peut etre pas trés profesionnel ni très beau, mais cela fonctionne très bien et c'est je que je voulais.

Merci pour les commentaires et pour votre aides.