Seite 1 von 1
PHP und PB
Verfasst: 13.03.2015 10:13
von Angelo
Kann ich in PB einen String an eine PHP-Datei senden und dann die Meldung dieser PHP-Datei abfangen?
In Basic4Android ist das leicht möglich. Ich füge hier mal den B4A-Code ein, damit man sehen kann, was ich auch in PB machen möchte.
PHP-Datei hello.php
Code: Alles auswählen
<?php
$name = $_GET["my_name"];
exit('Hello, ' . $name . '! Wie geht's?');
?>
Hier ist der Basic4Android-Code. In Activity_Create wird ein Http-Objekt definiert und ein Jobname ("Say_hello") festgelegt. Über die Download2-Methode wird eine Variable "my_name" und deren Wert "Angelo" an hello.php übergeben. In JobDone wird dann die Meldung der PHP-Datei abgefangen und angezeigt.
Code: Alles auswählen
Sub Activity_Create(FirstTime As Boolean)
Dim myJob As HttpJob
myJob.Initialize("Say_hello", Me)
'Send a GET request:
myJob.Download2("http://my_domain/hello.php", Array As String("my_name", "Angelo"))
End Sub
Sub JobDone (JobEvaluation As HttpJob)
Dim meldung As String
If JobEvaluation.Success = True Then
If JobEvaluation.JobName = "Say_hello" Then
meldung = JobEvaluation.GetString
ToastMessageShow(meldung, True)
End If
End If
End Sub
Re: PHP und PB
Verfasst: 13.03.2015 14:28
von Kiffi
das geht beispielsweise hiermit:
Code: Alles auswählen
EnableExplicit
Define TempFileName.s
Define FF
Define TempFileContent.s
TempFileName = GetTemporaryDirectory() + "hello.tmp"
If ReceiveHTTPFile("http://my_domain/hello.php?my_name=Angelo", TempFileName)
FF = ReadFile(#PB_Any, TempFileName)
If FF
TempFileContent = ReadString(FF, #PB_File_IgnoreEOL)
Debug TempFileContent
CloseFile(FF)
DeleteFile(TempFileName)
Else
Debug "!ReadFile()"
EndIf
Else
Debug "!ReceiveHTTPFile()"
EndIf
(ungetestet; müsste aber laufen)
Du kannst auch das
GetHTTPFile.pbi-Modul von Thorsten1867 benutzen. Das bietet Dir die Möglichkeit, Dateien direkt in den Speicher herunterzuladen und / oder Dateien im Hintergrund herunterzuladen.
Eine weitere Möglichkeit wäre, direkt mit den
PB-Network-Befehlen zu arbeiten. Sag Bescheid, wenn Dir das mehr behagt.
Grüße ... Peter
Re: PHP und PB
Verfasst: 13.03.2015 14:54
von Angelo
Danke, Kiffi, für Deine Antwort. Der Hintergrund meiner Frage ist, dass ich mit einer PHP-Datei auf eine Tabelle in einer MySQL-DB zugreifen will, also Datensätze hinzufügen und auch Abfragen machen will. Das Programmieren einer entsprechenden App mit Basic4Android ist ziemlich straightforward, weil man mit der Download2-Methode eine php-Datei ausführen und ihr Variable plus Values mitgeben kann. Und da war mein Gedanke, dass ich das zusätzlich unter Windows machen könnte. Würde das mit dem pbi-Modul am einfachsten gehen?
Re: PHP und PB
Verfasst: 13.03.2015 15:30
von Kiffi
Code: Alles auswählen
myJob.Download2("http://my_domain/hello.php", Array As String("my_name", "Angelo"))
... macht im Prinzip auch nichts anderes, als Deine PHP-Seite so aufzurufen:
Packst Du mehr Werte in das B4A-Array, so werden sie dementsprechend angehängt
Code: Alles auswählen
http://my_domain/hello.php?my_name=Angelo&myParam2=myValue2&myParam3...
Im Prinzip also so, wie oben in meinem Code (mit einem Parameter) demonstriert.
Der Vorteil von Thorstens Modul wäre hier: Du könntest die Antwort (Response) Deiner PHP-Seite direkt im Speicher entgegennehmen (und müsstest ihn nicht vorher auf einen Datenträger speichern, um ihn dann wieder mittels ReadFile() einzulesen) und Dein Programm müsste nicht pausieren, bis der Response bei Dir eintrifft.
Grüße ... Peter
Re: PHP und PB
Verfasst: 13.03.2015 15:43
von NicTheQuick
Zu erwähnen wäre hier vielleicht noch der Befehl 'URLEncoder()', der alle Parameter in der URL korrekt kodiert, damit auch Sonderzeichen richtig zum Server übertragen werden.
Re: PHP und PB
Verfasst: 13.03.2015 16:00
von Angelo
Vielen Dank für Eure Antworten. Dann werd ich mich mal an die Arbeit machen ...