PHP網路編程的代碼怎麼寫?本篇文章給大家介紹的是關於PHP網路編程的代碼,有興趣的朋友可以看一下
//echo gethostbyname("www..com");
$host = "111.13.100.92"; //設置基本信息
$port = 65530;
set_time_limit(0); //設置超時時間
//創建一個socket
$socket = socket_create(AF_INET,SOCK_STREAM,0) or die("不能建立socket鏈接!n");
//綁定Socket到埠
$result = socket_bind($socket,$host,$port) or die("不能綁定socket給定的埠n");
//開始監聽
$result = socket_listen($socket,3) or die("建立socket連接失敗n");
//接受連接請求,另一個Socket處理通訊
$socket_a = socket_accept($socket) or die("不能接受客戶端socket請求n");
//獲取客戶端的輸入請求
$input = socket_read($socket_a,4096) or die("讀取客戶端輸入失敗n");
//清空輸入字元
$input = trim($input);
//處理客戶端輸入並處理結果
$output = strrev($input)."n";
socket_write($socket_a,$output,strlen($output)) or die("不能給客戶端返回結果n");
//關閉socket
socket_close($socket_a);
socket_close($socket);
?>
PHP網路編程的代碼怎麼寫?這段php網路編程,希望大家一定要學會。
本篇《PHP網路編程的代碼怎麼寫?原來這個代碼就足夠我們使用了》到這里就已經結束了,小編一直認為,某一個編程軟體受歡迎是有一定原因的,首先吸引人的一定是其功能,環球網校的小編祝您PHP學習之路順利,如果你還想知道更多php知識,可以點擊本站的其他文章進行學習。
Ⅱ php 里怎麼寫自己的方法。在線急等
echo '<script language="JavaScript">function test(){
//.....這樣嗎?
}</script>'
Ⅲ PHP文件寫入的幾種方法
通過fwrite
$file = fopen("test.txt","a+"); //次方法會自動生成文件test,txt,a表示追加寫入,
//w代表替換寫入 fwrite($file,"寫入代碼"); fclose($file);
file_put_content()方法寫入
file_put_contents("test.txt","奧斯卡老\r\n頓積分");//這里說一下\r\n在雙引號下
//才會換行如果單引號就識別不了
//如果想追加寫入內容,這個函數還有第三個參數FILE_APPEND
Ⅳ 如何用php編寫shell,至少兩種方法
linux或者unix下
1.用php命令行的方式執行php腳本,例如/usr/bin/php test.php
2.腳本開頭第一行寫上#!/usr/bin/php,然後可以把腳本設為可執行 chmod a+x test.php,之後就可以用命令行的方式直接執行腳本了,例如./test.php
不知道這是不是你要的答案
Ⅳ phpstorm怎麼寫php代碼
工具原料:phpStorm+wapmserver+計算機
配置php和寫php代碼方法如下:
Ⅵ PHP中寫一個資料庫查詢的類的方法代碼要如何寫
<?php
if(!defined("INCLUDE_MYSQL_OK")) {
define("INCLUDE_MYSQL_OK","");
class MySQL_class {
var $debug = true;
var $db,
$id,
$result, /* 查詢結果指針 */
$rows, /* 查詢結果行數 */
$fields, /* 查詢結果列數 */
$data, /* 數據結果 */
$arows, /* 發生作用的紀錄行數目 */
$iid; /* 上次插入操作後,可能存在的"AUTO_INCREMENT"屬性欄位的值,如果為"0",則為空 */
var $user, $pass, $host, $charset;
/*
* 請注意用戶名和密碼是否正確
*/
function Setup ($host, $user, $pass, $charset='utf8') {
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
$this->charset = $charset;
}
function Connect ($db = "") {
global $CFG_MYSQL_INFO;
if (!$this->host) {
$this->host = $CFG_MYSQL_INFO["host"];
}
if (!$this->user) {
$this->user = $CFG_MYSQL_INFO["user"]; /* 在這里作修改 */
}
if (!$this->pass) {
$this->pass = $CFG_MYSQL_INFO["passwd"]; /* 在這里作修改 */
}
if (!$this->charset) {
$this->charset = "utf8"; /* 在這里作修改 */
}
if (empty($db))
$this->db = $CFG_MYSQL_INFO["database"];
else
$this->db = $db;
$this->id = @mysql_connect($this->host, $this->user, $this->pass);
if (!$this->id)
return false;
$this->SelectDB($this->db); /* 定位到指定資料庫 */
$this->Query("SET NAMES '".$this->charset."'");
return true;
}
function Close(){
@mysql_close($this->id);
}
function SelectDB ($db) {
if(!@mysql_select_db($db, $this->id))
return false;
else
return true;
}
function Begin () {
$this->result = @mysql_query("START TRANSACTION WITH CONSISTENT SNAPSHOT", $this->id);
if (!$this->result)
return false;
return true;
}
function Commit () {
$this->result = @mysql_query("COMMIT", $this->id);
if (!$this->result)
return false;
return true;
}
function Rollback () {
$this->result = @mysql_query("ROLLBACK", $this->id);
if (!$this->result)
return false;
return true;
}
function Escape ($str) {
$escstr = mysql_escape_string($str);
return $escstr;
}
# 普通查詢功能,主要用於返回結果是多條記錄的情況
# 請使用 Fetch 方法取得每條記錄信息
function Query ($query) {
$this->result = @mysql_query($query, $this->id);
if (!$this->result)
{
if ($this->debug)
MySQL_ErrorMsg ("不能執行查詢(query): $query");
else
return false;
}
$this->rows = @mysql_num_rows($this->result);
$this->fields = @mysql_num_fields($this->result);
if (!$this->rows) return false;
return true;
}
function QuerySql ($query) {
$ret = @mysql_query($query, $this->id);
if ($ret === false)
{
if ($this->debug)
MySQL_ErrorMsg ("不能執行查詢(query): $query");
else
return false;
}
$this->result = $ret;
$this->rows = @mysql_num_rows($this->result);
$this->fields = @mysql_num_fields($this->result);
return true;
}
# 如果查詢結果為單條記錄時使用,返回結果存儲於數組 data 中
function QueryRow ($query) {
$this->result = @mysql_query($query, $this->id);
if (!$this->result)
{
if ($this->debug)
MySQL_ErrorMsg ("不能執行查詢(query): $query");
else
return false;
}
$this->rows = @mysql_num_rows($this->result);
$this->data = @mysql_fetch_array($this->result, MYSQL_ASSOC);
//MySQL_ErrorMsg ("不能從查詢結果中取得數據 $query");
if (!$this->result || !$this->rows)
return false;
return true;
}
# 移動到指定記錄行,將該行結果儲存於數組 data 中
function Fetch ($row) {
if(!@mysql_data_seek($this->result, $row))
//MySQL_ErrorMsg ("不能定位到指定數據行 $row");
return false;
$this->data = @mysql_fetch_array($this->result, MYSQL_ASSOC);
//MySQL_ErrorMsg ("不能提取指定數據行數據 $row");
if (!$this->data)
return false;
return true;
}
/* 以下方法將作用於 arows */
/* 此方法將作用於 iid */
function Insert ($query) {
$this->result = @mysql_query($query, $this->id);
if (!$this->result)
{
if ($this->debug)
MySQL_ErrorMsg ("不能執行查詢(query): $query");
else
return false;
}
$this->arows = @mysql_affected_rows($this->id);
$this->iid = @mysql_insert_id($this->id);
return true;
}
function Update ($query) {
$this->result = @mysql_query($query, $this->id);
if (!$this->result)
{
if ($this->debug)
MySQL_ErrorMsg ("不能執行查詢(query): $query");
else
return false;
}
$this->arows = @mysql_affected_rows($this->id);
if (!$this->arows || $this->arows == -1)
return false;
return true;
}
function Delete ($query) {
$this->result = @mysql_query($query, $this->id);
if (!$this->result)
{
if ($this->debug)
MySQL_ErrorMsg ("不能執行查詢(query): $query");
else
return false;
}
$this->arows = @mysql_affected_rows($this->id);
return true;
}
function Error (){
return mysql_error()."(".mysql_errno().")";
}
function Errno (){
return mysql_errno();
}
}
/*
* MySQL_ErrorMsg
* 輸出錯誤信息
*/
function MySQL_ErrorMsg ($msg) {
# 關閉可能影響字元顯示的HTML代碼
echo("</ul></dl></ol>\n");
echo("</table></script>\n");
# 錯誤信息
$text = "<font color=\"#000000\" style=\"font-size: 9pt; line-height: 12pt\"><p>系統提示:".$msg."<br>";
$text .= "錯誤信息:";
$text .= mysql_error()."<br>";
$text .= "錯誤代碼:".mysql_errno()."<br><br>";
$text .= "請稍候再試,如果問題仍然存在,請與 <a href=\"mailto:[email protected]\">系統管理員</a> 聯系!";
$text .= "</font>\n";
die($text);
}
}
?>
一些細節的地方自己修改吧 主要是我在別的文件專門定義了全局變數,你看一遍,把應改的地方改一下就好了
Ⅶ 怎麼編寫PHP程序
有關PHP的安裝配置,可以查閱網頁陶吧上的「PHP安裝全攻略」專題文章。
3.3 語法從語法上看,PHP語言近似於C語言。可以說,PHP是借鑒C語言的語法特徵,由C語言改進而來的。我們可以混合編寫PHP代碼和HTML代碼,不僅可以將PHP腳本嵌入到 HTML 文件中,我們甚至還可以把 HTML 標簽也嵌入在 PHP 腳本里。以下是你可以採用的幾種方法。你可以選用其中一種你最適合的並且就這樣堅持這種方法!
從HTML中分離
以下是可以使用的方法:
<script language="php" . . . </script
<% . . . %
註:當你使用「<? . . . ?」將PHP代碼嵌入於HTML文件中時,可能會同XML發生沖突,同時,能否使用這一縮減形式還取決於PHP本身的設置。為了可適應XML和其它編輯器,你可以在開始的問號後面加上「php」使PHP代碼適應於XML分析器。如:?lt;?php. . . ?」。也可以像寫其它腳本語言那樣使用腳本標記,如:「<script language="php" . . . </script」。
語句與Perl和C一樣,在PHP中用「;」來分隔語句。那些從HTML中分離出來的標志也表示語句的結束。
注釋PHP支持C,C++和Unix風格的注釋方式:
/* C,C++風格多行注釋 */
// C++風格單行注釋
# Unix風格單行注釋
echo 和 print
PHP 和 HTML 最簡單的交互是通過 print 和 echo 語句來實現的,在實際使用中, print 和 echo 兩者的功能幾乎是完全一樣。可以這么說,凡是有一個可以使用的地方,另一個也可以使用。但是,兩者之間也還是一個非常重要的區別:在 echo 函數中,可以同時輸出多個字元串,而在 print 函數中則只可以同時輸出一個字元串。同時,echo函數並不需要圓括弧,所以echo函數更像是語句而不像是函數。讓我們來看看下面這一實例:<?$a="hello";
$b="world";
echo "a","b";
print "a","b";?用瀏覽器觀看這段代碼的運行情況後,你會看到這樣的運行結果:abaParse error: parse error in d:adminmyphphometest.php3 on line 5
這說明這段代碼並不能完全通過解釋,發生錯誤的地方就在代碼的第五行:「print "a","b";」。
3.4一個簡單的實例
通過我們已經學過的知識,你可以編寫一個最簡單的程序輸出一個也許是程序世界中最有名的詞語<HTML<HEAD<TITLE<?echo "Hello World!";?</TITLE</HEAD<BODY<H1First PHP page</H1<HR<?// Single line C++ style comment/*printing the message*/echo "Hello World!";
# Unix style single line comment?</BODY</HTML找本書坐下來看下,學一門語言至少要靜下心來研究一周,再加上不斷的實踐!補充:
Ⅷ php變數定義方法
PHP語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。以下是為大家分享的php變數定義方法,供大家參考借鑒,歡迎瀏覽!
1.定義常量define("CONSTANT", "Hello world.");
常量只能包含標量數據(boolean,integer,float 和 string)。
調用常量時,只需要簡單的用名稱取得常量的值,而不能加「$」符號,如:echo CONSTANT;
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
2.普通變數$a = "hello";
3.可變變數(使用兩個美元符號($))
$$a = "world";
兩個變數都被定義了:
$a 的內容是「hello」並且 $hello 的內容是「world」。
因此,可以表述為:
echo "$a ${$a}";或者 echo "$a $hello";它們都會輸出:hello world
要將可變變數用於數組,必須解決一個模稜兩可的問題。這就是當寫下 $$a[1] 時,解析器需要知道是想要 $a[1] 作為一個變數呢,還是想要 $$a 作為一個變數並取出該變數中索引為 [1] 的值。解決此問題的語法是,對第一種情況用 ${$a[1]},對第二種情況用 ${$a}[1]。
4.靜態變數
在函數內部static $a = 0;
注意:聲明中用表達式的結果對其賦值會導致解析錯誤如static $a =3+3;(error)
靜態變數僅在局部函數域中存在(函數內部),函數執行完之後,變數值不會丟失,可用於遞歸調用
5.全局變數
在函數體內定義的global變數,函數體外可以使用,在函數體外定義的global變數不能在函數體內使用,在全局范圍內訪問變數可以用特殊的 PHP 自定義 $GLOBALS 數組:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一個函數域內用 global 語句導入的一個真正的全局變數實際上是建立了一個到全局變數的引用
global $obj;
註:對於變數的 static 和 global 定義是以 應用 的方式實現的
6.給變數賦值:傳地址賦值(簡單引用):
$bar = &$foo; //加&符號到將要賦值的變數前
改動新的變數將影響到原始變數,這種賦值操作更加快速
注意:只有命名變數才可以傳地址賦值
注意:如果
$bar = &$a;
$bar = &$foo;
改變$bar的值只能改變變數foo的值,而不改變a的值(引用改變了)
7.PHP 超全局變數$GLOBALS : 包含一個引用指向每個當前腳本的全局范圍內有效的變數。該數組的鍵標為全局變數的 名稱。從 PHP 3 開始存在 $GLOBALS 數組。
$_SERVER : 變數由 Web 伺服器設定或者直接與當前腳本的執行環境相關聯。類似於舊數組 $HTTP_SERVER_VARS 數組(依然有效,但反對使用)。
$_GET : 經由 HTTP GET 方法提交至腳本的變數。
$_POST : 經由 HTTP POST 方法提交至腳本的變數。
$_COOKIE : 經由 HTTP Cookies 方法提交至腳本的變數。
$_FILES : 經由 HTTP POST 文件上傳而提交至腳本的變數。
文件上傳表單中要有 enctype="multipart/form-data"
$_ENV : 執行環境提交至腳本的變數。
$_REQUEST :經由 GET,POST 和 COOKIE 機制提交至腳本的.變數,因此該數組並不值得信任。所有包含在該數組中的變數的存在與否以及變數的順序均按照 php.ini 中的 variables_order 配置指示來定義。該數組沒有直接模擬 PHP 4.1.0 的早期版本。參見 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在於 $_REQUEST 中。
$_SESSION :當前注冊給腳本會話的變數。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重啟web伺服器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含標量數據(boolean,integer,float 和 string)。
可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態的,也可以用函數
constant() 來讀取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。
注: 常量和(全局)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字元串調用它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $w3sky[bar] 是錯誤的(除非事先用 define() 將 bar 定義為一個常量)。如果只想檢查是否定義了某常量,用 defined() 函數。
常量和變數不同:
* 常量前面沒有美元符號($);
* 常量只能用 define() 函數定義,而不能通過賦值語句;
* 常量可以不用理會變數范圍的規則而在任何地方定義和訪問;
* 常量一旦定義就不能被重新定義或者取消定義;
* 常量的值只能是標量。
定義常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
Ⅸ php封裝一個用戶類,裡面有登錄注冊方法,這個要怎麼寫
第一步:login.php
//登陸方法
public function login(){
//如果用戶名和密碼為空,則返回登陸頁面
if(empty($_POST['username']) || empty($_POST['password'])){
$data['verifycode'] = rand(1000,9999);//生成一個四位數字的驗證碼
//將驗證碼放入session中,注意:參數是數組的格式
$this->session->set_userdata($data);
//注意:CI框架默認模板引擎解析的模板文件中變數不需要$符號
//$this->parser->parse("admin/login",$data);
//smarty模板變數賦值
$this->tp->assign("verifycode",$data['verifycode']);
//ci框架在模板文件中使用原生態的PHP語法輸出數據
//$this->load->view('login',$data);//登陸頁面,注意:參數2需要以數組的形式出現
//顯示smarty模板引擎設定的模板文件
$this->tp->display("admin/login.php");
}else{
$username = isset($_POST['username'])&&!empty($_POST['username'])?trim($_POST['username']):'';//用戶名
$password = isset($_POST['password'])&&!empty($_POST['password'])?trim($_POST['password']):'';//密碼
$verifycode = isset($_POST['verifycode'])&&!empty($_POST['verifycode'])?trim($_POST['verifycode']):'';//驗證碼
//做驗證碼的校驗
if($verifycode == $this->session->userdata('verifycode')){
//根據用戶名及密碼獲取用戶信息,注意:參數2是加密的密碼
$user_info=$this->user_model->check_user_login($username,md5($password));
if($user_info['user_id'] > 0){
//將用戶id、username、password放入cookie中
//第一種設置cookie的方式:採用php原生態的方法設置的cookie的值
//setcookie("user_id",$user_info['user_id'],86500);
//setcookie("username",$user_info['username'],86500);
//setcookie("password",$user_info['password'],86500);
//echo $_COOKIE['username'];
//第二種設置cookie的方式:通過CI框架的input類庫
$this->input->set_cookie("username",$user_info['username'],3600);
$this->input->set_cookie("password",$user_info['password'],3600);
$this->input->set_cookie("user_id",$user_info['user_id'],3600);
//echo $this->input->cookie("password");//適用於控制器
//echo $this->input->cookie("username");//適用於控制器
//echo $_COOKIE['username'];//在模型類中可以通過這種方式獲取cookie值
//echo $_COOKIE['password'];//在模型類中可以通過這種方式獲取cookie值
//第三種設置cookie的方式:通過CI框架的cookie_helper.php函數庫文件
//這種方式不是很靈驗,建議大家採取第二種方式即可
//set_cookie("username",$user_info['username'],3600);
//echo get_cookie("username");
//session登陸時使用:將用戶名和用戶id存入session中
//$data['username']=$user_info['username'];
//$data['user_id']=$user_info['user_id'];
//$this->session->set_userdata($data);
//跳轉到指定頁面
//注意:site_url()與base_url()的區別,前者帶index.php,後者不帶index.php
header("location:".site_url("index/index"));
}
}else{
//跳轉到登陸頁面
header("location:".site_url("common/login"));
}
}
}
}
第二步:User_model.php
//cookie登陸:檢測用戶是否登陸,如果cookie值失效,則返回false,如果cookie值未失效,則根據cookie中的用戶名和密碼從資料庫中獲取用戶信息,如果能獲取到用戶信息,則返回查詢到的用戶信息,如果沒有查詢到用戶信息,則返回0
public function is_login(){
//獲取cookie中的值
if(empty($_COOKIE['username']) || empty($_COOKIE['password'])){
$user_info = false;
}else{
$user_info=$this->check_user_login($_COOKIE['username'],$_COOKIE['password']);
}
return $user_info;
}
//根據用戶名及加密密碼從資料庫中獲取用戶信息,如果能獲取到,則返回獲取到的用戶信息,否則返回false,注意:密碼為加密密碼
public function check_user_login($username,$password){
//這里大家要注意:$password為md5加密後的密碼
//$this->db->query("select * from ");
//快捷查詢類的使用:能為我們提供快速獲取數據的方法
//此數組為查詢條件
//注意:關聯數組
$arr=array(
'username'=>$username,//用戶名
'password'=>$password,//加密密碼
'status'=>1 //賬戶為開啟狀態
);
//在database.php文件中已經設置了數據表的前綴,所以此時數據表無需帶前綴
$query = $this->db->get_where("users",$arr);
//返回二維數組
//$data=$query->result_array();
//返回一維數組
$user_info=$query->row_array();
if(!empty($user_info)){
return $user_info;
}else{
return false;
}
}
第三步:其它控制器:
public function __construct(){
//調用父類的構造函數
parent::__construct();
$this->load->library('tp'); //smarty模板解析類
$this->load->helper('url'); //url函數庫文件
$this->load->model("user_model");//User_model模型類實例化對象
$this->cur_user=$this->user_model->is_login();
if($this->cur_user === false){
header("location:".site_url("common/login"));
}else{
//如果已經登陸,則重新設置cookie的有效期
$this->input->set_cookie("username",$this->cur_user['username'],3600);
$this->input->set_cookie("password",$this->cur_user['password'],3600);
$this->input->set_cookie("user_id",$this->cur_user['user_id'],3600);
}
$this->load->library('pagination');//分頁類庫
$this->load->model("role_model");//member_model模型類
$this->load->model("operation_model");//引用operation_model模型
$this->load->model("object_model");//引用object_model模型
$this->load->model("permission_model");//引用permission_model模型
}
Ⅹ PHP中這種方法怎樣寫的
類里的方法,變數如果不加任何描述關鍵詞那麼默認的都是public
至於那種連貫寫法主要是方法返回了當前類的對象
就像一樓的那種