2014-07-16 55 views
0

我有生成html文件的二進制文件。我正試圖在標籤中調用php函數,但它將採用當前文件的相對路徑。我的代碼如下。 CPP文件PHP函數的錨標記中的絕對路徑

cout<<"<?php"<<endl; 
cout<<"if (isset($_GET['function'])){"<<endl; 
cout<<"echo 'clicked'"; 
cout<<"  }"<<endl; 
cout<<">"<<endl; 

sprintf(retStr,"<u>%s%s%s</u>", "<A HREF=\"?function\">",errorcode.c_str(),"</A>"); 
cout<<retStr.c_str(); 

生成的PHP:

<?php 
if (isset($_GET['function'])){ 
echo 'clicked'  } 
> 

HTML:

<u><A HREF="?function">23427</A></u> 

我想從鏈接調用PHP函數,但它將把它當作相同的二進制的相對路徑。當我將鼠標懸停在鏈接上時,它會顯示http://localhost/dir/binary?function 我如何才能使PHP功能?

注:我不知道的PHP。

+0

由於這是一個PHP的問題,而不是一個C++的問題,它很可能是一個容易得多,如果你發佈的格式,而不是留在COUT語句,這確實PHP代碼,與你的問題無關。 – ChrisCM

回答

0

你的代碼有錯誤,其產生的PHP代碼應該如下:

cout<<"<?php"<<endl; 
cout<<"if (isset($_GET['function'])){"<<endl; 
cout<<"echo 'clicked';"; 
cout<<" }"<<endl; 
cout<<"?>"<<endl; 
sprintf(retStr,"<u>%s%s%s</u>", "<a href=\"../binary?function\">",errorcode.c_str(),"</a>"); 
cout<<retStr.c_str(); 

上面的代碼會爲你工作。

編輯:

sprintf(retStr,"<u>%s%s%s</u>", "<a href=\"<?php echo $_REQUEST['SELF'];?>?function\">",errorcode.c_str(),"</a>"); 
+0

但我不想在點擊時調用二進制。 – user3153014

+0

@ user3153014但是你不能在不調用任何PHP路徑的情況下做到這一點。或者你應該調用PHP變量'$ _REQUEST ['SELF']'在''function'之前添加這個''這將工作。 –

+0

預期的輸出是它應該顯示「點擊」鏈接,而不是相同的二進制 – user3153014