2010-09-30 6 views
0

je réussi à créer une nouvelle ligne pour chaque seulement:PHP ECHO VARIABLE

$content1= hot("britney") ? "britney found" : ""; 
$content2= hot("gaga") ? "gaga found" : ""; 
$content3= hot("carol") ? "carol found" : ""; 

$filename = 'result.txt'; 
$handle = fopen($filename, 'a'); 
fwrite($handle, "$Content1\r\n"); 
fwrite($handle, "$Content2\r\n"); 
fwrite($handle, "$Content3\r\n"); 
fwrite($handle, "$Content4\r\n"); 
fclose($handle); 

Mais j'ai beaucoup de lignes et il fait beaucoup de modifications ... Comment pourrais-je automatiser le processus ? peut-être quelque chose comme foreach < je ne sais vraiment pas comment mettre en œuvre celui-là »

Je les codes suivants:

require("class.XMLHttpRequest.php"); 
function hot($news){ 
    $url="https://localhost/search.aspx?search=".$news.""; 
$ajax=new XMLHttpRequest(); 
$ajax->setRequestHeader("Cookie","Cookie: host"); 
$ajax->open("GET",$url,true); 
$ajax->send(null); 
if($ajax->status==200){ 
    $rHeader=$ajax->getResponseHeader("Set-Cookie"); 
    if(substr_count($rHeader, "Present!")>0) { return true; } 
}else{ return false; } 
} 

echo (hot("britney"))?"britney found":"<br>"; 
echo (hot("gaga"))?"gaga found":"<br>"; 
echo (hot("carol"))?"carol found":"<br>"; 

ET

<?php 
$filename = 'test.txt'; 
$Content = "Add this to the file\r\n"; 

echo "open"; 
$handle = fopen($filename, 'x+'); 
echo " write"; 
fwrite($handle, $Content); 
echo " close"; 
fclose($handle); 
?> 

et j'ai beaucoup echo (hot("britney"))?"britney found":"<br>"; dans mon script et à cause de cela, je veux les envoyer dans un fichier

Comment définir une chaîne pourecho (hot("britney"))?"britney found":"<br>"; pour pouvoir l'utiliser dans mon code qui envoie les informations à un fichier

i ne veulent pas la page pour imprimer quoi que ce soit à l'écran

+1

vos parenthèses sont incorrectement placées. les retirer de l'appel 'echo' entièrement – echo

+0

cela fonctionne comme ça pour moi, je reçois la réponse sur la première page – adam

+0

je veux juste obtenir la sortie dans un fichier et non l'écran – adam

Répondre

1

Juste stocker des choses dans une variable, puis écrire une variable.

// put stuff in $content instead of printing 
$content = ''; 
$content .= hot("britney") ? "britney found" : "<br>"; 
$content .= hot("gaga") ? "gaga found" : "<br>"; 
$content .= hot("carol") ? "carol found" : "<br>"; 

// write to file 
$handle = fopen($filename, 'x+'); 
fwrite($handle, $content); 
fclose($handle); 
1

$Content = hot("britney") ? "britney found" : "<br>";

0

Remplacez toutes les instructions echo par une variable, puis écrivez cette variable dans un fichier.

$Content.= (hot("britney"))?"britney found":"<br>"; 

etc ...

+0

ooo nice son travail merci beaucoup echo et Talvi – adam

+0

il semble que je ne peux pas faire de nouvelle ligne avec quoi que ce soit $ Content. = (hot ("britney"))? "britney trouvé": "
"; br ou \ n ou quoi que ce soit – adam

+0

@adam HTML requiert '
' pour EOL et ASCII requiert '\ n'. –

0

Tout d'abord, vos parenthèses sont au mauvais endroit. Devrait être comme ceci:

echo (chaud ("britney")? "Britney trouvé": "
");

Si vous souhaitez capturer votre écho et d'autres sorties, utilisez les méthodes ob_start et ob_flush. Mais si vous faites des requêtes HTTP à ce fichier, il ne se répercutera pas sur l'écran.

Si c'est ce que vous vouliez dire, alors c'est votre réponse.

+0

il fonctionne maintenant, j'essaye d'ajouter une nouvelle ligne après chaque découverte – adam

+0

je suis preety nouveau à php je ne sais pas utiliser ob_start et ob_flush pourtant – adam

+0

je suis preety nouveau à php je ne sais pas utiliser ob_start et ob_flush encore – adam

1

Comme d'autres l'ont déjà indiqué, placez le contenu de vos échos dans une variable, puis écrivez-le dans un fichier. Il y a deux façons de faire ça.Vous pouvez utiliser des gestionnaires de fichiers:

<?php 
// "w" will create the file if it does not exist and overwrite if it does 
// "a" will create the file if it does not exist and append to the end if it does 
$file = fopen('/path/to/file', 'w'); 
fwrite($file, $content); 
fclose($file); 

Une façon un peu plus simple est d'utiliser file_put_contents():

<?php 
file_put_contents('/path/to/file', $contents); 

Et si vous voulez ajouter au fichier:

<?php 
file_put_contents('/path/to/file', $contents, FILE_APPEND); 

En ce qui concerne la parenthèse vous avez autour du conditionnel pour vos échos, je préfère quelque chose de plus comme ce qui suit:

<?php 
$contents = ''; 
$contents .= (hot('britney') ? 'britney found' : '<br />'); 

Si vous voulez pouvoir lire facilement le fichier en dehors d'un navigateur Web, vous devez utiliser une nouvelle ligne au lieu d'un <br /> pour séparer votre sortie. Par exemple:

<?php 
$contents = ''; 
$contents .= (hot('britney') ? 'britney found'."\n" : "\n");