我有一个unity3d c#脚本用于从php文件中获取数据。
Unity C#文件:
using UnityEngine;
using System.Collections;
public class FrmPhp : MonoBehaviour {
// Use this for initialization
void Start () {
string url = "http://localhost/abc/PgComm.php";
WWW www = new WWW(url);
StartCoroutine(WaitForRequest(www));
}
IEnumerator WaitForRequest(WWW www)
{
yield return www;
// check for errors
if (www.error == null)
{
Debug.Log("Text : "www.text);
Debug.Log("DownLoad Bytes: "www.bytesDownloaded.ToString());
} else {
Debug.Log("WWW Error: "+ www.error);
}
}
// Update is called once per frame
void Update () {
}
}
PHP文件
<html>
<body>
<table name="mytable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
Friend ID
</td>
</tr>
<?php
$db = pg_connect('host=localhost dbname=MyDB user=postgres password=xyz');
$query = "SELECT pk FROM Table1";
$result = pg_query($query);
//printf ("<tr><td>%s</td>", $result);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}
while($myrow = pg_fetch_assoc($result)) {
printf ("<tr><td>%s</td>", $myrow['pk']);
}
?>
</table>
</body>
</html>
我在团结中得到的是
Text :
DownLoad Bytes: 110
任何想法如何从php获取数据。
编辑c#代码:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Experimental.Networking;
public class FrmPhp : MonoBehaviour {
public Text txt;
string url = "http://192.100.233.222/abc/Hello.php";
byte[] results;
//byte results1 = 0x00;
// Use this for initialization
void Start () {
StartCoroutine(GetText());
}
IEnumerator GetText()
{
UnityWebRequest www = UnityWebRequest.Get(url);
yield return www.Send();
if(www.isError) {
Debug.Log(www.error);
txt.text = www.error;
}
else {
// Show results as text
//results1 = 0x01;
Debug.Log(www.downloadHandler.text);
txt.text = www.downloadHandler.text;
}
}
// Update is called once per frame
void Update () {
}
}
答案 0 :(得分:1)
1)我对C#不是很熟悉,但是我要做的是帮助C#开发人员以适当的格式向他发送数据。例如XML或JSON,而不是表。
所以我试试JSON:
<?php
$db = pg_connect('host=localhost dbname=MyDB user=postgres password=xyz');
$query = "SELECT pk FROM Table1";
$result = pg_query($query);
//printf ("<tr><td>%s</td>", $result);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}
$return_arr = array();
while($myrow = pg_fetch_assoc($result)) {
array_push($return_arr, $myrow);
}
echo json_encode($return_arr);
2)如果你坚持让表使用正确的表格HTML
使用printf ("<tr><td>%s</td></tr>", $myrow['pk']);
而不是printf ("<tr><td>%s</td>", $myrow['pk']);
3)使用xml你可能会try something like this
4)您可以使用C#的远程连接直接连接到Postgre数据库(如果这是您的选项)this
希望有所帮助
PS。 Decoding JSON in C#也可能派上用场