PHP la conversion de l'objet string
J'ai l'intention d'enregistrer un objet retourné dans un fichier, pour le téléchargement de la suite de l'examen.
Pour plus de clarté, je travaille avec un en dehors de l'API de service, et la collecte de leurs données, de l'analyse dans une autre base de données.
Voici ce que j'ai:
<?php
require('class.php');
$client = new connect2Them();
$logged_in = $client->login();
if(!$logged_in){
echo "Not connected!"; die();
}
$records = $client->get_records();
if(count($records < 1){
echo "No records found"; die();
}
$singlerecord = $records[0];
print_r($singlerecord);
?>
Le print_r() fonctionne très bien, et j'ai une très très grande quantité de données. Je suis en train de faire tout cela via la ligne de commande, donc je veux l'enregistrer dans un fichier texte.
J'ai ajouté en-dessous de mon $singlerecord:
<?php
$myFile = "reviewLater.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $singlerecord;
fwrite($fh, $stringData);
fclose($fh);
?>
Je reçois ce message d'erreur PHP:
PHP Warning: fwrite() s'attend à ce paramètre 2 à chaîne, objet donné....
Comment puis-je mettre le print_r() dans la reviewLater.txt?
OriginalL'auteur coffeemonitor | 2012-11-06
Vous devez vous connecter pour publier un commentaire.
Comme dit ci-dessus, vous pouvez serialize(), mais pour répondre à votre question:
Si vous définissez le deuxième paramètre de
print_r()
de vrai, il va y avoir une chaîne de la sortie et vous pouvez le manipuler comme tel 🙂OriginalL'auteur Prash
Les objets peuvent être sérialisés avec PHP
serialize()
de la fonction et de l'enregistrer dans un fichier. Plus tard, vous pouvezunserialize()
pour les utiliser à nouveau si vous le souhaitez.Fait amusant: C'est une façon pour les objets du cache de fichiers.
Ref: http://php.net/manual/en/function.serialize.php
var_export
.Il ya effectivement beaucoup de façons de le faire, et tout dépend du cas d'utilisation. Merci, en ajoutant que pour la réponse.
OriginalL'auteur Jeremy Harris
Si vous avez affaire à des objets simples (par exemple. pas les objets qui font référence à eux-mêmes ou sont les classes personnalisées), vous pouvez utiliser
json_encode
pour coder l'objet d'un JSON etjson_decode
à décoder plus tard.Voir http://php.net/manual/en/function.json-encode.php et http://www.php.net/manual/en/function.json-decode.php.
OriginalL'auteur Joshua Dwire
Depuis La question à propos d'un moyen pour sérialiser les données pour plus tard programmatique utilisation a été donné, je vais mentionner que si vous êtes juste une question à propos de lisible par l'homme, de sortie, vous pouvez utiliser
fwrite($fh, var_export($singlerecord, true));
pour imprimer lisible par l'homme de la représentation comme sortie de chaîne.OriginalL'auteur Mike Brant