■
HTTPRequest()Sous la forme d'un include,
HTTPRequest() est une fonction qui permet d’
exécuter un script Php sur un serveur local ou distant et de
recevoir ou
envoyer des données.
Pour utiliser cet include vous devez avoir des connaissances en Php et avoir un serveur local ou un serveur distant.
Vous allez pouvoir consulter trois tutoriels pour :
- Recevoir un tableau envoyé par un script Php.
- Recevoir un tableau associatif envoyé par un script Php.
- Envoyer des variables à un script Php.
- Recevoir le contenu d'une requête SQL envoyé par un script Php (
En préparation actuellement)
■
Installation Commencez créer un dossier dans lequel vous allez enregistrer
HTTPRequest.pbi Code:
;HTTPRequest() Version 1.10
;Contributor Falsam & CO
;Create 08 September 2014
;Update 29 September 2017
Procedure.s HTTPRequest(HostName.s, HostFolder.s, HostPort, PhpScript.s, Method.s="GET", DataSend.s="", *CallBackError=0, Mode=#PB_Network_TCP)
Protected HostConnection.i=0
Protected HostUrl.s
Protected dwBytes, *Buffer, Buffer.s
If InitNetwork()
HostConnection = OpenNetworkConnection(HostName, HostPort, Mode)
If HostConnection
HostUrl = Method+" "
HostUrl + HostFolder + PhpScript
If DataSend<>""
HostUrl+"?"+DataSend
EndIf
HostUrl + " HTTP/1.0" + #CRLF$ + "Host: " + HostName + #CRLF$ + #CRLF$ + "Connection: Close"
If SendNetworkString(HostConnection, HostUrl, #PB_UTF8)
Delay(200)
*buffer = AllocateMemory(65535)
dwBytes = 1
While dwBytes > 0
dwBytes = ReceiveNetworkData(HostConnection, *buffer, 65535)
Wend
Else
If *CallBackError <> 0
CallFunctionFast(*CallBackError, 3) ;Error SendNetworkString()
Else
ProcedureReturn "Error"
EndIf
EndIf
CloseNetworkConnection(HostConnection)
Buffer = PeekS(*Buffer, -1, #PB_UTF8 | #PB_ByteLength)
Debug Buffer
FreeMemory(*Buffer)
ProcedureReturn StringField(Buffer, CountString(Buffer, #CRLF$) + 1, #CRLF$)
Else
If *CallBackError <> 0
CallFunctionFast(*CallBackError, 2) ;Server connection error
Else
ProcedureReturn "Error"
EndIf
EndIf
Else
If *CallBackError <> 0
CallFunctionFast(*CallBackError, 1) ;InitNetwork() Error
Else
ProcedureReturn "Error"
EndIf
EndIf
EndProcedure
■
Tutoriel : Recevoir un tableau envoyé par un script Php.On va commencer par faire simple. Sur mon serveur distant se trouve un script Php (
test0.php) qui va renvoyer un tableau.
Code:
<?php
$array = array("foo", "bar", "hello", "world");
echo json_encode($array);
?>
On déclare un tableau de variables qui sera retourné par le script php dans sa représentation JSON.
Le code Pure Basic pour recevoir les données (
test0.pb)
Code:
;Receive Php Arrays
IncludeFile "HTTPRequest.pbi"
Enumeration
#Json
EndEnumeration
Global Buffer.s, i
Global Dim Result.s(0)
Buffer = HTTPRequest("s242132022.onlinehome.fr", "/racal/", 80, "test0.php")
Debug "Control Php Array : " + Buffer
If ParseJSON(#Json, Buffer)
;Transfer the php array to an array
ExtractJSONArray(JSONValue(#Json), Result())
;Display the result
For i=0 To ArraySize(Result())
Debug Result(i)
Next
EndIf
Buffer contiendra la représentation JSON du tableau renvoyer par le script php.
Examinons les différents paramètres de la fonction HTTPRequest()
-Paramètre 1 : Nom du serveur distant.
-Paramètre 2 : Nom du dossier distant qui contient le script php
-Paramètre 3 : Port du serveur distant. En général il prend la valeur 80
-Paramètre 4 : Le script à lancer.
* N'oubliez pas de décocher l'option unicode des paramètres de compilation.
Résultat
Citation:
Control Php Array : ["foo","bar","hello","world"]
foo
bar
hello
world
■
A lire aussiTutoriel : Recevoir un tableau associatif envoyé par un script PhpTutoriel : Envoyer des données à un script Php