2017-10-22 21 views
0

Angenommen, ich habe eine api: api.example.com, dieser Code erhält tatsächlich den Inhalt von api.example.com/Browser/API/ping.php (Dies ist ein einfaches Ping-Skript). Nun möchte ich in der Lage sein, etwas wie api.example.com/ping/ site_to_ping (bedenken Sie, der Ordner "Ping" existiert nicht, noch habe ich einen Ordner für jede bestehende Website). Dies würde dann folgendes ausführen: file_get_contents("api.example.com/Browser/ping?*site_to_ping*"); Ist das möglich?PHP URL als Variable auf Root ausführen

+0

Ja, es ist möglich, URL neu zu schreiben. oder Routen, wenn Sie Frameworks wie coderigniter/laravel verwenden https://stackoverflow.com/questions/1039725/how-to-dourl-re-writing-in-php –

Antwort

0

Senden einer HTTP-POST-Anfrage mit file_get_contents ist nicht so schwer, tatsächlich: wie Sie geraten haben, müssen Sie den $site_to_ping Parameter verwenden.


Es gibt ein Beispiel in dem PHP-Handbuch angegeben, auf dieser Seite: HTTP context options(Zitat):

$postdata = http_build_query(
    array(
     'var1' => 'some content', 
     'var2' => 'doh' 
    ) 
); 

$opts = array('http' => 
    array(
     'method' => 'POST', 
     'header' => 'Content-type: application/x-www-form-urlencoded', 
     'content' => $site_to_ping_name 
    ) 
); 

$site_to_ping = stream_context_create($opts); 

$result = file_get_contents('api.example.com/Browser/ping', false, $site_to_ping); 

Grundsätzlich müssen Sie einen Stream erstellen, mit den richtigen Optionen (es gibt eine vollständige Liste auf dieser Seite), und als dritten Parameter an file_get_contents verwenden - nicht mehr ;-)


als Nebenbemerkung: g Im Allgemeinen, um HTTP-POST-Anfragen zu senden, neigen wir dazu, curl zu verwenden, die eine Menge von Optionen zur Verfügung stellt - aber Streams sind eine der schönen Dinge von PHP, die niemand kennt ... schade ...

+0

Vielen Dank für Ihre Antwort –

+0

@FlorianDeBosscher hat es funktioniert !, mach es als Antwort – M0ns1f