大创管理系统数据采集

大创管理系统数据采集

阅读详细 »

php分析网页数据类似jquery一样方便(simple_html_dom)

PHP simple_html_dom 解析器不仅仅只是帮助我们验证html文档;更能解析不符合W3C标准的html文档。它使用了类似jQuery的元素选择器,通过元素的id,class,tag等等来查找定位;同时还提供添加、删除、修改文档树的功能。当然,这样一款强大的html Dom解析器也不是尽善尽美;在使用的过程中需要十分小心内存消耗的情况。不过,不要担心;本文中,笔者在最后会为各位介绍如何避免消耗过多的内存。
阅读详细 »

kindeditor编辑器

官方网站:http://kindeditor.net/
官方文档:http://kindeditor.net/doc.php
下载地址:http://kindeditor.net/down.php
Github:   https://github.com/kindsoft/kindeditor
Oschina:  https://gitee.com/luolonghao/kindeditor

ThinkPHP5.1框架禁止Common模块访问

config文件夹app.php配置文件中设置了 禁止访问模块

// 禁止访问模块
    ‘deny_module_list’       => [‘common’],

微信昵称带表情图片无法保存数据库,emoji表情网页无法正常显示文件解决方案

微信昵称带表情图片无法保存数据库,emoji表情网页无法正常显示文件解决方案
微信昵称中使用了emoji表情,uft8字符编码无法保存,可以用utf8mb4编码保存。
同样在读取数据库的时候,也需要把utf8编码修改成utf8mb4才可以。
简单来总结一下就是
    1.数据库需要用utf8mb4来保存带有emoji表情的字符串。
    2.PHP在读取数据的时候需要设置通讯编码为utf8mb4。
阅读详细 »

服务器上发现的一段PHP后门程序

服务器上发现的一段PHP后门程序 阅读详细 »

基于PHP socket + WebSocket 实现聊天室功能详解。

基于PHP  socket + WebSocket 实现聊天室功能详解。
在PHP中,开发者需要考虑的东西比较多,从socket的连接、建立、绑定、监听等都需要开发者自己去操作完成,对于初学者来说,难度方面也挺大的,所以本文的思路如下:

1、socket协议的简介
2、介绍client与server之间的连接原理
3、PHP中建立socket的过程讲解
4、用一个聊天室作为实例详细讲解在PHP中如何使用socket
阅读详细 »

命令行的形式运行php

注意:在安装php时需要将php 的安装目录加到环境变量 PATH 中 
(右击我的电脑->属性->高级->环境变量, 如果存在 PATH 则在原来的 PATH 中加入你的PHP安装目录, 如果不存在则新建一个 PATH)

 

 

以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数。

Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               Display colour syntax highlighted source.
  -w               Display source with stripped comments and whitespace.
  -f <file>        Parse <file>.
  -v               Version number
  -c <path>|<file> Look for php.ini file in this directory
  -a               Run interactively
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -z <file>        Load Zend extension <file>.
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -i               PHP information
  -r <code>        Run PHP <code> without using script tags <?..?>
  -h               This help
 
  args...          Arguments passed to script. Use -- args when first argument 
                   starts with - or script is read from stdin

CLI SAPI 模块有以下三种不同的方法来获取您要运行的 PHP 代码:

 

 

在windows环境下,尽量使用双引号, 在linux环境下则尽量使用单引号来完成。

 

  1. 让 PHP 运行指定文件。

    php my_script.php php -f  "my_script.php"

    以上两种方法(使用或不使用 -f 参数)都能够运行给定的 my_script.php 文件。您可以选择任何文件来运行,您指定的 PHP 脚本并非必须要以 .php 为扩展名,它们可以有任意的文件名和扩展名。

  2. 在命令行直接运行 PHP 代码。

    php -r "print_r(get_defined_constants());"

    在使用这种方法时,请您注意外壳变量的替代及引号的使用。

    注: 请仔细阅读以上范例,在运行代码时没有开始和结束的标记符!加上 -r 参数后,这些标记符是不需要的,加上它们会导致语法错误。

  3. 通过标准输入(stdin)提供需要运行的 PHP 代码。

    以上用法给我们提供了非常强大的功能,使得我们可以如下范例所示,动态地生成 PHP 代码并通过命令行运行这些代码:

    $ some_application | some_filter | php | sort -u >final_output.txt

 

以上三种运行代码的方法不能同时使用。

和所有的外壳应用程序一样,PHP 的二进制文件(php.exe 文件)及其运行的 PHP 脚本能够接受一系列的参数。PHP 没有限制传送给脚本程序的参数的个数(外壳程序对命令行的字符数有限制,但您通常都不会超过该限制)。传递给您脚本的参数可在全局变量 $argv 中获取。该数组中下标为零的成员为脚本的名称(当 PHP 代码来自标准输入获直接用 -r 参数以命令行方式运行时,该名称为“-”)。另外,全局变量 $argc 存有 $argv 数组中成员变量的个数(而非传送给脚本程序的参数的个数)。

只要您传送给您脚本的参数不是以 – 符号开头,您就无需过多的注意什么。向您的脚本传送以 – 开头的参数会导致错误,因为 PHP 会认为应该由它自身来处理这些参数。您可以用参数列表分隔符 — 来解决这个问题。在 PHP 解析完参数后,该符号后所有的参数将会被原样传送给您的脚本程序。

# 以下命令将不会运行 PHP 代码,而只显示 PHP 命令行模式的使用说明:
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]
 
# 以下命令将会把“-h”参数传送给脚本程序,PHP 不会显示命令行模式的使用说明:
$ php -r "var_dump($argv);" -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

除此之外,我们还有另一个方法将 PHP 用于外壳脚本。您可以在写一个脚本,并在第一行以 #!/usr/bin/php 开头,在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码,然后为该文件设置正确的运行属性。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。

#!/usr/bin/php
<?php
    var_dump
($argv);
?>

假设改文件名为 test 并被放置在当前目录下,我们可以做如下操作:

$ chmod 755 test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

正如您所看到的,在您向该脚本传送以 – 开头的参数时,脚本仍然能够正常运行。

 

 

 

php生成UUID

UUID含义是 通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。 

UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft’s Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。 
阅读详细 »

php生成GIF图片验证码

阅读详细 »

微信小程序及各种平台对接常用可逆加密算法aes256

不同程序之间经常会交换数据,我们经常采用的套路是:
假设要传输的信息是json,我们假设其为json_data,通过http传递信息为
json_data_encode=json_data&sign=md5(json_data+key)
接收方通过验证sign就知道内容有没有被篡改.
阅读详细 »

php使用CURL不依赖COOKIEJAR获取COOKIE的方法

php在使用curl处理COOKIE是通常都需要创建保存的文件 (cookie.txt)
然后依赖依赖一下两个方法:
阅读详细 »

PHP+Curl伪造客户端获取页面 – curl 参数介绍

通过cur伪造cookie

curl_setopt( $ch, CURLOPT_COOKIE, 'redirectLogin=3;t=这里在模拟cookie的值;');

阅读详细 »

PHP获取视频的第一帧与时长

//获得视频文件的缩略图 阅读详细 »

Fiddler实现手机抓包

手机用fiddler抓包

电脑最好是笔记本,这样能和手机保持统一局域网内;其他不多说,直接说步骤了。

一.对PC(笔记本)参数进行配置

   1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的)

         打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,

         勾选CaptureHTTPS CONNECTs,点击Actions,

         勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行),见图:

2.配置fiddler允许远程连接

         上一步窗口中点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect,默认监听端口为8888(下图Fiddler listens on port就是端口号),若端口被占用可以设置成其他的,配置好后要重新启动fiddler,如下图:

点击完成之后,PC端配置完成,接下来开始配置手机端,以安卓为例,iOS方法同安卓;

二.对手机端进行参数配置

         首先要保证手机和电脑都处于同一个网络;

         然后要知道电脑的ip地址(当然这个电脑是安装fiddler的电脑),电脑ip地址可通过cmd,输入ipconfig查询,或网络共享中ipv4找到,我的是192.168.103.53,

         再者要知道fiddler的端口号,Tools->TelerikFiddler Options->Connections,port中值就是端口号,一般默认为8888;接下来开始操作手机;

1.第一步:手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号,点击前往;见下图:

        

2.第二步:前往之后会跳转到证书下载页,见下图:

         点击FiddlerRootcertificate下载证书;

        

3.第三步:点击下载之后,安装证书并起个名字,随便写就行,点击确定;

        

4.第四步:要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可;

        

5.第五步:更改手机无线网的代理

         手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可,

6.操作手机,电脑fiddler中会显示一些http信息,成功;

三.其他

1.停止电脑对手机的网络监控

         系统设置-wifi,找到代理,去掉即可;

2.删除手机中证书                       

         安卓系统设置—安全—收信任的凭证—用户,点击证书删除即可;

3.删除手机上密码

         手机系统—安全—密码,删除系统密码即可;

———————
本文来自 趣味小白猪 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/gld824125233/article/details/52588275?utm_source=copy 

WordPress主题自动显示文章第一张图片代码

在修改主题的时候,我们可能需要WordPress自动获取文章第一张图片,在博客吧看到了相关的实现方法,记录一下,估计以后也用得到。

在当前使用的主题模板的functions.php文件<?php和?>之前添加以下代码

   function catch_that_image() {
      global $post, $posts;
      $first_img = '';
      ob_start();
      ob_end_clean();
      $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
      $first_img = $matches [1] [0];
      if(empty($first_img)){ //Defines a default image
        $first_img = "/images/default.jpg";
      }
      return $first_img;
    }

在当前主题模板的index.php文件的内容代码前或后添加以下代码

<?php echo catch_that_image() ?>


<?php if( $picurl = catch_first_image() ) :  ?>
<img width="100%" height="auto" src="<?php echo $picurl; ?>" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt=""/>
<?php endif; ?>


PHP生成当前页二维码,方便手机访问。

思路:
1. 在当前页面中插入图片标签<img src=”qrcode.php”/>显示二维码
2.利用 $_SERVER[‘HTTP_REFERER’] 获取请求来源,获得当前页面url地址。
3.利用PHPqrcode.php类,生成二维码。

页面中插入img标签

<img src="qrcode.php"/>

qrcode.php代码:

<?php    

include 'phpqrcode.php';

$url_default = "http://www.lrxin.com";
$url = array_key_exists('HTTP_REFERER', $_SERVER) ?  $_SERVER['HTTP_REFERER'] : $url_default;
QRcode::png($url,false,'M',10,2);

die();

常用封装curl函数​httpGet() 、httpPost()

常用封装curl函数

阅读详细 »

PHP获取Cookie模拟登录

一、定义Cookie存储路径(必须使用绝对路径

$cookie_file = dirname(__FILE__)."/cookie.curl.txt";

阅读详细 »

PHP的curl查看header信息的功能(包括查看返回header和请求header)

1.参看返回header信息,需要设置
curl_setopt($ch, CURLOPT_HEADER, true); //返回response头部信息
在curl_exec($ch);返回接口的顶部 显示 返回header信息。

2.参看请求header信息,需要先设置
curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header

在执行curl请求(curl_exec($ch);)后,用过调用 curl_getinfo($ch, CURLINFO_HEADER_OUT); 函数返回

示例代码:

阅读详细 »