2017-10-20 4 views
1

Hii Je travaille avec angular2 et php. Dans mon projet, je veux publier le json dans la page php, et y accéder du côté serveur. Comment puis-je le rendre possible ??Le serveur PHP accède à la valeur affichée de l'Angular2

dans mon angular2, quand je clique sur le bouton SaveData() sera appelé.

SaveData() 
    { 
     const headers = new Headers(); 
     headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');  
     let body = JSON.stringify(this.Cost); 
     this.http.post('http://192.168.0.100:80/php/test.php',body,{headers}) 
     .subscribe(
     data => console.log('Received:' + data), 
     err => console.log(err), 
     () => console.log('Call Complete') 
    ); 
    } 

un dans ma page PHP comme je ..

<?php 

header('Access-Control-Allow-Origin: *'); 
header('Content-Type: application/json'); 
$post = $_POST['body']; 
$fp = fopen('a.txt', 'w'); 
fwrite($fp,$post); 
fclose($fp); 

?> 

Quelle est la meilleure solution pour cela ??

Répondre

2

Lorsque vous publiez des données JSON vous pouvez le récupérer manuellement à l'aide

$post = json_decode(file_get_contents("php://input"),true); 

la ligne ci-dessus vous renvoyer les données JSON affichées en format tableau.

si vous voulez vérifier ce qui est affiché, vous pouvez utiliser

print_r($post); 

Pour enregistrer dans le fichier JSON modifier le code ci-dessous

$post = file_get_contents("php://input"); 
$fp = fopen('a.json', 'w'); 
fwrite($fp,$post); 
fclose($fp); 
+0

Merci pour votre temps @ Gautam. Mes données de publication sont une chaîne json. Je veux l'enregistrer en tant que fichier json. C'est possible ? –

+0

Oui, c'est possible. Vérifiez simplement le code édité. – Gautam