php无阻塞SSH客户端实例
价值:
- 基于命令,最大程度解决了网络延迟和丢包问题。
- windows和Linux下测试通过。
不足:
- 没有自动补全功能
- 没有sftp和scp等其他功能
- 没有颜色和粗体显示
- 个别情况下显示上不是很完美
- 因为现在基本不用它了,所以暂时先不进行改进。
linux 运行效果
windows下运行效果
因为是框架中的一个类,所以个别通用函数(比如debug_print())需要自己提供,我这里就不改写了
代码如下 | 复制代码 |
<?php /** function shell(){ //解决windows命令行的读取问题,没有别的办法了。 function __destruct(){ private function disconnect(){ |
demo
代码如下 | 复制代码 |
//$ssh=new FSSH(array('addr'=>'x.x.x.x:22','fp'=>array('')),'tunnel',array('pub'=>'E:Identity.pub','pri'=>'E:Identity','type'=>'ssh-rsa')); |
php.ini中的session配置说明
下面介绍能让session运行的必要配置步骤
手动配置PHP运行环境时,最容易遗忘的一项是服务器端session文件的存储目录配置工作,打开php.ini文件,搜索Session,找到session.save_path,默认值为/tmp,代表session文件保存在c:/tmp目录下,默认tmp目录并没有创建,你可以在c盘下创建tmp目录,或者创建一个其他目录,比如leapsoulcn,再修改session.save_path的值,并去掉;,即
session.save_path = ‘/leapsoulcn’;
注意事项:
1、一般为了保证服务器的安全,session.save_path值最好设置为外网无法访问的目录,另外如果你是在linux服务器下进行session配置,请务必同时配置此目录为可读写权限,否则在执行session操作时会报错。
2、在使用session变量时,为了保证服务器的安全性,最好将register_globals设置为off,以保证全局变量不混淆,在使用session_register()注册session变量时,你可以通过系统全局变量$_SESSION来访问,比如你注册了leapsoulcn变量,你可以通过$_SESSION['leapsoulcn']来访问此变量。PHP环境变量$_SERVER和系统常量详细说明
session.save_path配置其他说明事项,从php.ini配置文件翻译而来
你可以使用”N;[MODE;]/path”这样模式定义该路径,N是一个整数,表示使用N层深度的子目录,而不是将所有数据文件都保存在一个目录下。
[MODE;]可选,必须使用8进制数,默认600(=384),表示每个目录下最多保存的会话文件数量。[MODE;]并不会改写进程的umask。php不会自动创建这些文件夹结构。可使用ext/session目录下的mod_files.sh脚本创建。如果该文件夹可以被不安全的用户访问(比如默认的”/tmp”),那么将会带来安全漏洞。当N>0时自动垃圾回收将会失效,具体参见下面有关垃圾搜集的部分。
如果你服务器上有多个虚拟主机,建议针对每个不同的虚拟主机分别设置各自不同的目录。
至此最基本的session配置就完成了,你只要保存php.ini,并重启apache,即可使用session功能。
其他session配置说明
session.save_handler = ”files”
默认以文件方式存取session数据,如果想要使用自定义的处理器来存取session数据,比如数据库,用”user”。
session.use_cookies = 1
是否使用cookies在客户端保存会话sessionid,默认为采用cookies
session.use_only_cookies = 0
是否仅仅使用cookie在客户端保存会话sessionid,这个选项可以使管理员禁止用户通过URL来传递id,默认为0,如果禁用的话,客户端如果禁用Cookie将使session无法工作。
session.name = “PHPSESSID”
当做cookie name来使用的session标识名
session.auto_start = 0
是否自动启动session,默认不启动,我们知道在使用session功能时,我们基本上在每个php脚本头部都会通过session_start()函数来启动session,如果你启动这个选项,则在每个脚本头部都会自动启动session,不需要每个脚本头部都以session_start()函数启动session,推荐关闭这个选项,采用默认值。
session.cookie_lifetime = 0
传递sessionid的Cookie有效期(秒),0表示仅在浏览器打开期间有效。
session.gc_probability = 1
session.gc_divisor = 100
定义在每次初始化会话时,启动垃圾回收程序的概率。计算公式如下:session.gc_probability/session.gc_divisor,比如1/100,表示有1%的概率启动启动垃圾回收程序,对会话页面访问越频繁,概率就应当越小。建议值为1/1000~5000。
session.gc_maxlifetime = 1440
设定保存的session文件生存期,超过此参数设定秒数后,保存的数据将被视为’垃圾’并由垃圾回收程序清理。判断标准是最后访问数据的时间(对于FAT文件系统是最后刷新数据的时间)。如果多个脚本共享同一个session.save_path目录但session.gc_maxlifetime不同,将以所有session.gc_maxlifetime指令中的最小值为准。
如果你在session.save_path选项中设定使用子目录来存储session数据文件,垃圾回收程序不会自动启动,你必须使用自己编写的shell脚本、cron项或者其他办法来执行垃圾搜集。
比如设置”session.gc_maxlifetime=1440″ (24分钟):
cd /path/to/sessions; find -cmin +24 | xargs rm
以上是一些常用的session配置选项说明,更多的session配置选项说明你可以参考php.ini文件中的说明。
至此,在php.ini配置文件中对session进行配置的PHP教程就介绍完毕了,通过上面的步骤实践与学习,基本的session功能都可以使用,至于session性能等其他方面则需要根据服务器环境和需求进行微调了,这个得自己体会。
附一表
[Session]
session.save_handler = files ; 用于保存/取回数据的控制方式
session.save_path = C:wintemp ; 在 save_handler 设为文件时传给控制器的参数,
; 这是数据文件将保存的路径。
session.use_cookies = 1 ; 是否使用cookies
session.name = PHPSESSID
; 用在cookie里的session的名字
session.auto_start = 0 ; 在请求启动时初始化session
session.cookie_lifetime = 0 ; 为按秒记的cookie的保存时间,
; 或为0时,直到浏览器被重启
session.cookie_path = / ; cookie的有效路径
session.cookie_domain = ; cookie的有效域
session.serialize_handler = php ; 用于连接数据的控制器
; php是 PHP 的标准控制器。
session.gc_probability = 1 ; 按百分比的'garbage collection(碎片整理)'进程
; 在每次 session 初始化的时候开始的可能性。
session.gc_maxlifetime = 1440 ; 在这里数字所指的秒数后,保存的数据将被视为
; '碎片(garbage)'并由gc 进程清理掉。
session.referer_check = ; 检查 HTTP引用以使额外包含于URLs中的ids无效
session.entropy_length = 0 ; 从文件中读取多少字节
session.entropy_file = ; 指定这里建立 session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; 设为{nocache,private,public},以决定 HTTP 的
; 缓存问题
session.cache_expire = 180 ; 文档在 n 分钟后过时
session.use_trans_sid = 1 ; 使用过渡性的 sid 支持,若编译时许可了
; --enable-trans-sid
url_rewriter.tags = "a=href,
搭建PHP的开发环境
时间: 8.1日
要求:
手动安装php环境(集成环境不算, 仅winow下即可, linux作参考, 但题linux下也可出).
包括mysql+php+apache+phpadmin, 版本不限. 要求能进行web测试。
安装开发IDE,包括(zend 5+ editplus+emeditor+dreamweaver)
手册:
http://www.php.net/manual/zh/install.windows.php
http://www.php.net/manual/zh/install.windows.apache2.php
http://www.php.net/manual/zh/install.windows.extensions.php
参考内容:
http://www.php.net/manual/zh/install.unix.php
http://www.php.net/manual/zh/install.pecl.php
关注内容:phpinfo, 安装成功不成功, 主要看这个!
======================================
1、apache、mysql、php的windows下的安装顺序
答:apache、mysql要在php前安装,apache和mysql的安装顺序随意
2、开启了php_curl扩展,为什么还会提示没有开启curl服务呢,怎么解决?
答:把PHP目录中的libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll文件到system32 目录下后,重启apache
3、在windows下使php工作于apache2.x之中的三种方法?
答:handler、cgi、fastcgi
注:一般模块安装为 handler
========================================
1、当配置好apache php 后在浏览器上输入http://localhost 页面没有相应 是因为没有配置默认页面DirectoryIndex
2、下载 PHP 包时会有这样的问题在下载的PHP 包里没有php5apache2_2.dll扩展,是因为下载包时有两种
3、apache PHP 配置时一般会加上两句话
LoadModule php5_module E:/PHP/php-5.2.10/php5apache2_2.dll #PHP目录
AddType application/x-httpd-php .php #执行php的文件类型
但是总有时会报错 原因看看加的两段有没有多于空格,x-httpd-php后面有空格
==============================================
1.windows下安装环境时,php与apache结合配置时,修改了php与apache的配置文件,重启apache,出现” the requested operation has failed” 如何解决?
答:出现上述错误,无法确定是哪个出问题,可以利用doc命令找出错误原因,首先需进入apache所在目录,然后敲入命令:httpd.exe -w -n "Apache2.2" -k start
下面会有详细信息说明。
需要注意:保证php目录下面 php5_apache2_2.dll文件存在;
在配置apache时注意引入此文件,并指定到正确目录下;
在编辑apache配置时注意空格问题,如果有多余空格,可能会引起错误;
批注:感觉你的问你是php 跟apache 压根就没有建立联系,不怎么清楚
2.windows下安装php+apache+mysql开发环境,如何配置服务器仅处理get和post请求?
答:配置apache的配置文件如下:
<LimitExcept GET POST>
Deny from all
</LimitExcept>
批注:这个没找到
3.myql安装完成,出现不能“Start service”,这是为什么?
答:
<1.出现在以前有安装mysql的服务器上,解决的办法,先保证以前安装的mysql服务器彻底卸载掉了;
<2.检查是否按上面一 步所说,之前的密码是否有修改,如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“Modify Security Settings”前面的勾去掉,安装配置完成后另行修改密码;
<3.将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要把之前数据库备份;
批注:不知道说得对不对,听着好像是已经装过mysql 但是再装一个就会冲突
==========================================
1,加入调试代码
建立一个debug.php文件。里面可以加入$_GET,$_POST等值。然后在php.ini中设置:include_path = "c:/php",并将debug.php放在此文件夹。
如果想添加公共头尾文件一样可以:
在ini中找到 Automatically add files before or after any PHP document.
auto_prepend_file = auto_prepend_file.php; //依附在头部
auto_append_file = auto_append_file.php; //依附在尾部
2,如何使Html/PHP格式的字符串不被解释,而是照原样显示
例子:
PHP";
代码如下 | 复制代码 |
Echo "被解释过的: ".$str."经过处理的:"; Echo htmlentities(nl2br($str)); //两次转换后输出。 ?> |
3,如何配置GD库
1:拷贝dlls文件夹里所有dll文件到system32目录下c:windowssystem32
2:打开php.ini
设置extension_dir = "c:/php/extensions/";
3:extension=php_gd2.dll;把extension前面的逗号去掉,如果没有php_gd2.dll,php_gd.dll也一样,保证确实存在这个文件c:/php/extensions/php_gd2.dll
注: 一般用环境变量, 不需要把dlls文件夹考到c:windowssystem32
===================================================锫奕
1,在判断$_POST全局变量是否有传递过来的参数时,用if可以吗?
答:建议用isset(),if属于判断语句,其里面的变量必须是已经被定义过的,所以不能用if。
批注: 全局变量也称为外部变量,它是在函数外部定义的变量。
注: isset() 判断变量有无声明, 然后再判断其他。如果懒,可以用empty()
$_POST 是全局变量,那就说明它已经是定义过的,所以能用
2,form表单提交时,提交的什么内容?
答:在提交时,提交的是标签的name和value属性,其中name作为键值,value作为数组元素,如果标签没有name属性,那么就不会提交。
批注:我不知道你的提交是指什么,但是我知道如果有提交地址他会找到那个地址,提交后的那个值是空的。是这意思吗?
注: 表单提交时, 如果是get, 就是get, 如果是post, 有编码方式的区别!可以注意一下!另外, 有的最然有name, 但无值时, 用 isset()取不到真。
3,什么是会话?
答:当一个用户访问一个网站时就会建立一个会话,与服务器进行交流,当整个网站的所有页面都被关闭时,会话结束,session也被释放了。
批注: 就WEB开发来说,一个会话就是你通过浏览器与服务器之间的一次通话,只不过这种通话是以用浏览器浏览的方式来实现的
这是我百度的 ,不知道对不,我也不怎么懂。但是看上去像那回事,tom讲解
注:会话是浏览器和服务器间保持的一个会话, 会话不是全局级的, 是用户全局级的。一般情况下,这种会是浏览器生命周期, 浏览器关闭, 会话结束! 当然这个也可以配置。见php.ini中的session部分。 当你新打开一个窗口时, 会启动一个新会话,但你从一个旧窗口中打开新窗口, 不会生成新会话(可测一下)。
=======================================================
1.局域网内两台机器apache 可不可以互相访问
可以
修改httpd.conf的配置就可以了。
加入ip是192.168.0.1(这是一个局域网内网ip)
修改Listen的配置为
Listen 192.168.0.1:80 然后重启apache
另外:第一,服务器的防火墙要关,如果你是用xp系统的话,系统自带的防火墙一定要关。
第二,配置问题
代码如下 | 复制代码 |
<Directory "C:/Apache2.2/htdocs"> Order allow,deny Allow from all </Directory> |
批注: 1. 加入ip是192.168.0.1(这是一个局域网内网ip) 这个应该是在 WindowsSystem32driversetchosts 中加吗?
Tom注:域名配置只是将本机的域名指向哪个IP, 但访问时,也会反host名带过去!
服务器需要配置虚拟主机监控这个IP, 根据host名设分流, 才能访问。
2. 为什么要修改这个 Listen的配置
注: 表示服务器监听哪个端口
2.php扩展库出ext外还有其他的吗?比如说连接mysql外的数据库的dll,该去哪找?
有很多扩展库,例如curl等,也可以自己写。php_dba.dll和php_oci8.dll应该是php自带的,常用的应该都在php/ext中。
注: window下的dll库,除了自带的外,其他需外他人或自已编译dll. 手册上有如何编译的方法。
3.php怎么发布一个完整的网站项目(windows/linux/unix),直接放在www目录下就可以了吗
答案(网上查的)
a. 代码仓库直接发布
在服务器上 svn export ....
b. 如果服务器很多,
(1)在一台发布 服务器上 svn export ...
(2) 然后向别的服务器推送, rsync ....
批注: 看不懂
注: 只要能发上就行。
=======================================================
1、apache、mysql、php在windows下的过程
答:首先安装apache或mysql数据库,两个都安装成功后,最后安装php
2.安装完成后本地搭建链接在线项目,因数据库链接使用pdo,如何开启pdo扩展?
答:把PHP目录中的php_pdo.dll文件拷贝到system32 目录下,然后打开php.ini,找到extension=php_pdo.dll;把extension前面的分号去掉
3.如何在本地自定义域名访问本地项目,如在本地搭建分站项目
答:链接自定义,例如定义访问地址为:bendi.homelink.com.cn,打开目录:C:WINDOWSsystem32driversetc,找到hosts文件并打开,在末行加入127.0.0.1 bendi.homelink.com.cn,关闭保存!
之后打开httpd.conf进行编辑,加入:
代码如下 | 复制代码 |
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin 邮箱地址 DocumentRoot 项目存放路径 ServerName bendi.homelink.com.cn </VirtualHost> |
加入后保存关闭,之后重启apache和浏览器就可以直接以自定义域名进行访问了
Xdebug是什么?它是一款可以用来调试php代码运行一款工具,下面小编来给大家介绍Xdebug安装方法,下面教程是基于linux与windows系统的哦。Q:xdebug是什么?
A:xdebug是一个开源的php调试器,以php模块的形式加载并被使用。
上周发现xdebug出了RC(release candidate)2版了,就拿下来安装了一下,顺便写了一个安装手册,希望对大家有用。
linux xdebug模块和相关工具的安装:
测试环境:Ubuntu12.04+PHP 5.3.10
代码如下 | 复制代码 |
# 获取xdebug最新源码包 |
我这边生成的路径为:/usr/lib/php5/20090626+lfs/xdebug.so
然后更改php.ini文件
自行选择增加这些配置选项
代码如下 | 复制代码 |
[xdebug] |
配置完成后可使用php -i|grep xdebug查询配置好的值
windows系统xdebug模块安装
1、去www.xdebug.org下载相应版本php的模块文件,保存下载后的文件到php的ext目录,可以自己修改文件的名称,如保存成:xdebug-2.0.0RC1.dll
2、修改php.ini,增加如下信息
代码如下 | 复制代码 |
[Xdebug] |
参数解释:
zend_extension_ts=”c:/php5/ext/xdebug-2.0.0RC1.dll”
;加载xdebug模块。这里不能用extension=xdebug-2.0.0RC1.dll的方式加载,必须要以zend的方式加载,否则安装上后,phpinfo打印出来的里的xdebug段的会有Must LOADED AS ZEND EXTENSION的警告信息(原因未知)。
xdebug.auto_trace=on;
;自动打开“监测函数调用过程”的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。
xdebug.collect_params=on;
;打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。
xdebug.collect_return=on
;打开收集“函数返回值”的功能。将函数的返回值列入函数过程调用的监测信息中。此配置项的默认值为off。
xdebug.trace_output_dir=”c:/Temp/xdebug”
;设定函数调用监测信息的输出文件的路径。
xdebug.profiler_enable=on
;打开效能监测器。
xdebug.profiler_output_dir=”c:/Temp/xdebug”;
;设定效能监测信息输出文件的路径。
还有一些更为具体的参数设定,详见:http://www.xdebug.org/docs-settings.php
3、重启apache
这样,在本地运行php的时候,会在所设定的目录里产生一些调试信息的文件:
函数调用过程监测信息文件的文件名格式:trace.××××××.xt。这个文件可以直接查看,里面包含了函数运行的时间,函数调用的参数值,返回值,所在的文件和位置等信息。内容格式还是相对直观的。
效能监测文件的文件名格式:cachegrind.out.××××××××。
这个文件也可以直接查看,不过信息格式不易被人类所理解,
所以我们需要接下来的一个软件。
二、安装wincachegrind
由于效能监测文件:cachegrind.out.××××××××文件的内容不易被人类所理解,所以我们需要一个工具来读取它。windows下就有一款这样的软件:wincachegrind。
1、到http://sourceforge.net/projects/wincachegrind/下载安装wincachegrind
2、安装运行后,点击Tools->options,设定你的working folder(php.ini里xdebug.profiler_output_dir的值)
这样就可以比较直观的查看效能监测文件的信息了。
另:不知道是哪个参数没有设定正确,我机器上所有的php的运行后的函数调用过程监测信息都写到了一个trace.××××××.xt中,哪个达人要是知道就给指条明路吧
curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧。php安装好后默认是没有启用curl功能扩展的,下面几个步骤可以开启此项功能扩展。
windows 安装curl
1、打开PHP安装目录,搜索以下三个文件 ssleay32.dll、libeay32.dll和 php_curl.dll,一一拷贝到系统目录下的system32文件夹下,
2、修改php.ini文件,找到;extension= php_curl.dll行,去掉前面的;号,保存,重启服务器。
3、测试,在站点目录下建立一个PHP文件,内容如下
代码如下 | 复制代码 |
$ch = curl_init(“http://www.111cn.net”); |
linux安装curl
假如原先编译的php目录在/usr/local/php5目录下;
apache在/usr/local/apache2目录下;
php源代码在/home/kevin125/src目录下。
如果实际目录与假定的目录不一致,则在下面的命令中做调整。
1. 找到当前运行的php版本的源代码目录,如 php-5.2.10。
进入curl扩展库目录。
代码如下 | 复制代码 |
$cd /home/kevin125/src/php-5.2.10/ext/curl |
2. 调用phpize程序生成编译配置文件。
代码如下 | 复制代码 |
$/usr/local/php5/bin/phpize |
3. 编译扩展库,分别执行下面的configure和make命令。
代码如下 | 复制代码 |
$./configure –with-php-config=/usr/local/php5/bin/php-config |
configure这一步执行通过后,再执行make命令,如果configure执行不通过,则查找错误原因。
$make
make成功执行后,生成的扩展库文件在当前目录的 modules 子目录下,如 /home/kevin125/src/php-5.2.10/ext/curl/modules/curl.so
4. 配置php.ini文件
将编译好的扩展库文件复制到apache2 modules目录下。
代码如下 | 复制代码 |
$cp /home/kevin125/src/php-5.2.10/ext/curl/modules/curl.so /usr/local/apache2/modules/ |
找到php.ini文件所在目录位置,然后编辑。可以通过查看phpinfo信息来确定php.ini文件位置。
在php.ini文件中找到设置扩展目录的位置,然后将扩展路径设置到apache2 modules目录下
代码如下 | 复制代码 |
extension_dir = “/usr/local/apache2/modules/” |
在php.ini的设置扩展库位置,设置要添加的扩展库。
代码如下 | 复制代码 |
extension=curl.so |
相关文章
- php语言实现redis的客户端与服务端有一些区别了因为前面介绍过服务端了这里我们来介绍客户端吧,希望文章对各位有帮助。 为了更好的了解redis协议,我们用php来实现...2016-11-25
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这篇文章主要介绍了微信小程序(应用号)开发新闻客户端实例的相关资料,需要的朋友可以参考下...2016-10-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
- 这篇文章主要介绍了在页面中输出当前客户端时间javascript实例代码的相关资料,需要的朋友可以参考下...2016-03-03
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
- 网上有关蓝牙接收的资料很多,使用起来也很简单,但是我觉得还是有必要把这些知识总结下来,蓝牙开发需要用到一个第三方的库InTheHand.Net.Personal.dll,感兴趣的朋友可以了解下,或许对你有所帮助...2020-06-25
- 今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
- 一、数据访问对象 (DAO)YiiDAO 基于 PHP Data Objects (PDO) 构建。它是一个为众多流行的DBMS提供统一数据访问的扩展,这些 DBMS 包括MySQL, PostgreSQL 等等。因此,要使用 Yii DAO,PDO 扩展和特定的 PDO 数据库驱动(例如...2015-11-24
- 主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php?id=1 表示我要访问的是帖子...2015-11-24
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
- 经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
- 这篇文章主要介绍了c#接口使用的实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-17