2013-07-27 4 views
1

J'utilisais un fichier texte comme stockage/base de données pour quelques données pour mon site Web. Je l'ai sortie avec succès dans ma page web en affichant chaque contenu sur son support ou élément spécifié mais de toute façon je veux le personnaliser d'une autre manière pour répondre à mes besoins.comment mettre à jour et supprimer la chaîne spécifiée sur le fichier texte

J'ai ce code pour afficher le contenu d'un fichier texte et les placer selon son utilisation.

<?php 
$handle = @fopen("mydb.txt", "r"); 

while (!feof($handle)) // Loop til end of file. 
    { 
    $buffer = fgets($handle, 4096); 
    // Read a line. 
    list($a,$b,$c)=explode("|",$buffer); 
    //Separate string by the means of | 
} 
$aa = $a; 
$bb = $b; 
$cc = $c; 
?> 


<div id="tabs-1"> 
    <form id="dbform" action="processor.php" method="GET" > 
     <input type="hidden" name="login" value="emailsave" /> 
     <div id="error"></div> 
     <table cellpadding="3" cellspacing="3" align="center" valign="top"> 
      <tr> 
       <td valign="top"> 
        <label>Senders email:</label> 
       </td> 
       <td> 
        <input class="dainput" type="text" name="mailsenders" value="<?php echo $aa;?>" /> 
       </td> 
      </tr> 
      <tr> 
       <td valign="top"> 
        <label>Subject:</label> 
       </td> 
       <td> 
        <input class="dainput" type="text" name="mailsubject" value="<?php echo $bb;?>" /> 
       </td> 
      </tr> 
      <tr> 
       <td valign="top"> 
        <label>Message:</label> 
       </td> 
       <td> 
        <textarea style="height: 150px;" class="dainput" type="text" name="mailmsg" ><?php echo $cc;?></textarea> 
       </td> 
      </tr> 
     </table> 
     <button class="dabutton">Update</button> 
    </form> 
</div> 

modifier:

mais maintenant je veux utiliser une nouvelle ligne (\ n) comme séparateur au lieu de "|" y a-t-il de toute façon pour y parvenir?

de sorte que le contenu du fichier texte devrait être comme ça

[email protected] 
Subscriber 
hello 

au lieu de cette

[email protected] | Subscriber | hello 

Im ouvert dans toutes les suggestions, recommandations et idées, s'il vous plaît me guider à travers. Merci!

+2

Je sais que je ne réponds pas à votre question, mais je me demande. Y a-t-il une raison pour laquelle vous ne pouvez pas simplement utiliser une vraie base de données ou une pseudo-base de données, telle que SQLite (http://php.net/manual/fr/book.sqlite.php)? – wecsam

+0

Pas une réponse exacte à votre question, mais montre ce qui est nécessaire de chercher à travers un fichier texte: [Obtenir une ligne dans un fichier énorme avec PHP] (http://stackoverflow.com/q/2794056/911182) Découvrez le deux premières réponses. – Herbert

+0

@wecsam: c'est très lourd pour moi, je préfère utiliser le fichier texte parce que je pense juste que je suis juste en train de manipuler un peu de données alors mysql est un peu dans ma tête et je ne sais pas comment faire sqlite et sqlite Je n'ai pas assez de temps pour passer à sqlite. –

Répondre

0

Utilisez fgets

$handle = @fopen(FILE) 
$lines = array(); 
while (false != ($line = fgets($handle)) { 
    $lines[] = $line; 
} 

qui va lire le fichier entier et mettre chaque ligne en $lines. Si vous avez seulement 3 lignes, appelez fgets 3 fois.

+0

que voulez-vous dire "Si vous avez seulement 3 lignes, appelez fgets 3 fois." Je ne comprends pas cela facilement pourriez-vous être plus précis à ce sujet s'il vous plaît? comme je vois vos réponses près de frapper ma sortie désirée. –

+0

J'ai 7 lignes dans mon fichier texte –

+0

Selon votre exemple, vous avez trois entrées distinctes. Si vous avez un nombre indéfini de lignes, utilisez 'while'. – ep0

Questions connexes