導航:首頁 > 編程語言 > php與web交互

php與web交互

發布時間:2023-03-23 03:05:41

php做客戶端,java做服務端,用webservice怎麼交互

.java編寫webservice服務端,php作為客戶端調用.
1.首先我們寫一個簡單的java類並發布webservice.
package com.php;
import java.util.Map;
/**
* @author yangjuqi
* @createdate 2009-5-18 下午04:43:09
*
*/
public class WebServiceImpl {
public String sendTransact(Map map) throws Exception {
System.out.println("::: Call testModel1 :::");

if(map!=null){
String bugmanifestid = StringUtil.getValue(map.get("bugmanifestid"));
String editedby = StringUtil.getValue(map.get("editedby"));
String dditeddate = StringUtil.getValue(map.get("dditeddate"));
String fullinfo = StringUtil.getValue(map.get("fullinfo"));
String action = StringUtil.getValue(map.get("action"));
System.out.println("bugmanifestid -$amp;>quot;$ +bugmanifestid);
System.out.println("editedby -$amp;>quot;$ +editedby);
System.out.println("dditeddate -$amp;>quot;$ +dditeddate);
System.out.println("fullinfo -$amp;>quot;$ +fullinfo);
System.out.println("action -$amp;>quot;$ +action);
}
return "success";
}
}
2.配置server-config.wsdd
<deployment xmlns=""
xmlns:java="">
<handler name="URLMapper"
type="java:org.apache.axis.handlers.http.URLMapper" />
<handler name="auth"
type="java:com.php.AuthenticationHandler" />
<handler name="URLLogging"
type="java:com.php.LogHandler">
<parameter name="filename" value="c:\\MyService.log" />
</handler>
<service name="IWebService" provider="java:RPC">
<parameter name="className"
value="com.php.WebServiceImpl" />
<parameter name="allowedMethods" value="*" />
<namespace>http://localhost:8088/testphpweb</namespace>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper" />
<handler type="URLLogging" />
</requestFlow>
</transport>
</deployment>
3.發布到jboss後,訪問http://localhost:8088/testphpweb/services/IWebService wsdl能看到xml文件就說明webservice發布好了。
4.寫testphpweb.php文件
< php
/*
* @author juqi yang $amp;<amp;$gt;
* @create date 2009-05-18
*/
header("Content-Type: text/html; charset=GB2312");
echo " ::: PHP CALL JAVA-WEBSERVICE ::: <br$amp;>quot;$;
require_once("nusoap/lib/nusoap.php");
// 要訪問的webservice路徑
$NusoapWSDL="http://localhost:8088/testphpweb/services/IWebService wsdl";
// 生成客戶端對象
$client = new soapclient($NusoapWSDL, true);
// 設置參數(注意:PHP只能以'數組集'方式傳遞參數,如果服務端是java,用Map接收)
$param = array( 'bugmanifestid' => 'E090500001',
'editedby' => '張三',
'dditeddate' => '2009-05-19',
'fullinfo' => '已聯系劉德華,籌備今晚吃飯的事,等待回復',
'action' => '0');
echo "begin remote 。。。<br$amp;>quot;$;
// 調用遠程方法
$result = $client->call('sendTransact', array($param));
echo "end remote 。。。<br$amp;>quot;$;
// 顯示執行結果
if (!$err=$client->getError()){
echo '結果 : '.$result;
}else{
echo '錯誤 : '.$err;
}
>
5.啟動apache,訪問
php頁面顯示:
::: PHP CALL JAVA-WEBSERVICE :::
begin remote 。。。
end remote 。。。
結果 : success
jboss後台監視結果:
17:12:20,781 INFO [STDOUT] ::: Call testModel1 :::
17:12:20,781 INFO [STDOUT] bugmanifestid ->E090500001
17:12:20,781 INFO [STDOUT] editedby ->張三
17:12:20,781 INFO [STDOUT] dditeddate ->2009-05-19
17:12:20,781 INFO [STDOUT] fullinfo ->已聯系劉德華,籌備今晚吃飯的事,等待回復
17:12:20,796 INFO [STDOUT] action ->0
到此,php作為客戶端調用java寫的webservice服務端完成.
二,php編寫webservice服務端,java作為客戶端調用.
1.編寫php webservice
< php
/*
* @author juqi yang $amp;<amp;$gt;
* @create date 2009-05-18
*/
header("Content-Type: text/html; charset=GB2312");
require_once("nusoap/lib/nusoap.php");
function sendManifest($param)
{
//把接收到的數據顯示出來
return "hello ".$param["projectid"]."<=$amp;>quot;$.$param["projectname"]."<=$amp;>quot;$.$param["moleid"];
}
$server = new nusoap_server();
//配置WSDL namespace
$server->configureWSDL('myservice', //服務名稱
'', //tns指定的namespace,一般填寫自己的URI
true, //endpoint url or false
'rpc', //服務樣式
'', //傳輸協議,一直是這個。
'' //wsdl 'types'元素targetNamespace
);
// 注冊web服務
$server->register('sendManifest', // 服務
array(
'projectid' => 'xsd:string',
'projectname' => 'xsd:string',
'moleid' => 'xsd:string',
'molepath' => 'xsd:string',
'bugtitle' => 'xsd:string',
'bugtype' => 'xsd:string',
'openedby' => 'xsd:string',
'openeddate' => 'xsd:string',
'assignedto' => 'xsd:string',
'assigneddate' => 'xsd:string',
'fixedtime' => 'xsd:string',
'fullinfo' => 'xsd:string',
'bugmanifestid' => 'xsd:string'), // 輸入參數;數組,指定類型
array('resultCode' => 'xsd:string'), // 輸出;數組,指定類型
'', // namespace of method
'', // soapaction
'rpc', // style
'encoded', // use
'serviceConsumeNotify' // documentation
);
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
>
2.啟動apache後,訪問 ,如果頁面如下圖所示,表示webservice發布好了。
3.編寫java客戶端CallPhpServer .java 並調用php webservice
package com.php;
import java.util.HashMap;
import java.util.Map;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
* @author yangjuqi
* @createdate 2009-5-18 下午05:31:06
*
*/
public class CallPhpServer {
/**
* 測試方法
* @return
* @throws Exception
*/
public static String callManifest() throws Exception {
System.out.println("0");
Service service = new Service();
Call call = (Call) service.createCall();
System.out.println("1");
call.setTargetEndpointAddress(new java.net.URL(""));
call.setOperationName("sendManifest");
System.out.println("2");
Map map=new HashMap();
map.put("projectid", "109");
map.put("projectname", new String("新MM國際物流平台".getBytes(),"iso-8859-1"));
map.put("moleid", "11");
map.put("molepath", new String("財務管理".getBytes(),"iso-8859-1"));
map.put("bugtitle", new String("關於總賬報表數據的問題".getBytes(),"iso-8859-1"));
map.put("bugtype", "TrackThings");
map.put("openedby", "zhangsan");
map.put("openeddate", "2009-05-31");
map.put("assignedto", "liumang");
map.put("assigneddate", "2009-05-31");
map.put("fixedtime", "2009-06-03");
map.put("fullinfo", new String("現在總賬報表頁面下的合計數據不對,煩請抓緊事件核實確認更正,謝謝!".getBytes(),"iso-8859-1"));
map.put("bugmanifestid", "E090500001");
call.addParameter("param", org.apache.axis.Constants.SOAP_ARRAY,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
System.out.println("3");
Object obj=call.invoke(new Object[]{map});
return obj.toString();
}
public static void main(String[] args) throws Exception {
System.out.println("::: call php webservice :::");
String str = callManifest();
String result=new String(str.getBytes("iso-8859-1"),"GBK");
System.out.println(result);
}
}
控制台顯示結果:
::: call php webservice :::
0
log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
1
2
3
hello 109<=>新MM國際物流平台<=>11
到此,java作為客戶端調用php的webservice服務端完成.

⑵ Notice: Undefined index: title in C:\wamp\www\index.php on line 26 報錯

當你請求的鏈接地址中沒有title=abc這個參數時,
使滾哪用$_GET['title']獲悶攔取title會有上面提示。

解決方法:
使用前先判斷
$_GET['title']=empty($_GET['title'])?'':螞備胡$_GET['title'];
再使用就沒有報錯了。

⑶ PHP如何處理Web請求流程

進程是操作系統分配資源和調度的功能單元虧激,一個進程裡面有一個或者多個線程,線程是操作系統的一個獨立運算單元。通常可以認為一個軟體對應一個進程,並行是指多個軟體一起運行,實際上分時復用而已,並發是指某個軟體在運行的時候把計算分給多個CPU同時進行計算,是真正的同一時間內一起發生的事情。

PHP-fpm使用的就是多進程模型。
HHVM它選擇的是多線程模型。

對於某個服務而言,譬如web服務,主要考慮它的並發能力,就是單位時間內能處理的請求數量。而並行計算就是為了提高並發能力的。脫離nginx或者apache來說,php的並行肢祥處理能力,既可以用多進銷飢襪程的模型來提高,也可以用多線程的模型來提高。最簡單的情況下,php提供單進程單線程的方式來提供服務,每次之處理一個請求,如果請求的處理速度足夠快,一秒時間內並發能力也可以算是強的,但是這樣比較浪費資源,所以往往會根據CPU、內存、網路的情況來設置多進程、多線程或者多伺服器來提高並發能力。

⑷ 求《PHP動態網站開發》全文免費下載百度網盤資源,謝謝~

《PHP動態網站開發》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1PInoWi_82K5nDgNypnI7KA

?pwd=ipjr 提取碼: ipjr
簡介:本書從AdobeDreamweaverCS6可視化設計與手工編碼的結合上詳細地介紹了基於PHP語言和MySQL資料庫的動態網站開發技術。本書採用項目引領、任務驅動的教學方法,共分10個項目,包括:配置PHP開發環境、PHP語言快速入門、PHP面向對象編程、PHP數據處理、PHP與Web交互、PHP文件處理、PHP圖像處理、MySQL資料庫管理、PHP資料庫編程、新聞發布系統設計。

⑸ 如何用實現php與前端的交互

PHP是什麼文件? PHP,一個嵌套的縮寫名稱,是英文「超級文本預處理語言」(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在伺服器端執行的「嵌入HTML文檔的腳本語言」,語言的風格有類似於C語言,現在被很多的網站編程人員廣泛的運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在伺服器端執行,成分利用了伺服器的性能;PHP執行引擎還會將用戶經常訪問的PHP程序駐留在內存中,其他用戶在一次訪問這個程序時就不需要誠信編譯程序了,只要直接執行內存中的代碼就可以了,這也是PHP高效率的體現之一。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及操作系統。如何打開PHP文件? 一般來說,用文本編輯工具都可打開PHP文件如notepad、emeditor、phpedit、Dreamwere,推薦使用Dreamwer編輯PHP文件上,如果您打開的PHP文件全是亂碼,那麼這個PHP文件就是經過zend加密過的php文件,無法再編輯和修改,但可以正常的運行,如果您要運行PHP文件那麼您就得安裝相應的php解釋器和web服務支持才行。想知道如何運行PHP文件請要看PHP教程

明白了嗎?建議樓主去後盾人那自學,聽說他們那正在搞什麼實訓班培訓的活動,你可以去看看

⑹ PHP開發與Web前端開發有什麼區別

一、主體不同

1、PHP:是一種易於學習和使用的伺服器端腳本語言。只需要很少的編程知識就能使用PHP建立一個真正交互的WEB站點。

2、Web前端:是創建Web頁面或app等前端界面呈現給用戶的過程。

二、過程不同

1、PHP:PHP網頁文件被當作一般HTML網頁文件來處理並且在編輯時可以用編輯卜拍HTML的常規方法編寫PHP。

2、Web前端:通過HTML,CSS及JavaScript以及衍生出來的各種技術、框架、解決方案,來實現互聯網產品的用戶界面交蠢皮互。


三、學習的框架不同

1、PHP:可選的框架包括CakePHP、CodeIgniter、Zend等。

2、Web前端:熟悉掌握HTML、伺服器端腳本語言、CSS和JavaScript之後,學習Web框架可以加快Web開發速度,節約時間。


⑺ PHP技術核心是什麼

PHP技術核心是SAPI。
這是PHP與Web伺服器交互的介面,非常慶鬧重要。
PHP擴展等外部模塊。 完成資料庫調用,數據交換,數據譽彎罩加密等腳本大部分功能。
PHP內核。 php內核獲取伺服器傳遞的環境變數信息鬧手,調用PHP函數,類,擴展模塊,統籌PHP運行,為編譯工作做准備。
Zend虛擬機。 完成詞法分析,語法分析,語義分析,中間代碼生成,代碼優化,目標代碼生成等核心功能,負責PHP代碼編譯執行。

⑻ 什麼是php網站開發實戰

搜詞條
PHP開發實戰
清華大學出版社出版的圖書
《PHP開發實戰》,是清華大學出版社出版的圖書,作者是軟體開發技術聯盟。本書適合有志於從事軟體開發的初學者、高等院校計算機相關專業的學生,也可作為軟體開發人員的參考手冊,或者高等院校的教學參考書。
作者
軟體開發技術聯盟 編著
ISBN
9787302318965
定價
96.00元
出版社
清華大學出版社
裝幀
平裝
相關圖書
我的訂單
 | 
更多圖書
PHP開發實戰 軟體開發技術聯盟
¥16.8
來自京東
去購買
PHP開發實戰 軟體開發技術聯盟
¥17.9
來自京東
去購買
【正版書籍】 PHP開發實戰 清華大學出版社 軟體開發技術聯盟 編
¥39
來自京東
去購買
PHP開發實戰 軟體開發技術聯盟 編 清華大學出版社
¥81
來自京東
去購買
【RTZ】PHP開發實戰(附光碟) 軟體開發技術聯盟 清華大學出版社 9787302318965
¥86.4
來自當當網
去購買
內容介紹作品目錄TA說參考資料
內容介紹
《PHP開發實戰》從初學者的角度講述使用PHP語言進行程序開發應該掌握的各項技術,內容突出「基礎」、「全面」、「深入」的特點,同時強調實戰效果。在介紹技術的同時,書中都會提供實例,同時在各章的結尾部分安排實戰內容,通過5~8個實戰來綜合應用本章所講解的知識,做到理論聯系實際;每篇的最後一章有一個綜合實例,通過一個模塊綜合講解本篇所講解的知識內容;在本書的最後兩章中提供了兩個完整的項目實例,講述從前期規劃、設計流程到項目最終實施的整個實現過程。
全書共分33章,主要內容包括初識PHP、PHP環境搭建、PHP語言基礎、流程式控制制語句、函數、字元串、正則表達式、PHP數組、日期和時間、綜合實例(一)——注冊登錄、MySQL資料庫基本操作、phpMyAdmin圖形化管理工具、使用MySQL函數操作資料庫、ADODB類庫、PDO資料庫抽象層、綜合實例(二)——在線論壇、會話管理、圖形圖像、文件系統、面向對象、PHP加密技術、程序調試與異常處理、綜合實例(三)——投票系統、PHP與Web頁面交互、PHP與JavaScript交互、XML技術、Ajax技術、綜合實例(四)——購物車、Smarty模板技術、ThinkPHP框架技術、綜合實例(五)——明日導航網、博客管理系統、應用Smarty模板開發電子商務平台等,最後在附錄中介紹了PHP的編碼規則。所有知識都結合具體實例進行介紹,對涉及的程序代碼給出了詳細的注釋,讀者可以輕松領會PHP程序開發的精髓,快速提高開發技能。本書特色及豐富的學習資源包如下:
黃金學習搭配、專業學習視頻、重難點精確打擊、學習經驗分享、學習測試診斷、有趣實踐任務、專業資源庫、學習排憂解難、獲取源程序、提供習題答案、贈送開發案例。

⑼ web前端怎麼與後端交互

個人理解,前端與後端的交互就是數據傳遞的過程.通過ajax請求獲取需要的數據在自己的前歲氏端頁面展現出此雀此來,或者將前端表單的數據通過請求發送森迅給後端.

⑽ 如何快速學會PHP

閱讀全文

與php與web交互相關的資料

熱點內容
蘋果8p手機加密 瀏覽:745
ipad建文件夾怎麼弄 瀏覽:833
iphone13對wap3加密 瀏覽:555
pdf文件打開失敗 瀏覽:913
dubbo怎麼調用不同伺服器介面 瀏覽:40
全能解壓王app歷史版本 瀏覽:75
優先隊列與拓撲排序演算法 瀏覽:281
pdf轉換formacbook 瀏覽:871
pdf文件內容怎麼編輯 瀏覽:48
134壓縮機排氣溫度多少 瀏覽:256
unity等待編譯後 瀏覽:806
黑鯊手機鎖屏視頻在哪個文件夾 瀏覽:781
wow地圖解壓後怎麼壓縮 瀏覽:821
有pdf卻打不開 瀏覽:460
七星彩軟體app怎麼下載 瀏覽:217
32單片機的重映射哪裡改 瀏覽:816
為什麼前端不用刷演算法題 瀏覽:708
對稱加密系統和公鑰加密系統 瀏覽:428
歷史地理pdf 瀏覽:606
物聯網雲伺服器框架 瀏覽:648