『壹』 請問手機怎麼搭建php環境
不建議在手機上搭建環境。
非要搭建的話,可以看下這個文章。使用almp,參考資料:http://www.chinaz.com/web/2013/0722/310467.shtml
安卓手機上搭建php環境後期支持肯定不好,肯定不利於擴展。php擴展肯定不支持。
『貳』 怎樣搭建一個android開發框架
相對於傳統計算機程序語言來說,Android開發學習資源上還稍微欠缺一些,對於一些基礎應用講解還稍顯匱乏,本篇所講述的Android培訓內容可以幫助大家更好的理解Android項目快速開發框架。結合之前所用的ormlite和hessian,再加上SAE已經支持java,把服務端切換到JAVA,也就有了本文。使用hessian來做數據傳輸,ormlite來實現客戶端與服務端的數據存儲,極大的減少了CRUD工作。本文為探索貼,未正式用於大型項目,歡迎大家討論使用!正文一、簡介1.1 ormliteOrmlite[Object Relational Mapping Lite (ORM Lite)]對象關系映射精簡版(精簡版的ORM)提供了一些簡單的,輕量級持久化Java對象到SQL資料庫,同時也避免了復雜性和更多的標準的ORM包的開銷的功能。支持資料庫的jdbc調用,當然,最重要的肯定是它支持android原生的資料庫api調用sqlite。——轉載自這里。1.2 hessian使用方法參照本博兩篇文章:[hessdroid]Android下使用Hessian與Java服務端通訊[hessdroid]Android下使用Hessian與Java服務端通訊的傳值測試1.3 Android快速開發框架說明考慮如下幾個特點:a). 客戶端(Android)和服務端均使用Java語言b). 客戶端(Android)和服務端均支持Hessian和ormlite框架c). 完整的支持面向對象開發:存儲和交互傳輸二、准備2.1 開發環境為了便於同時開發Android和Java Web,這里下載的是Eclipse IDE for Java EE Developers版本,然後安裝最新的ADT插件和TOMCAT插件。2.2 服務端應用伺服器使用Tomcat,採用Java(JSP/Servlet)來實現服務端的業務邏輯,資料庫使用Mysql。快速框架搭建推薦大家使用XAMPP(集成Apache、MySQL、PHP等,支持綠色安裝)。2.3 客戶端普通的Android環境2.4 通信與存儲說明服務端與客戶端通過Hessian進行數據交換,通過Ormlite保存資料庫(通過JDBC保存到服務端的MYSQL資料庫,也可以直接保存到客戶端的sqlite資料庫);三、代碼3.1 項目工程截圖(服務端)HOLib共用於客戶端和服務端,保證介面和數據對象一致性。3.2 重點代碼分析3.2.1 服務端web.xml<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>user</servlet-name> <servlet-class>com.nmbb.ho.server.servlet.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>user</servlet-name> <url-pattern>/user.do</url-pattern> </servlet-mapping> <listener> <listener-class>com.nmbb.ho.server.StartupInit</listener-class> </listener></web-app>StartupInit.javapublic class StartupInit implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent arg0) { try { TableUtils.dropTable(OrmliteHelper.getConnection(), POUser.class, true); //創建資料庫 TableUtils.createTable(OrmliteHelper.getConnection(), POUser.class); } catch (SQLException e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent arg0) { }} 代碼說明:StartupInit可用於創建資料庫表結構,這里用於測試,真實環境注意數據丟失問題。POUser.java@DatabaseTable(tableName = "nmbb_users")public class POUser implements Serializable { /** 用戶編號,6位數字 */ @DatabaseField(generatedId = true) public int suid; /** 用戶名 */ @DatabaseField(width = 30) public String username; /** 密碼 */ @DatabaseField(width = 30) public String password; /** 昵稱 */ @DatabaseField(width = 60) public String nickname; /** 200 正常 201 數據校驗錯誤 202用戶已經存在 */ public int status = 200; /** 用於放錯誤信息 */ public String msg; public POUser() { }} 代碼說明:注意需要一個空的構造函數,其他請參考ormlite資料。UserServlet.java/*** 用戶Servlet** @author 農民伯伯* @see http://www.cnblogs.com/over140/archive/2013/02/19/2917231.html**/public class UserServlet extends HessianServlet implements IUserService { @Override public POUser register(String username, String password) { POUser result = new POUser(); System.out.println("[UserServlet.register]..."); // 檢測數據是否合法 if (isEmpty(username) || isEmpty(password)) { result.status = 201; result.msg = "用戶名或密碼不能為空"; } else { // 檢測用戶是否存在 OrmliteHelper<POUser> db = new OrmliteHelper<POUser>(); if (db.exist(POUser.class, "username", username)) { result.status = 202; result.msg = "用戶名已經存在"; } else { result.username = username; result.password = password; db.create(result);// 入庫 result.msg = "注冊成功"; System.out.println("create user suid:" + result.suid); } } return result; } @Override public List<POUser> query(int suid, int startIndex, int pageSize) { return new OrmliteHelper<POUser>().query(POUser.class, "suid", suid, startIndex, pageSize) ; } /** * 判斷字元串是否為空 * * @param str * @return */ public static boolean isEmpty(String str) { return str == null || str.length() == 0; }}3.2.2 客戶端(Android) public class UserActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void OnClickRegiger(View view) { new AsyncTask<Void, Void, POUser>() { @Override protected POUser doInBackground(Void... params) { String url = "http://192.168.68.23:8081/HOServer/user.do"; HessianProxyFactory factory = new HessianProxyFactory(); try { factory.setDebug(true); factory.setReadTimeout(5000); //不設置會報 expected hessian reply at 0x48 factory.setHessian2Reply(false); IUserService basic = (IUserService) factory.create(IUserService.class, url, getClassLoader()); return basic.register("admin", "123456"); } catch (MalformedURLException e) { Log.e("UserActivity", "OnClickRegiger", e); } catch (Exception e) { Log.e("UserActivity", "OnClickRegiger", e); } return null; } @Override protected void onPostExecute(POUser result) { if (result != null) { if (result.status == 200) { //保存入庫 new DbHelper<POUser>().create(result); } Toast.makeText(UserActivity.this, "" + result.msg, Toast.LENGTH_LONG).show(); } }; }.execute(); }}代碼說明:1、DbHelper在源碼里給出。2、如果項目無法編譯通過,請注意設置項目的字元編碼、JDK版本、Android的版本。三、總結5.1 優點a). 完全面向對象開發b). 降低項目的復雜度,減少引入其他框架所帶來的復雜性c). 非常適合一個開發服務端和客戶端充分的利用的框架的特點,提交開發效率,適合中小型項目快速開發。5.2 缺點a). 注意服務端與客戶端共用id的問題5.3 其他a). ormlite支持標準的JPA助記符,這里。這樣服務端採用Hibernate應該也是可以的,有時間可以做一個整合例子看看。學習語言同做事情一樣,想通其中的關系,就會事半功倍,對語言要深入的理解,
『叄』 如何搭建PHP的運行環境
這個是我成功配置的經驗
1.安裝apache_2.2.4-win32-x86-no_ssl.msi到 d:\phpWeb\APACHE\
步驟:下一步下一步
2.安裝php-5.2.0-Win32.zip 到 d:\phpWeb\php\
步驟:(1)解壓壓縮包到d:\phpWeb\php\
(2)找到php目錄里的 php.ini-dist 重命名為 php.ini 並拷到 windows目錄里
(3)將php目錄里的 php5ts.dll,libmysql.dll 拷到 系統目錄(system和system32)
3.配置apache
步驟:(1)打開 d:\phpWeb\APACHE\conf\httpd.conf 這個文件
(2)找到 DocumentRoot "D:/phpWeb/APACHE/htdocs" 將其改為你的WEB目錄(可不改有時改了會出錯)
(3)找到DirectoryIndex index.html這一行,在後面加入index.html.var index.htm index.php
(4)找到#LoadMole ssl_mole moles/mod_ssl.so這行,在後面加上一行:LoadMole php5_mole d:/phpWeb/php/php5apache2_2.dll
(5)找到AddType application/x-gzip .gz .tgz這行,在後面加上一行:AddType application/x-httpd-php .php
4.配置php
步驟:(1)找到c:\windows\php.ini並打開 (剛才拷進去的)
(2)找到extension_dir = "./" 改為 extension_dir = "d:/phpWeb/php/ext"
(3)找到;extension=php_mysql.dll將前面的;號去掉
(4)找到;session.save_path = 去掉前面;並設路徑"d:/phpWeb/php/session_temp"並在該路徑下新建文件夾session_temp
『肆』 如何輕松搭建本地PHP環境,幾步即可搞定
使用套件,如wamp。下載,安裝,運行就ok了。如果你的電腦裝了IIS要解決80埠沖突問題,此外一般就ok了。
『伍』 如何連接android和php mysql資料庫
額額 我這里有 安卓連接mysql的例子,你看需要嗎?
『陸』 安卓怎麼搭建php環境
如果純粹是安卓系統上運行php項目可以下載安裝KSWEB;該應用內置了apache/nigux+php+mysql+編輯器。如果是純環境搭建目前安卓好像還沒有;建議做項目還是用電腦,不然就是在安卓手機上安裝linux系統。再不然就是你自己去開發一套了
『柒』 PHP如何環境搭建
建議用wamp。這個集成的,不用這么費事。安裝完後點右下角選www目錄,把你的PHP網頁放裡面,地址輸入localhost/你的網頁就可以看到了。
Wamp是Windows Apache Mysql PHP集成安裝環境,即在window下的apache、php和mysql的伺服器軟體。PHP擴展、Apache模塊,開啟/關閉滑鼠點點就搞定,再也不用親自去修改配置文件了,新手必備。
下載地址:
『捌』 如何搭建php運行環境
下載xampp或者wamp本地安裝後就可以用了。
wamp放到這個目錄下
xampp 在htdocs下
『玖』 手機上用什麼軟體搭建php開發環境手機上什麼代碼編輯器好用
搭建環境可以考慮:ANMPP集成環境。
代碼編輯器可以考慮:DroidEdit編輯器。
『拾』 android客戶端的php伺服器怎麼搭建,php伺服器又是如何處理android客戶端發送的消息,本人小白一個請指導
個人理解,就是andorid應用調用伺服器端的PHP文件,PHP文件向伺服器傳送消息。
android代碼:
public class DoAddInformation extends Activity {
private ListView listView;
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_do_add_information);
Intent intent = getIntent();
String value = intent.getStringExtra("name");
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
listView = new ListView(this);
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, getData(value)));
setContentView(listView);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.do_add_information, menu);
return true;
}
// 讀取數據方法
private List<String> getData(String name) {
Toast.makeText(DoAddInformation.this, name, Toast.LENGTH_LONG).show();
// 網路操作
List<String> data = new ArrayList<String>();
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name", name));
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"遠程連接的網址+網頁");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
//----
} catch (Exception e) {
Log.e("log_tag", "Error in http connection" + e.toString());
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "utf-8"), 8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line = "0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
int ct_id;
String ct_name;
try {
jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
ct_id = json_data.getInt("id");
ct_name = json_data.getString("name");
// tv.append(ct_name+" \n");
data.add(ct_name);
}
} catch (JSONException e1) {
} catch (ParseException e1) {
e1.printStackTrace();
}
return data;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Intent intent = new Intent();
intent.setClass(DoAddInformation.this, MainActivity.class);
startActivity(intent);
}
return super.onKeyDown(keyCode, event);
}
PHP代碼:
<?php
mysql_connect("地址","用戶","密碼");
mysql_query("SET NAMES utf8");
mysql_select_db("024b12");
//$sql=mysql_query("INSERT INTO test (id,name)VALUES (NULL , name='".$_REQUEST['name']."' )");
$count=mysql_query("select * from test ");
while($row=mysql_fetch_assoc($count))
{
$output[]=$row;
//echo $row['name'].'<br>';
}
print(json_encode($output));
mysql_close();
?>