2017-06-11 2 views
0

ich eine Konsolenanwendung erschaffe, wo Ich mag würde Daten von einer anderen URL holen, wenn der Befehl ausgeführt wirdYii2 Konsole holt Daten von einem externen Server

Dies ist, wie ich die Konsole Controller

<?php 
    namespace console\controllers; 

    use yii\helpers\Console; 
    use yii\console\Controller; 
    ... other use imports 
    use Yii; 


class UserController extends Controller 
{ 

    public function actionInit() 
    { 
    $urltofetchdata = "https://urltofetchjsondata"; //i expect to return json 

    $datas= //how do i get the data here so that i can proceedby 

     foreach($datas as $data){ 
     $user = new User(); 
     $user->name = $data->name; 
     $user->email = $data->email; 
     $user->save(); 

    } 
    } 
    } 
umgesetzt habe

, so dass, wenn ein Benutzer:

./yii user/init 

können die Daten abgerufen werden.

+0

ist Ihre Frage nicht klären können .. was ist das Problem? – scaisEdge

Antwort

1

Wenn allow_url_fopen auf Ihrem Server aktiviert ist, können Sie file_get_contents verwenden, um die Daten aus der Ferne zu erfassen; so etwas wie dieses,

public function actionInit() 
{ 
    $urltofetchdata = "https://urltofetchjsondata"; //i expect to return json 
    $datas = json_decode(file_get_contents($urltofetchdata)); 

    foreach($datas as $data) { 
     $user = new User(); 
     $user->name = $data->name; 
     $user->email = $data->email; 
     $user->save(); 
    } 
} 

wenn allow_url_fopen auf dem Server deaktiviert ist, Sie cURL

public function actionInit() 
{ 
    $urltofetchdata = "https://urltofetchjsondata"; //i expect to return json 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_URL, $urltofetchdata); 
    $result = curl_exec($ch); 
    curl_close($ch); 

    $datas = json_decode($result); 

    foreach($datas as $data) { 
     $user = new User(); 
     $user->name = $data->name; 
     $user->email = $data->email; 
     $user->save(); 
    } 
} 
+0

danke das ist, was ich gesucht habe –

Verwandte Themen