php怎么开启ssl?开启ssl的方法

 更新时间:2016年11月25日 14:58  点击:2095
当访问启用SSL资源的时候,会出现\"did you forget to enable it when you configured PHP\"错误提示,从提示我们可以看出肯定是php.ini中没有配置好SSL模块。打开php.ini找到extension=php_openssl.dll,取消注释


在PHP开启SSL的方法很简单,先找到php.ini文件,将 extension=php_openssl.dll 前面的注释符号“;”去掉,然后重新启动apache就可以生效了!

有的朋友这样做却发现ssl没有生效,那么有个办法,就是将dlls文件夹里面的ssleay32.dll和libeay32.dll文件拷贝到 C:WINDOWSsystem32 文件夹。

ssleay32.dll
libeay32.dll
php_openssl.dll

那么如何判定ssl是否生效呢?就要查看phpinfo了,写一个简单的phpinfo()测试程序,找到openssl这个位置,如果OpenSSL support是enabled就说明ssl已经开启。

统计数组只要利用count但要统计重复数组我们需要遍历一下数组这样就可以统计出来了,下面一起来看看例子,希望对各位会有所帮助。
 代码如下 复制代码
?php 
   $arr=array 
   ( 
      "01", 
      "02", 
      "01", 
      "02", 
      "03" 
   ); 
 
   $rs=array(); 
   foreach($arr as $v){ 
      if (isset($rs[$v])) {
         $rs[$v]++;   
      } else {
         $rs[$v] = 1;
      }
   } 
   print_r($rs);
?>
deque,全名double-ended queue,是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双向队列(双端队列)就像是一个队列,但是你可以在任何一端添加或移除元素。

双端队列(deque)是由一些项的表组成的数据结构,对该数据结构可以进行下列操作:

    push(D,X) 将项X 插入到双端队列D的前端
    pop(D) 从双端队列D中删除前端项并将其返回
    inject(D,X) 将项X插入到双端队列D的尾端
    eject(D) 从双端队列D中删除尾端项并将其返回

PHP实现代码

 代码如下 复制代码
<?php
class DoubleQueue 
{
    public $queue = array();
    
    /**(尾部)入队  **/
    public function addLast($value) 
    {
        return array_push($this->queue,$value);
    }
    /**(尾部)出队**/
    public function removeLast() 
    {
        return array_pop($this->queue);
    }
    /**(头部)入队**/
    public function addFirst($value) 
    {
        return array_unshift($this->queue,$value);
    }
    /**(头部)出队**/
    public function removeFirst() 
    {
        return array_shift($this->queue);
    }
    /**清空队列**/
    public function makeEmpty() 
    {
        unset($this->queue);
    }
    
    /**获取列头**/
    public function getFirst() 
    {
        return reset($this->queue);
    }
 
    /** 获取列尾 **/
    public function getLast() 
    {
        return end($this->queue);
    }
 
    /** 获取长度 **/
    public function getLength() 
    {
        return count($this->queue);
    }
    
}

例子

编写支持双端队伍的例程,每种操作均花费O(1)时间

 代码如下 复制代码

<?php
class deque
{
 public $queue  = array();
 public $length = 0;
  
 public function frontAdd($node){
  array_unshift($this->queue,$node);
  $this->countqueue();
 }
 public function frontRemove(){
  $node = array_shift($this->queue);
  $this->countqueue();
  return $node;
 }
  
 public function rearAdd($node){
  array_push($this->queue,$node);
  $this->countqueue();
 }
 
 public function rearRemove(){
  $node = array_pop($this->queue);
  $this->countqueue();
  return $node;
 }
 
 public function countqueue(){
  $this->length = count($this->queue);   
 }
}
$fruit = new deque();
echo $fruit -> length;
$fruit -> frontAdd("Apple");
$fruit -> rearAdd("Watermelon");
echo '<pre>';
print_r($fruit);
echo '</pre>';
?>

结果

0
deque Object
(
    [queue] => Array
        (
            [0] => Apple
            [1] => Watermelon
        )
    [length] => 2
)

在php中像数组中添加元素比较常见的是array_push函数,即数组的入栈操作,但是这个函数是将元素添加到数组的末尾,如果需要将数组元素压入到数组的头部(即第一个元素)该如何操作呢?

使用php内置函数 array_unshift ,下面就将 array_unshift 这个函数的用法列举一下。

array_unshift

该函数的作用是在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些添加的元素在数组中的顺序和在参数中的顺序一样。修改后的数组中所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。该函数会返回操作后数组中元素的个数。

语法:int array_unshift ( array &$array ,mixed $var [,mixed $... ] )

例如:

 

 代码如下 复制代码

<?php

$queue = array("111cn.net",".com");

array_unshift($queue,"apple","raspberry");

print_r($queue);

以上例程会输出:

Array
(
    [0] => apple
    [1] => raspberry
    [2] => 111cn.net
    [3] => .com
)

当然我们还可以直接使用其它的办法了,如创建一个数组重新给他赋值即可

下面整理了是一些在学习php mysql中我们一些常用的知识点,包括有分页,连接数据库及时登录与文件上会以的知识点,希望对各位有帮助。
 代码如下 复制代码

 

<?php
$con = mysql_connect("localhost","root","222222");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  echo "成功"
 
//mysql_close($con); 关闭连接
//var_dump($row); 打印出来
//print_r(); 打印出来 没有上面功能强
-------------------------------------------
strlen("Hello world!"); //用于计算字符串的长度。
strpos("Hello world!","world"); //用于在字符串内检索一段字符串或一个字符。
 
 
-------------------------------------------
介绍数据库中常用字段类型
//整数型:TINYINT,SMALLINT,INT,BIGINT
 
//小数型:FLOAT,DOUBLE,DECIMAL(M,D)
 
//字符型:CHAR,VARCHAR
 
//日期型:DATETIME ,DATE,TIMESTAMP
 
//备注型:TINYTEXT ,TEXT ,LONGTEXT
 
//sql语句 大小写不敏感(系统的尽量大写)
 
CREATE TABLE `test` (   //需要把整理设置成utf8_general_ci
`id` int(10) NOT NULL auto_increment,
`uid` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL default '0',
`regdate` date NOT NULL,
`remark` text NULL,
PRIMARY KEY (`id`) //id为主键关键贞
)
//NOT NULL 不能为空 www.111cn.net
//auto_increment 自动累加
//varchar(10) default '0' 10个字符长度默认为0
-------------------------------------------
 
SELECT查询语句
//SELECT 查询字段 FROM 表名 WHERE 条件
 
查询字段 : 可以使用通配符 * ,字段名,字段别名
表名:数据库.表名,表名
常用条件 :=等于,<>不等于,in包含,not in 不包含,like匹配
BETWEEN在范围,not BETWEEN不在范围<,>
条件运算:and ,or ,()
 
//eg: SELECT id, uid FROM `test` WHERE 1;指定查询id uid
别名使用
//SELECT remark as r FROM `test` WHERE 1  别名使用 r 代替 remark
=等于
//SELECT * FROM `test` WHERE id=2; 查询id=2的
<>不等于
//SELECT * FROM `test` WHERE id<>2 查询id不等于2 的
in包含
//SELECT * FROM `test` WHERE id in(1,2,4);查询包含1,2,4的信息
not in 不包含
//SELECT * FROM `test` WHERE id not in (1,2,3);查询不包含1,2,3的信息
like匹配
//SELECT * FROM `test` WHERE `uid` like '%王%';  %是前后匹配,匹配到所有姓王的 `uid`是varchar 字符型要加上``
BETWEEN在范围
//SELECT * FROM `test` WHERE id BETWEEN 1 and 3 查询1-3这个范围内所有的信息
not BETWEEN不在范围
//SELECT * FROM `test` WHERE id not BETWEEN 1 and 3 查询不在1-3这个范的信息
多条件
//SELECT * FROM `test` WHERE id=2 and `uid`='吕辉' 多个条件查询,查询id=2并且uid=吕辉 的信息
---------------------------------------------------------
注:以下三个方法语句顺序不能乱; group by - order by - limit
分组语句:group by 字段(这里不需要条件语句)
//SELECT * FROM `test` group by `remark`
排序语句:order by 字段 ,字段ASC(正序)/DESC(倒序)
//SELECT * FROM `test` order by `regdate` DESC 倒序查询最新注册的
//SELECT * FROM `test` order by `regdate` DESC , id ASC 注册日期倒序,id正序查询
指针查询:limit 初始值,结束值(这里不需要条件语句)
//SELECT * FROM `test` limit 0,3 查询0到3条信息
//SELECT * FROM `test` limit 4 (等同上,省略掉0,初始值省略)
---------------------------------------------------------
计算:
COUNT(*)统计函数
MAX(*)最大值函数
MIN(*)最小值函数
AVG(*)平均值函数
SUM(*)累计值函数(∑)
 
//SELECT MIN(id) FROM `test` WHERE 1 查询最小值的Id
 
 
---------------------------------------------------------
 
insert插入语句
//insert into 表名(字段...,...)values(值..,...);规范的
//insert into 表名values(值..,..);不推荐使用
 
eg:
//insert into test (`id`,`uid`,`regdate`,`remark`) values('','张三',now(),'工人') id是auto++的可省略,now()系统现在时间
//insert into test values('','李四',now(),'学生') 同样可以插入,但不推荐使用
 
Update更新语句(不需要FROM)
//UPDATE 表名 SET 字段 = 值 WHERE 条件 limit(可省略)
eg:
//update test set uid='php200' where id=6 更新id=6的uid=php200
 
Delete 删除语句(删除是无法恢复的)
//DELETE FROM 表名 WHERE 条件 limit(可省略)
eg:
delete FROM test WHERE id=3 删除id=3 的信息 (尽量少使用,)
 
-------------------------------------------------------------
其他常用Mysql函数介绍
 
 mysql_num_rows() //用于计算查询结果中共多少条信息
//$sq = " SELECT * FROM messages order by id DESC "; //查找数据表并倒序
//$sque = mysql_query($sq);
//echo mysql_num_rows($sque);
 
mysql_insert_id //传回最后一次使用 INSERT 指令的 ID。
mysql_tablename //取得数据库名称
mysql_error   //返回错误信息
mysql_close //关闭 MySQL 链接
----------------------------------------------------------
isset($views) //判断变量是否存在
function_exists() //判断函数是否存在
 
两种查询函数array / row区别
//mysql_fetch_row(result);(不常用)
//mysql_fetch_array($sque,MYSQL_ASSOC);(常用)
//以上二种需配合while($row=mysql_fetch_array($sque,MYSQL_ASSOC)){}循环使用才能输出数据库全部内容;
 
延时跳转
header("Refresh:5;url=login.php");
----------------------------------------------------------
str_relace(被替换的值,替换的值,被替换的内容)
 
$lin='ss sd df';
//str_relace(" ","&nbsp;",$lin);替换空格
function htmtocode($con) {空格和换行替换成html标签
//  $con=str_replace("n","<br>",str_replace(" ","&nbsp;",$con));
//  return $con;
}
------------------------------------------------------------
 
htmlspecialchars格式化html
//主要功能是将html格式化,防止在输出html时被浏览器执行;
//htmlspecialchars(所要格式化对象,定义单双引号,编码)
------------------------------------------------------------
setcookie("TEST","value",3600,"/dir",".domains.com",true);
//TEST cookie名
//value cookie值
//3600 保存时间
//dir cookie保存路径
//.domains.com  起效域名
//true https 发送
//注意:使用php cookie当场不能生效,需要刷新一次
 
----------------------------------
PHP会话Session的具体使用方法解析
//PHP会话Session与Cookie的最大不同之处是,其实存储在服务器端的,对于远程用户来说,
//是无法对PHP会话Session文件的内容进行任何修改的。
开始 PHP Session
//详细 http://www.w3school.com.cn/php/php_sessions.asp
 
 session_start(); //1,启动必须在html标签前面
 $_SESSION['views']=1;//2,设置
 $_SESSION[''];//3,获取
 unset($_SESSION['views']);//4,删除
 session_destroy()//,彻底终结  将重置 session,您将失去所有已存储的 session 数据。
 
isset() //函数检测是否已设置 "views" 变量
//if(isset($_SESSION['views']))
file_exists("welcome.txt")  //检测文件是否存在
 
 
 
------------------------------------------------------------
PHP+MYSQL分页原理
 
1.SQL语句中的limit用法
分页原理
//所谓分页显示,也就是将数据库中的结果集,分成一段一段来显示
需要的条件
//前10条记录:select*form table limit 0,10
//第11至20条记录:select * from table limit 10,10
//第21至30条记录:select * from table limit 20,10
 
公式:
(当前页数-1)*每页条数,每页条数
// select * from table limit($Page-1)*$PageSize,$PageSize
----------------------------------------------------------
parse_url()
//是将URL解析成为固定键值名称的数组和函数
---------------------------------------------
$_SERVER["REQUEST_URI"];
//REQUEST_URL的作用是取得当前URL,也就是除域名外后面的完整的地址路径;
eg:
// http://www.php100.com/home.php?id=22&cid=21
//echo $SERVER["REQUEST_URI"]
//结果为:/home.php?id=22&cid=21
 
--------------------------------------------------------
PHP上传原理及应用
 
1、FORM标签enctype属性
2、$_FILES 系统函数
3、move_uploaded_file函数
4、is_uploaded_file 函数
 
 
 
---------------------------------------------------------
fopen() 函数用于在 PHP 中打开文件。
//fopen("welcome.txt","r");
 
//  模式  描述
//  r       只读。在文件的开头开始。
//  r+      读/写。在文件的开头开始。
//  w       只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
//  w+      读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
//  a       追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
//  a+      读/追加。通过向文件末端写内容,来保持文件内容。
//  x       只写。创建新文件。如果文件已存在,则返回 FALSE。
//  x+ 
//  读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
//  注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。
 
//如果 fopen() 不能打开指定的文件,下面的例子会生成一段消息:
//$file=fopen("welcome.txt","r") or exit("Unable to open file!");
 
fclose() 函数用于关闭打开的文件。
 
//$file = fopen("test.txt","r"); fclose($file);
 
feof() 函数检测是否已达到文件的末端 (EOF)。
在循环遍历未知长度的数据时,feof() 函数很有用。
//if (feof($file)) echo "End of file";
 
fgets() 函数用于从文件中逐行读取文件。
 
//  $file = fopen("welcome.txt", "r") or exit("Unable to open file!");
//  while(!feof($file))
//  {
//   echo fgets($file). "<br />";
//  }
//  fclose($file)
 
fgetc() 函数用于从文件逐字符地读取文件。
 
//  $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    while (!feof($file))
//  {
//  echo fgetc($file);
//  }
//  fclose($file);
 
 
------------------------------------------------------
PHP 文件上传
//  <form action="upload_file.php" method="post" enctype="multipart/form-data">
//      <input type="file" name="file" id="file" />
//  </form>
 
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
 
eg:
 
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04