分类 PHP 下的文章

自己编译php版本时出现的错误,哦,顺带说一句,可能php7以下会有出入,纯净系统
好长时间也是没有出文了,文档不是很想整理(¦3[____]
# 编译参数,基本就是自带的全装了
'./configure' '--cache-file=/opt/temp/cache/config.cache' '--prefix=/opt/temp/php/php-7.2.6' '--with-config-file-path=/opt/temp/php/php-7.2.6/etc' '--with-config-file-scan-dir=/opt/temp/php/php-7.2.6/var/db' '--disable-all' '--enable-short-tags' '--enable-opcache' '--enable-dba' '--enable-ipv6' '--enable-calendar' '--enable-wddx' '--enable-static' '--enable-inifile' '--enable-inline-optimization' '--enable-cli' '--enable-ftp' '--enable-filter' '--enable-gcov' '--enable-maintainer-zts' '--enable-json' '--enable-hash' '--enable-exif' '--enable-mbstring' '--enable-mbregex' '--enable-libgcc' '--enable-pdo' '--enable-posix' '--enable-embed' '--enable-sockets' '--enable-debug' '--enable-phpdbg' '--enable-zip' '--enable-bcmath' '--enable-fileinfo' '--enable-ctype' '--enable-cgi' '--enable-soap' '--enable-pcntl' '--enable-phar' '--enable-session' '--enable-tokenizer' '--with-imap-ssl' '--with-ldap' '--with-tidy' '--with-kerberos' '--with-xmlrpc' '--enable-fpm' '--enable-dtrace' '--with-pcre-regex' '--with-pcre-dir=/usr' '--with-mhash' '--with-mcrypt=/usr' '--with-zlib=/usr' '--with-curl=/usr' '--with-readline=/usr' '--with-libedit=/usr/local' '--with-gd=shared' '--enable-gd-native-ttf' '--with-png-dir=/usr' '--enable-intl' '--with-openssl=/usr' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-sqlite3' '--with-pdo-sqlite' '--with-pgsql=/usr/bin' '--with-pdo-pgsql=/usr/bin' '--enable-dom' '--enable-libxml' '--enable-simplexml' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--with-xsl' '--with-libxml-dir=/usr' '--with-gettext=/usr' '--with-iconv' '--with-bz2=/usr' '--enable-shmop' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--with-gmp=/usr' '--with-pear=/opt/temp/php/php-7.2.6/lib/php/pear' '--with-libdir=lib64' '--with-mcrypt=/usr/lib64' '--with-readline'

错误: configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/
解决方法: yum install -y curl-devel

错误: configure: error: jpeglib.h not found.
解决方法: yum install -y libjpeg-devel

错误: configure: error: png.h not found.
解决方法: yum install -y libpng-devel

错误: configure: error: To enable code coverage reporting you must have LTP installe
解决方法: yum install -y lcov

错误: configure: error: Cannot find sys/sdt.h which is required for DTrace support
解决方法: yum install -y systemtap-sdt-devel, apt install -y systemtap-sdt-dev

错误: configure: error: Cannot find OpenSSL's libraries
解决方法: yum install openssl openssl-devel openssl-libs
备注: 64位系统在编译时加上--with-libdir=/usr/lib64, 或者把/usr/lib64/libssl.so复制到/usr/lib/libssl.so

错误: configure: error: Unable to locate gmp.h
解决方法: yum install -y gmp gmp-devel

错误: configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
解决方法: yum install -y icu libicu libicu-devel

错误: configure: error: Please reinstall libedit - I cannot find readline.h
解决方法: yum install -y readline readline-devel
备注: 64位系统在编译时加上--with-readline, 可能还需要你去单独下载编译最新版本的libedit

错误: configure: error: Cannot find libtidy
解决方法: yum install -y readline readline-devel, apt install libtidy-dev libtidy5

错误: configure: error: Cannot find OpenSSL's <evp.h>
解决方法: yum install -y openssl openssl-devel libssl-dev

错误: configure: error: Please reinstall the BZip2 distribution
解决方法: yum install -y bzip2 bzip2-devel, apt install libbz2-dev

错误: configure: error: Please reinstall the libcurl distribution
解决方法: yum install -y curl-devel, apt install libcurl4-gnutls-dev

错误: configure: error: mcrypt.h not found.
解决方法: apt install libmcrypt4-dev libmcrypt-dev

错误: configure: error: Cannot find libpq-fe.h.
解决方法: apt install libpq-dev

错误: configure: error: Please reinstall readline - I cannot find readline.h
解决方法: apt install libreadline-dev

错误: configure: error: xslt-config not found.
解决方法: apt install libxslt1-dev

错误: configure: error: cURL version 7.10.5 or later is required to compile php with cURL support
解决方法: apt install libcurl4-openssl-dev, apt install libcurl4-gnutls-dev

错误: configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
解决方法: apt install libxslt1-dev, yum install -y libxslt-devel, 可能devel版本也不会大于1.1.0需要自行去官网编译安装

错误: configure: error: Unable to locate gmp.h
解决方法: apt install libgmp-dev

错误: configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
解决方法: apt install libc-client2007e-dev, apt install libc-client-dev

错误: configure: error: This c-client library is built with Kerberos support.
解决方法: apt install libkrb5-dev, 考虑加上--with-kerberos--with-imap-ssl参数

错误: configure: error: libfbclient, libgds or libib_util not found! Check config.log for more information.
解决方法: apt install firebird-dev, 可能会是apt install firebird2-dev

错误: configure: error: Cannot find ldap.h
解决方法: apt install libldap2-dev

错误: configure: error: Please reinstall the libzip distribution
解决方法: apt install libzip-dev

错误: configure: error: Package requirements (libzip >= 0.11) were not met: No package 'libzip' found
解决方法: yum install -y libzip-devel zip, 可能devel版本也不会大于0.11需要自行去官网编译安装

错误: configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package 'libxml-2.0' found
解决方法: yum install -y libxml2-devel, 可能devel版本也不会大于2.7.6需要自行去官网编译安装

错误: configure: error: Package requirements (libcurl >= 7.15.5) were not met: No package 'libcurl' found
解决方法: yum install -y libcurl-devel, 可能devel版本也不会大于7.15.5需要自行去官网编译安装

错误: configure: error: Package requirements (oniguruma) were not met: No package 'oniguruma' found
解决方法: yum install -y oniguruma-devel oniguruma

过年到现在都挺忙的,还有游戏在等着我van,这篇文章拖的时间有点长

上次不是讲到家里树莓派在挂机嘛,用了frp穿外网可以在外面随时随地的在家下片,美滋滋

但是问题来了,家里硬盘里的资源我想在公司用了,平时也没有拷U盘的习惯,一般写完都是直接关闭保存在硬盘,最近笔记本都放在公司没拿回家,更是限制了我的操作。

于是闲暇之余写了个目录程序出来,当然写之前我也去网上找了下的,大部分都不是那种性(简)冷(洁)淡风格,老外的那种大大圆圆的看着太卡通了不适合我睾贵的身份,唯一一个上眼的就是DirectoryLister/DirectoryLister,但是需要把程序和文件放在一个目录下,已经拒绝了我去使用它。
网络上大部分可以找到的基本都是与DirectoryLister/DirectoryLister操作是相似的,均是放置在同一目录下。想想还是自己写吧????‍♂️,问题不大

目录程序界面

项目地址: https://github.com/flxxyz/directory-lister
演示网址: http://cloud.flxxyz.com/

本程序适用于有一定的php知识储备的开发人员使用,小白用户使用请先了解一下composer使用

确保本身已经安装php再进行下面的操作

类unix

如macosx, ubuntu, centos, archlinux, debian这类系统

php -i | grep "/php.ini"

类unix系统

windows

如果没有添加环境变量,请将php目录添加至环境变量!!!

php -i | findstr "php.ini"

windows系统

通用

创建一个php文件,往里写入如下内容

  1. <?php
    echo phpinfo();

    通过浏览器访问

    通用

  2. echo(str_replace("\","/",str_replace("ext","php.ini",ini_get("extension_dir"))));

    慕若曦dalao评论区又给出来一种,明白的就用

php里面,我曾经也一直认为是2个字节,在学习的过程中,根本没有对字符编码这个玩意进行过了解,在前段时间也看到了其它人说是2个字节,但是使用strlen()或mb_strlen()检查一个汉字所占的大小,是3位!!!

如果这个时候使用substr()或mb_substr()切割汉字的话必定会出现乱码,这个时候你就需要了解到unicode了

      • -

英文字母:

  • 编码: GB2312, 字节数: 1
  • 编码: GBK, 字节数: 1
  • 编码: ISO-8859-1, 字节数: 1
  • 编码: UTF-8, 字节数: 1
  • 编码: UTF-16, 字节数: 4

中文汉字:

  • 编码: GB2312, 字节数: 2
  • 编码: GBK, 字节数: 2
  • 编码: ISO-8859-1, 字节数: 1
  • 编码: UTF-8, 字节数: 3
  • 编码: UTF-16, 字节数: 4
      • -
面试出个字符编码的题完全可以呀,感觉面试难度又提高了一截。

unicode这个业界标准好呀,基本上现在所使用的环境中都存在unicode,把世界上大部分的语言文字整理编码出来,电脑可以更简单的呈现和处理文字,大家不用烦恼自己看到的是乱码而厌烦了,文字以原始的方式显示

最新版本的unicode是2017年6月20号10.0.0

      • -
        参考资料:
  1. http://www.unicode.org
  2. http://www.unicode.org/standard/WhatIsUnicode.html
  3. https://zh.wikipedia.org/wiki/Unicode

正式版v1.2发布,新增掉线重连(服务器挂了那是没有办法的?‍♂️)

注: 需要安装swoole扩展

在公司闲着了好长时间,现在就是没事在找事做,真鸡儿刺激

用了两天搞了这个(抄)?QQ聊天应用

做起来难度不大,利用现有的swoole扩展可以快速构建出一个开袋即食的IM应用,自己所需要做的是相应的逻辑处理与权限管理

我在这里还使用了identicon来做随机头像,想着大家进来还打个鸡毛的账号呀,直接名字搞起,飞机火箭刷起来

ps:不清楚identicon的可以看看identicon wiki

      • -

如果你非要说和QQ一样,我能怎么办,我tm就是抄的QQ #滑稽

聊天室首页

添加可耐的颜表情(●'◡'●)让聊天更具趣味性(我才不是死肥宅)

添加可耐的颜表情(●'◡'●)

还特意为大(hao)佬(shi)们(zhe)人性化的添加了斗图模式,看我是不是很爱你们

斗图莫斯

      • -

这是一个最基础的聊天室程序了,识别性,趣味性,都有具备,具体的怎么开发看你们的了,我把项目地址甩在下面

演示地址: http://chat.flxxyz.com

github: https://github.com/flxxyz/php-chat-websocket

到当前的 Homestead 目录下,打开 Homestead.yml 然后你懂的

site: 下,按一下格式添加站点

- map: homestead.app           // 站点域名
  to: /home/vagrant/Code/Laravel/public    //站点目录

有需要的话,可以在 folders:下,添加共享目录,方便本地编辑,虚拟机实时读取了

- map: E:\Work\virtualBox\homestead\site   // windows用户是用这种路径
  to: /home/vagrant/Code/site              // 开启共享目录之后,虚拟机会存在的目录

拜拜ヾ(•ω•`)o

使用 laravel5.4 提交表单使用的如果是POST方法会产生 TokenMismatch 错误

解决方法

在提交表单中添加一个隐藏域,name_token,值为 {{ csrf_token() }}

<input type="hidden" name="_token" value="{{ csrf_token() }}"/>

看到这种提示首先去检查自己的配置信息是否填写正确

step 1

检查根目录下的 .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

填写完毕.


stap 2

检查 config 目录下的 database.php

    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'laravel'),
        'username' => env('DB_USERNAME', 'root'),
        'password' => env('DB_PASSWORD', 'root'),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ]

填写上数据库名,用户名,密码


关闭服务,再开启
不成功的话,你需要把配置的缓存清理掉,再开启服务

// shell
$ php artisan config:clear
$ php artisan serve

laravel 5.4 使用ORM模型中的 findOrFail 操作,不会报错,但会返回 NULL

laravel 5.4以前版本会报错,没有返回