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
至于那种连贯写法主要是方法返回了当前类的对象
就像一楼的那种