2013-10-10 29 views
0

我想用Dragonfire SDK編程查詢一個mysql數據庫。但作爲迴應,我得到了整個HTML-Structur而不是單個變量。在這個例子中,我想輸入名字的姓氏。有任何想法嗎?來自PHP的Dragonfire SDK響應

PHP:

<?php $Fname= $_GET[Fname];

$abfrage = "SELECT * FROM Names WHERE Fname = '$Fname'";

$ergebnis = mysql_query($abfrage);

while($row = mysql_fetch_object($ergebnis))

{

echo $row->Lname;

} ?>

C++:

int OnResponse(int event, char *response, int length)

{

response[length]=0;

TextSetText(NameResponse, response); 

    return(length); 

}

的響應如下所示: <html> <head> <title>PHP-Test</title> </head> <body> </body> </html>Polo

但是我只想要「Polo」..

回答

0

由於PHP運行在網頁內,它的輸出將在網頁內部結束,並且NetSend()無法分離出位你所需要的網頁就是你不需要的網頁。假設你不能讓你的PHP用一些純文本替換網頁,而不是僅僅添加文本(我不知道有足夠的PHP來建議任何東西),你將需要你的NetSend()回調來解析輸出到找到你想要的位。例如:

char *SkipWhiteSpace(char *cp) 
{ 
    while (cp && *cp && cp-response < length && (*cp==' ' || *cp=='\t')) cp++; 
    return cp; 
} 

int OnResponse(int event, char *response, int length) 
{ 
    char *cp = response; 

    cp = SkipWhiteSpace(cp); 
    while (cp && *cp && cp-response < length && *cp=='<') { 
    while (cp && *cp && cp-response < length && *cp!='>') cp++; 
    cp++; 
    cp = SkipWhiteSpace(cp); 
    } 
    if (!cp || !*cp || cp-response >= length) return -1; 
    // cp now points to the beginning of the desired string 
    //... 
}