分类 PHP 下的文章

【7.2.18】
说明:此实例是在宝塔面板基础上进行安装扩展(原先我使用了apache2.8+php7.2.18+mysql5.6.27)

1.下载扩展

wget https://www.php.net/distributions/php-7.2.18.tar.gz

2.解压文件

tar -xvf php-7.2.18.tar.gz
3.打开目录

cd php-7.2.18/ext/fileinfo

4.直接执行以下命令 找不到 whice phpnize
/www/server/php/72/bin/phpize
返回:
Configuring for:
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718
5.初始化配置
./configure --with-php-config=/www/server/php/72/bin/php-config
6.出现报错
make: * No targets specified and no makefile found. Stop.
virtual memory exhausted: Cannot allocate memory
显示内存不足 对于我的1GB小主机 使用不了 这时候需要创临时空间
解决办法:内存不足, 在linux下增加临时swap空间

参考《在linux下增加临时swap空间》
https://blog.csdn.net/qq_32642039/article/details/78070813?locationNum=7&fps=1

step 1:
  #sudo dd if=/dev/zero of=/home/swap bs=64M count=16
  注释:of=/home/swap,放置swap的空间; count的大小就是增加的swap空间的大小,64M就是块大小,这里是64MB,所以总共空间就是bs*count=1024MB.这里分配空间的时候需要一点时间,等待执行完毕。
  
step 2:
  # sudo mkswap /home/swap (可能会提示warning: don’t erase bootbits sectorson whole disk. Use -f to force,不用理会)
  注释:把刚才空间格式化成swap各式
step 3:
  #sudo swapon /home/swap
  注释:使刚才创建的swap空间

7.直接安装
make && make install

显示:

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:

  • add LIBDIR to the `LD_LIBRARY_PATH' environment variable
    during execution
  • add LIBDIR to the `LD_RUN_PATH' environment variable
    during linking
  • use the `-Wl,--rpath -Wl,LIBDIR' linker flag
  • have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

8.配置扩展

vi /www/server/php/72/etc/php.ini
添加以下:
extension = /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/fileinfo.so

<?php

$chars=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
$n=3;
print_r(array_intersect_key($chars,array_flip(array_rand($chars,$n))));

?>

当月总天数

echo date('t');

计算当前的时间距离下一个月还有多少天

function less_day(){
    $month_big = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
    //现在的月份
    $date_month_old = (int)date('m',time());
    //下个月的月份
    $date_month_new = $date_month_old + 1;
    //下个月1号的时间戳
    $date_time_new = strtotime('1 '.$month_big[$date_month_new-1].' '.date('Y',time()));
    //今天的时间戳
    $date_time_old = strtotime(date('d',time()).' '.$month_big[$date_month_old-1].' '.date('Y',time()));
    //距下月剩余时间
    $time_new = ($date_time_new - $date_time_old)/24/60/60-1;
    return $time_new;
}
header("Content-type: text/html; charset=utf-8");
echo '今天是:'.date('Y-m-d',time()).'<br/>';
echo '距离下个月还有:'.less_day().'天';

以上内容转载自https://bobjin.com/blog/view/4994c03c126159ba64788a0be6d59d6c.html 尊重原作者的劳动成果

原作者:CSDN 一夜长风
原标题:php操作memcache缓存基础方法
原地址: https://blog.csdn.net/wlzx120/article/details/52354001

memcache 是一个高效的分布式的内存对象缓存系统,他可以支持把php的各种数据(数组,对象,基本数据类型)放在它管理的内存中

<?php
 
    //连接
    $mem = new Memcache;
    $mem->connect("127.0.0.1", 11211) or die ("Could not connect");
    //显示版本
    $version = $mem->getVersion();
    echo "Memcached Server version: ".$version."<br>";
    //保存数据
    $mem->set('key1', 'This is first value', 0, 60);
    $val = $mem->get('key1');
    echo "Get key1 value: " . $val ."<br>";
    //替换数据
    $mem->replace('key1', 'This is replace value', 0, 60);
    $val = $mem->get('key1');
    echo "Get key1 value: " . $val . "<br>";
    //保存数组
    $arr = array('aaa', 'bbb', 'ccc', 'ddd');
    $mem->set('key2', $arr, 0, 60);
    $val2 = $mem->get('key2');
    echo "Get key2 value: ";
    print_r($val2);
    echo "<br>";
    
    //对数组进行序列化,在网络传输的时候,为了保证,数据类型的不丢失,先序列化,再发生.
    //$arr1=serialize($arr);
    $arr2=json_encode($arr1);
    print_r($arr2);
    
    //删除数据
    $mem->delete('key1');
    $val = $mem->get('key1');
    echo "Get key1 value: " . $val . "<br>";
    //清除所有数据
    $mem->flush();
    $val2 = $mem->get('key2');
    echo "Get key2 value: ";
    print_r($val2);
    echo "<br>";
    //关闭连接
    $mem->close();
 
?>

2、函数库详解:

Memcache::add - 添加一个值,如果已经存在,则返回false
Memcache::addServer - 添加一个可供使用的服务器地址
Memcache::close - 关闭一个Memcache对象
Memcache::connect - 创建一个Memcache对象
memcache_debug - 控制调试功能! [4 F8 C2 e, X
Memcache::decrement - 对保存的某个key中的值进行减法操作
Memcache::delete - 删除一个key值
Memcache::flush - 清除所有缓存的数据
Memcache::get - 获取一个key值
Memcache::getExtendedStats - 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus - 获取运行服务器的参数
Memcache::getStats - 返回服务器的一些运行统计信息
Memcache::getVersion - 返回运行的Memcache的版本信息
Memcache::increment - 对保存的某个key中的值进行加法操作
Memcache::pconnect - 创建一个Memcache的持久连接对象
Memcache::replace -对一个已有的key进行覆写操作
Memcache::set - 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold - 对大于某一大小的数据进行压缩
Memcache::setServerParams - 在运行时修改服务器的参数
3、分布式使用:
Memcache函数库是在PECL(PHP Extension Community Library)中,主要作用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显

<?php
    
    //1.实例化一个Memcache对象
    $mem=new Memcache();
    
    //2. 连接到指定的memcache中
    // $mem->connect("127.0.0.1",11211);
    
    //如果我们网站,需要多个memached缓存系统,如下使用分布式
    $mem->addServer("192.168.1.100",11211);
    $mem->addServer("192.168.1.200",11211);
    $mem->addServer("192.168.1.222",11211);
    
    //创建多个memcache服务使用addServer 会根据负载均衡算法,自动放入每个服务器
    $mem->add("name","zs",0,100);
    
?>

说明:以为内容为原作者所有,此处仅作为引用笔记参考。如有侵权,请发邮件3956174441@qq.com,将进行删除!再次感谢~

getimagesize

$image_file = "64.jpg ";
$image_size = getimagesize($image_file);
print( "图片的宽度: ". $image_size[0]. "
");
print( "图片的高度: ". $image_size[1]. "
");
print( "文件的格式为: ". $image_size[2]. "
");