用PHP开发C/S结构(一个简单的例子)

 更新时间:2016年11月25日 17:36  点击:1618
服务器
<?php
// Server
// 设置错误处理
error_reporting (E_ALL);
// 设置运行时间
set_time_limit (0);
// 起用缓冲
ob_implicit_flush ();
$ip = "127.0.0.1";        // IP地址
$port = 1000;        // 端口号
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);    // 创建一个SOCKET
if ($socket)
    echo "socket_create() successed! ";
else
    echo "socket_create() failed:".socket_strerror ($socket)." ";
$bind = socket_bind ($socket, $ip, $port);           // 绑定一个SOCKET
if ($bind)
    echo "socket_bind() successed! ";
else
    echo "socket_bind() failed:".socket_strerror ($bind)." ";
$listen = socket_listen ($socket);            // 间听SOCKET
if ($listen)
    echo "socket_listen() successed! ";
else
    echo "socket_listen() failed:".socket_strerror ($listen)." ";
while (true)
{
    $msg = socket_accept ($socket);            // 接受一个SOCKET
    if (!$msg)
    {
        echo "socket_accept() failed:".socket_strerror ($msg)." ";
        break;
    }
    $welcome = "Welcome to PHP Server! ";
    socket_write ($msg, $welcome, strlen ($welcome));
    while (true)
<?
/*
GetFileType
用法:GetFiletype($filename)
*/
function GetFiletype($Filename) {
    if (substr_count($Filename, ".") == 0) {        // 检查文件名中是否有.号。
        return;           // 返回空
    } else if (substr($Filename, -1) == ".") {        // 检查是否以.结尾,即无扩展名
        return;           // 返回空
    } else {
        $FileType = strrchr ($Filename, ".");    // 从.号处切割
        $FileType = substr($FileType, 1);    // 去除.号
        return $FileType;       // 返回
    }
}
$Filename = "Testfilename.php4";
$Filename = GetFileType($Filename);
echo $Filename;       //  打印出php4
?>

1.简易判断ip地址合法性
2.email的正则判断
3.检测ip地址和mask是否合法的例子
4.关于表单刷新
5.关于表单刷新
1.简易判断ip地址合法性
if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) echo "is ipn";
----
2.email的正则判断
eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$", $email);
----
3.检测ip地址和mask是否合法的例子
$ip = '192.168.0.84';
$mask = '255.255.255.0';
$network = '192.168.0';
$ip = ip2long($ip);
$mask = ip2long($mask);
$network = ip2long($network);
if( ($ip & $mask) == $network) echo "valid ip and maskn";
?>
----
4.今天解决了一个巨郁闷的问题
ipb的添加用户页面toadduser.php似乎会重复提交,导致在添加新用户的时候总是报该用户已经存在...已经郁闷了我3天了,终于搞定,大快人心!
----
5.关于表单刷新
问:为什么我在点击浏览器的后退按钮后,所有字段的信息都被清空了?
答:这是由于你在你的表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。解决办法为,在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。
补充:还有基于session的解决方法,在session_start前加上
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般
可以在session_start();前加上 session_cache_limiter("private,max-age=10800");
摘自phpe.net
----
6.快速搞定文件下载头部输出
header("Content-type: application/x-download");
header("Content-Disposition: attachment; filename=$file_download_name;");
header("Accept-Ranges: bytes");
header("Content-Length: $download_size");
echo 'xxx'
.......2004-08-19 11:50:30
----
7.用header输出ftp下载方式,并且支持断点续传
一个例子:
header('Pragma: public');
header('Cache-Control: private');
header('Cache-Control: no-cache, must-revalidate');
header('Accept-Ranges: bytes');
61、增加了create_function(),用于快速建立函数。(Zeev, Zend Engine)
62、增加了数组和数组、对象和对象的比较功能。“==”符号提供无序的比较功能,“===”提供有序的比较。(Zeev, Zend Engine)
63、Allow all functions that receive user-defined function callbacks to accept an array that contains an object and a method name, in place of a function name, e.g. usort($array, array($obj, "ObjSort"))
63、允许所有函数支持用户定义的function callback(不知道怎么翻)用来接受一个包括一个对象和一个方法名的数组。(Zeev, Zend Engine)
64、增加了set_error_handler()函数,允许用户自己编写错误处理函数以替代内建的错误处理功能。(Zeev, Zend Engine)
65、把user_error()改名为trigger_error();但user_error()继续保留有效。(Zeev, Zend Engine)
66、修正了全局/静态的声明为需要在其末尾加上分号“;”。(Andi, Zend Engine)
67、清除了PCRE(这是什么东西?)扩展。(Andrei)
68、给in_array()函数增加了第三个参数。如果此参数为 true ,in_array()将进行严格的比较以替代默认的比较方法。(Andrei)
69、增加了pg_trace()和pg_untrace()函数。(Dominic J. Eidson & Zeev)
70、ignore_user_abort=Off现在是默认值。(Thies)
71、增加了能递归合并相同键值的函数array_merge_recursive()。(Andrei)
72、修正了OCIParse在解析非法SQL语句时崩溃的问题。(Thies)
73、修正了在非永久性连接时,mysql_connect()会忽略socket参数的BUG。(Zeev)
74、在php.ini中增加disable_functions的选项,使管理员能禁用某些可能引起安全问题的函数。(Zeev)
75、修正了WIN32中session的问题。在php.ini里,save_path选项,现在需要用分号“;”代替原来的“:”来限定使用的目录层数。(Andi)
76、在无法找到PHP文件时,APACHE将给出“Declined”的信息。(Rasmus)
77、修正了十进制数字在国际化环境下的问题。数字应为标准的美国格式(为什么??!!)。(Andi, Zend Engine)
78、给函数preg_quote()增加了第二个参数。这个参数允许引用一个通常是常规表达式分隔符的字符。(Andrei)
79、未提交的OCI8的事务将在连接关闭前取消。(Thies)
80、ignore_user_abort()及一些相关函数能在CGI模式下工作正常。(Patch by daniel.braun@ercom.fr)
在查询中加上convert转换。。。
convert(varchar(10),字段名,转换格式)
比如:
select user_id,convert(varchar(10),date,11) as date from tb_user
转换格式:
0或100 month dd yyyy hh:miAMPM
1    mm/dd/yy
2 yy.mm.dd
3 dd/mm/yy
4 dd.mm.yy
5 dd-mm-yy
6 dd month yy
7 month dd,yy
8 hh:mi:ss
9或109 month dd yyyy hh:mi:ss:mmmAMPM
10 mm-dd-yy
11 yy/mm/dd
12 yymmdd
101 mm/dd/yyyy
102 yyyy.mm.dd
103 dd/mm/yyyy
104 dd.mm.yyyy
105 dd-mm-yyyy
106 dd month yyyy
107 month dd,yyyy
108 hh:mi:ss
110 mm-dd-yyyy
111 yyyy/mm/dd
112 yyyymmdd

[!--infotagslink--]

相关文章

  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • vscode搭建STM32开发环境的详细过程

    这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • 安卓开发之Intent传递Object与List教程

    下面我们一起来看一篇关于 安卓开发之Intent传递Object与List的例子,希望这个例子能够为各位同学带来帮助。 Intent 不仅可以传单个的值,也可以传对象与数据集合...2016-09-20
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • 微信开发生成带参数的二维码的讲解

    在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微...2016-05-19
  • 如何设计一个安全的API接口详解

    在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
  • 关于MySQL外键的简单学习教程

    在MySQL中,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时...2015-11-24
  • 分享我对JS插件开发的一些感想和心得

    这篇文章主要给大家分享我对JS插件开发的一些感想和心得的相关资料,需要的朋友可以参考下...2016-02-09
  • Chrome插件开发系列一:弹窗终结者开发实战

    从这一节开始,我们将从零开始打造我们的chrome插件工具库,第一节我们将讲一下插件开发的基础知识并构建一个简单但却很实用的插件,在构建之前,我们先简单的了解一下插件以及插件开发的基础知识...2020-10-03
  • Cocos2d-x UI开发之CCControlColourPicker控件类使用实例

    这篇文章主要介绍了Cocos2d-x UI开发之CCControlColourPicker控件类使用实例,本文代码中包含大量注释来讲解CCControlColourPicker控件类的使用,需要的朋友可以参考下...2020-04-25
  • 详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现

    这篇文章主要介绍了详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现的相关资料,需要的朋友可以参考下...2017-03-13
  • C# 实现简单打印的实例代码

    C# 实现简单打印的实例代码,需要的朋友可以参考一下...2020-06-25
  • 纯Css实现下拉菜单的简单例子

    下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
  • Java开发SpringBoot集成接口文档实现示例

    这篇文章主要为大家介绍了Java开发SpringBoot如何集成接口文档的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-10-28
  • 24个ES6方法解决JS实际开发问题(小结)

    这篇文章主要介绍了24个ES6方法解决JS实际开发问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-01
  • Drupal8模块开发之区块和表单教程

    前页我们讲了 Drupal8模块开发之路由、控制器和菜单链接教程 ,现在我们将学习进一步开发Drupal8模块,区块和表单。 上一教程:Drupal8模块开发之路由、控制器和菜单链...2016-11-25
  • php时间日期对比与日期加减例子

    在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
  • php更新修改excel中的内容例子

    本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25