php连接mysql错误的配置方法介绍
先来按书上测试一下php连接mysql
代码如下 | 复制代码 |
<?php |
运行代码出现:
Call to undefined function 'mysql_connect()'…
错误了失败
百度找到结果是PHP+MYSQL 环境没配置好, php5 的默认 mysql 是关闭的
将php_mysql.dll和libmysql.dll文件拷贝至c:/winnt/system32中(我漏了libmysql.dll)
找到php.ini中的;extension=php_mysql,去掉前面的";"
public: 公有属性或方法
在子类中可以通过self::var 或self::method 来调用 ,可以通过parent::method来调用父类中的方法,但不能调用公有属性.
在实例中可以通过$obj->var或self::method 来调用
protected: 受保护类型
在子类中可以通过self::var 或self::method调用, 可以通过parent::method来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性
private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法
2.self 和 parent 的区别
a).在子类中常用到这两个对象。他们的主要区别在于self可以调用父类中的公有或受保护的属性,但parent不可以调用
b).self:: 它表示当前类的静态成员(方法和属性) 与 $this 不同,$this是指当前对象
例
代码如下 | 复制代码 |
<?php class BaseClass { public $public = 'public'; private $private = 'private'; function __construct(){ function print_var(){
// public $public = 'public2'; $obj1 = new BaseClass(); echo "<hr />"; $obj2 = new Subclass(); ?> |
总结
public 表示全局,类内部外部子类都可以访问;
private表示私有的,只有本类内部可以使用;
protected表示受保护的,只有本类或子类或父类中可以访问;
这两天做的工作使用到了curl
当要请求的url和自己不在一台server上面,不能直接访问
这种情况下使用curl是最好不过了,模拟post请求做一些事,简单方便
下面记录一下在使用过程中的积累
代码如下 | 复制代码 |
/* function getCurlData($url) { |
总结一下使用curl方法:
先初始化curl
使用curl_setopt设置目标url,和其他选项
curl_exec,执行curl
执行后,关闭curl
最后一步就是输出
curl()效率挺高的,支持多线程,不过需要开启下curl扩展。下面是curl扩展开启的步骤:
1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;
2、将php.ini(c:WINDOWS目录下)中的;extension=php_curl.dll中的分号去掉;
3、重启apache或者IIS
在php中 cURL函数有一组相关函数,它是一个非常不错的函数了,我们经常用它来模仿各种登录与采集工作,下面我来给各位介绍CURL函数入门吧。cURL简介
cURL是一个利用URL语法规定来传输数据和文件的工具,支持很多种协议如HTTP、FTP、TELNET等。PHP也支持 cURL 库。
假如我们要获取某个网页的内容,我们可能会使用下面这几种方法:
代码如下 | 复制代码 |
// 把整个文件读入一个数组中 // 读入一个文件并写入到输出缓冲
|
这几种做法相当简单,但缺乏灵活性和有效的错误处理。而且他们无法完成一些高难度动作,比如处理coockies、验证、表单提交、文件上传等等。
cURL简例
下面给出一段简单的代码,从其中你可以学习到使用cURL的大概步骤,php cURL入门教程。
代码如下 | 复制代码 |
<?php // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回的内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl资源 // 输出获得的源代码 |
关于第二步的 curl_setopt() 是最为重要的,有一长串cURL参数可供设置,它们能指定URL请求的各个细节。
获取信息
这是另一个可选的设置项,能够在cURL执行后获取这一请求的有关信息:
代码如下 | 复制代码 |
<?php // 1. 初始化 // 2. 设置选项 // 3. 执行并获取HTML文档内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 获取 cURL 信息 并输出 // 5. 释放curl句柄 |
返回的数组中包括了以下信息:
"url" // 资源网络地址
"content_type" // 内容类型和编码
"http_code" // HTTP状态码
"header_size" // header的大小
"request_size" // 请求的大小
"filetime" // 文件创建时间
"ssl_verify_result" // SSL验证结果
"redirect_count" // 跳转技术
"total_time" // 总耗时
"namelookup_time" // DNS查询耗时
"connect_time" // 等待连接耗时
"pretransfer_time" // 传输前准备耗时
"size_upload" // 上传数据的大小
"size_download" // 下载数据的大小
"speed_download" // 下载速度
"speed_upload" // 上传速度
"download_content_length" // 下载内容的长度
"upload_content_length" // 上传内容的长度
"starttransfer_time" // 开始传输的时间
"redirect_time" // 重定向耗时
用POST方法发送数据
新建 from.php
代码如下 | 复制代码 |
// 待 post 的数据 // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄 // 输出内容
|
新建 to.php
代码如下 | 复制代码 |
echo "从 from.php POST数据到 to.php 成功!以下为 to.php 返回的数据:<br><br>";
|
文件上传
上传文件和前面的POST十分相似,因为所有的文件上传表单都是通过POST方法提交的。
新建 from.php
代码如下 | 复制代码 |
// 待 post 的数据 // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl资源 // 输出内容
|
新建 to.php:
代码如下 | 复制代码 |
print_r($_FILES); |
如果你需要上传一个文件,只需要把文件路径像一个post变量一样传过去,不过记得在前面加上@符号。
另一些有用的cURL范例
HTTP认证
如果某个URL请求需要基于 HTTP 的身份验证,你可以使用下面的代码:
代码如下 | 复制代码 |
<?php // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄 |
FTP上传
PHP 自带有 FTP 类库,但你也能用 cURL,也可以参考这篇文章:php使用cURL来实现ftp上传
代码如下 | 复制代码 |
<?php // 开一个文件指针 // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄
|
你可以用代理发起cURL请求:
代码如下 | 复制代码 |
<?php // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄
|
回调函数
可以在一个URL请求过程中,让cURL调用某指定的回调函数。例如,在内容或者响应下载的过程中立刻开始利用数据,而不用等到完全下载完。
代码如下 | 复制代码 |
<?php // 1. 初始化 // 2. 设置选项 // 3. 执行并获取返回内容 // 4. 错误判断,注意这里是布尔值,而不是空输出,所以是3个等号 // 5. 释放curl句柄 // 回调函数
|
这个回调函数必须返回字串的长度,不然此功能将无法正常使用,在URL响应接收的过程中,只要收到一个数据包,这个函数就会被调用。
讲到了半天我们再来一个高级实用点的功能cURL来实现ftp上传
web服务器的上传限制:
php的默认上传限制为2M,如果你要上传超过2M的文件的话,你必须修改你的PHP配置 或者 用下面的代码建立一个 .htaceess文件。
代码如下 | 复制代码 |
php_value upload_max_filesize 16M |
这里设置最大的文件上传限制为16M,post_max_size 的值为20M,因为可能在上传文件的同时,我们还需要POST表单里的其他表单项的值。
建立的 .htaccess 要放在你的上传脚本同一个目录下。
使用 cURL 进行文件上传
cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多种协议,如HTTP、FTP、TELNET等。它能完成很多高难度任务——如处理coockies、验证、表单提交、文件上传、ftp上传等等。
这里,我们准备通过使用web表单来上传一个文件到ftp空间上,这里的ftp空间是有密码保护的。
代码如下 | 复制代码 |
<form action="curlupload.php" method="post" enctype="multipart/form-data"> |
这个表单页面比较简单,仅仅是拥有一个文件上传的功能。
然后我们需要下面的php代码来接收上传过来的文件,使用 cURL 打开一个文件流并传送到远程ftp服务器上去。
代码如下 | 复制代码 |
|
当用户选择了并上传了一个文件,文件先保存在web服务器上,我们使用 fopen 打开这个临时文件并初始一个cURL会话,在发送的url中,把ftp的账号和密码填上,然后再设置cURL的其他必备参数,即可。如果返回的错误数量为0,那么文件就上传成功了。
小结
今天我们一起学习了cURL库的强大功能和灵活的扩展性 原文整理自:3a教程网
当你想生成一个随机的密码的时候,你第一想到的可能是使用 uniquid() 函数,但是如果我们使用 array_rand() 和 range() ,可以更完美的实现这个功能。
方法一,
代码如下 | 复制代码 |
<?php function randCode($length) { echo "www.111cn.net"; |
方法二,
1、在 33 – 126 中生成一个随机整数,如 35,
2、将 35 转换成对应的ASCII码字符,如 35 对应 #
3、重复以上 1、2 步骤 n 次,连接成 n 位的密码
该算法主要用到了两个函数,mt_rand ( int $min , int $max )函数用于生成随机整数,其中 $min – $max 为 ASCII 码的范围,这里取 33 -126 ,可以根据需要调整范围,如ASCII码表中 97 – 122 位对应 a – z 的英文字母,具体可参考 ASCII码表; chr ( int $ascii )函数用于将对应整数 $ascii 转换成对应的字符。
代码如下 | 复制代码 |
function create_password($pw_length = 8) { $randpwd = ''; for ($i = 0; $i < $pw_length; $i++) { $randpwd .= chr(mt_rand(33, 126)); } return $randpwd; } // 调用该函数,传递长度参数$pw_length = 6 echo create_password(6); |
方法三,
代码如下 | 复制代码 |
//自动为用户随机生成用户名(长度6-13) function create_password($pw_length = 4){ $randpwd = ''; for ($i = 0; $i < $pw_length; $i++){ $randpwd .= chr(mt_rand(33, 126)); } return $randpwd; } function generate_username( $length = 6 ) { // 密码字符集,可任意添加你需要的字符 $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|'; $password = ''; for ( $i = 0; $i < $length; $i++ ) { // 这里提供两种字符获取方式 // 第一种是使用substr 截取$chars中的任意一位字符; // 第二种是取字符数组$chars 的任意元素 // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); $password .= $chars[ mt_rand(0, strlen($chars) - 1) ]; } return $password; } // 调用该函数 $userId = 'user'.generate_username(6); $pwd = create_password(9); |
相关文章
Ecshop提示Only variables should be passed by reference in错误
在安装好ecshop软件之后我们打开首页时提示Only variables should be passed by reference in错误了,碰到这个问题是什么原因呢?下面我们就一起来看看解决办法吧。...2016-11-25- 409错误是什么?http 409错误怎么解决呢?不少站长在遇到这个错误代码之后都一筹莫展,本次一聚教程网为大家带来了详细的说明,快来看看吧。 409错误是什么: HTTP 40...2017-01-22
- 414错误是HTTP协议状态码中的一种,很多都还不知道414错误是什么,以及不知道怎么解决414错误,那么就来看看小编带来的介绍吧。 414错误是什么: HTTP 414错误,(Requ...2017-01-22
- http 405错误是什么?http 405错误怎么解决?相信很多站长都在找这两个问题的答案,本次小编为大家带来了详细的教程,快来看看吧。 405错误是什么: HTTP 405错误是H...2017-01-22
- 401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面...2017-01-22
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。 HTTP 402错误是HTTP状态码的一种,表示“要求付费”; 所求的...2017-01-22
- 411错误是HTTP协议状态码的一种,很多人都还不知道411错误是什么,本次一聚教程网将为大家进行解答,并且告诉大家411错误怎么解决。 411错误是什么: HTTP 411错误,(Lengt...2017-01-22
- Apache status 503 的原因大致有如下几种情况 : 1、 CPU 负载过高,服务器响应不过来,返回503 2、 系统连接数超限,超过MaxVhostClients的上限,返回503 3、 单IP连接数超限,超过M...2016-01-28
- 403错误是网站访问过程中,常见的错误提示。资源不可用,服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致,比如IIS或者apache设置了访问权限...2017-01-22
- 403错误是HTTP状态码的一种,属于“请示错误”,表示服务器拒绝请求。如果在搜索引擎尝试抓取您网站上的有效网页时显示此状态代码,那么,这可能是您的服务器或主机拒绝搜索...2017-01-22
- 412错误是什么?412错误怎么解决?本次一聚教程网将为大家带来详细的介绍,帮助大家全面了解412错误的意思以及解决412错误的方法。 412错误是什么: HTTP 412错误,(Precond...2017-01-22
- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- HTTP 406错误是HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。一般是指客户端浏览器不接受所请求页面的 MIME 类型。 而MIME类型是在把输出...2017-01-22
- 407错误是什么?407错误怎么解决?不少站长都遇到过407错误,下面小编将告诉大家如何处理407错误。 407错误是什么: HTTP 407错误是HTTP协议状态码的一种,表示需要代...2017-01-22
- 410错误是HTTP协议状态码的一种,本次一聚教程网将为大家详细介绍HTTP 410错误是什么,以及410错误的解决办法。 410错误是什么: HTTP 410错误是HTTP协议状态码的...2017-01-22
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
- 每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误,那么HTTP 400错误怎么解决呢?请看下文介绍。 目前400错...2017-01-22