Extraire donnée fichier txt vers un div

Résolu/Fermé
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024 - 21 oct. 2020 à 18:12
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024 - 24 oct. 2020 à 09:18
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 />
A voir également:

7 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
21 oct. 2020 à 19:11
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>";

0
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024
22 oct. 2020 à 09:17
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 oct. 2020 à 09:44
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 ?
0
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024
22 oct. 2020 à 11:58
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 oct. 2020 à 12:03
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.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
22 oct. 2020 à 12:07
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.
0
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024
22 oct. 2020 à 12:22
<!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>


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024
22 oct. 2020 à 12:24
les première <section> fonctionne parfaitement
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 oct. 2020 à 12:47
<?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>


0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 oct. 2020 à 12:47
0
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024
24 oct. 2020 à 09:18
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.
0