Je dois exécuter une commande Linux more
en PHP à partir d'un décalage particulier, formater le résultat et afficher le résultat dans le navigateur.L'exécution de la commande système en PHP diffère en utilisant le navigateur et en utilisant la ligne de commande
Mon code ci-dessus est:
<html>
<head>
<META HTTP-EQUIV=REFRESH CONTENT=10>
<META HTTP-EQUIV=PRAGMA CONTENT=NO-CACHE>
<title>Runtime Access log</title>
</head>
<body>
<?php
$moreCommand = "more +3693 /var/log/apache2/access_log | grep -v -e '.jpg' -e '.jpeg' -e '.css' -e '.js' -e '.bmp' -e '.ico'| wc -l";
exec($moreCommand, $accessDisplay);
echo "<br/>No of lines are : $accessDisplay[0] <br/>";
?>
</body>
</html>
La sortie du navigateur est: Nombre de lignes sont les suivantes: 3428 (Ceci est faux)
Lors de l'exécution de la même commande en ligne de commande donne un sortie différente. Mon extrait de code pour le même est:
<?php
$moreCommand = "more +3693 /var/log/apache2/access_log | grep -v -e '.jpg' -e '.jpeg' -e '.css' -e '.js' -e '.bmp' -e '.ico'| wc -l";
exec($moreCommand, $accessDisplay);
echo "No of lines are : $accessDisplay[0] \n";
?>
La sortie à la ligne de commande est: Non de lignes sont: 279 (Ceci est correct)
Lors de l'exécution de la même commande directement en ligne de commande, me donne sortie de 279.
Je n'arrive pas à comprendre pourquoi la sortie de la même commande est incorrecte dans le navigateur. C'est en fait donner le nombre de lignes, en ignorant le paramètre offset.
Salut Wrikken, merci pour votre réponse. Ici mon intention n'est pas de compter les lignes mais d'obtenir les lignes mêmes. La commande de mon programme est: $ moreCommand = "more + $ existingWordCount/var/log/apache2/access_log | grep -v -e '.jpg' -e '.jpeg' -e '.css' -e '. js '-e' .bmp '-e' .ico '". J'ai utilisé "wc -l" juste pour faciliter la mise en évidence de mon problème et pour montrer la différence b/w ma ligne de commande o/p et navigateur o/p J'ai essayé d'utiliser l'option -f & -num mais elle a pas aidé à servir le but. Le script php ignore toujours le paramètre + linenum. Y a-t-il une autre option disponible? – Amit
Ah, maintenant je vois. Je peux reproduire le problème ici, aucune idée pourquoi ce serait. Ajout de la seule autre solution qui fonctionne que je pourrais penser à la réponse. – Wrikken