分类目录归档:PHP

PHP的PDF扩展库TCPDF将中文字体设置为内嵌字体的方法

1. 下载要设置的字体,如名为simfang.ttf,放在./vendor/tecnickcom/tcpdf/tools目录中

2.在tools目录中按住shift,点击鼠标右键,点击“在此处打开命令行窗口”,执行语句

1php ./tcpdf_addfont.php -b -t simfang -i simfang.ttf

 便会在./vendor/tecnickcom/tcpdf/fonts/文件夹下面会生成simfang.ctg.z , simfang.php和simfang.z几个文件

3.在调用TCPDF的方法中设置仿宋字体

$pdf = new \Tcpdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
 // 设置字体
$pdf->SetFont('simfang', '', 14, '', false);

php的unserialize()返回后的结果分析

php的unserialize()返回后的结果

a:4:{
s:13:”module_rename”;a:1:{i:80;s:6:”档案”;}
s:8:”opentype”;a:1:{i:80;s:3:”tab”;}
s:10:”show_field”;a:1:{i:80;s:9:”from_units”;}
s:11:”union_field”;a:1:{i:80;s:10:”from_units”;}
}

a:4中的a表示4个数组
s:13:”module_rename”;a:1:{i:80;s:6:”档案”;}
s表示字符串,长度13,module_rename是13个字符,因为是数组,所以这个是键值

a:1:{i:80;s:6:”档案”;}是value

php的多维数组排序,还是给出官方的例子,加深记忆

示例 #3 对数据库结果进行排序

本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。

例子中的数据如下:

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

本例中将把 volume 降序排列,把 edition 升序排列。

现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。<?php
// 取得列的列表
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}


// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

数据集合现在排好序了,结果如下:

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

css控制文字显示2行

在编写页面的时候,经常遇到一些地方的文字显示1行,多余的文字隐藏,这样显示1行的很好控制:

css代码如下:

white-space: nowrap;  

overflow: hidden;  

text-overflow: ellipsis;  

3行代码搞定,这个很常见。但是要是2行文字显示多余隐藏呢,我之前在网上搜到的很多说什么用js去控制,用php控制。。。等等诸如此类的复杂方法,为什么不能同样用css去控制呢?后来找到答案了,用css同样可以去控制2行文字显示多余隐藏。

css代码如下:

text-overflow: -o-ellipsis-lastline;  overflow: hidden;  text-overflow: ellipsis;  display: -webkit-box;  -webkit-line-clamp: 2;  -webkit-box-orient: vertical;  

更方便的是改变webkit-line-clamp的值还可以实现3、4、5等等多行文字显示多余隐藏的效果~

php安装inotify扩展

inotify是pecl的扩展之一.

需要pecl扩展库,则需要安装pear
php编译pear,编译参数加–with-pear就可以了

安装完之后在/home/system/php/bin目录会有pecl和pear命令

执行/home/system/php/bin/pecl install inotify
就会安装,安装完后提示你再php.ini文件中加入extension=inotify.so

加入后就完成了

一个update语句,多表条件

update yunqikds_companys left join yun_industry on yun_companys.industry = yun_industry.main set yun_companys.industry = yun_industry.id where yun_companys.industry = yun_industry.main;

where条件必须有

left join TABLE on 条件

再来几个

update yun_companys left join sheet1 on yun_companys.unitcode = sheet1.统一社会信用代码 set yun_companys.unittype=sheet1.企业性质 where yun_companys.unitcode=sheet1.统一社会信用代码;

update yun_companys left join sheet1 on yun_companys.unitcode = sheet1.统一社会信用代码 set yun_companys.scope=sheet1.经营范围 where yun_companys.unitcode=sheet1.统一社会信用代码;

update yun_companys left join sheet1 on yun_companys.unitcode = sheet1.统一社会信用代码 set yun_companys.address=sheet1.地址 where yun_companys.unitcode=sheet1.统一社会信用代码;

获取状态函数

获取状态
    public function getStatus(){
      $sql = 'select setup from field as f,(select id as tid from module where name=\'coupons\') as t where t.tid=f.module_id and f.field=\'status\'';
      $res = Db::query($sql);

      $arr = unserialize($res[0]['setup']);

      $strStatus = $arr['options'];

      // var_dump(explode("\s",$strStatus));die();   //换行用PHP_EOL不行
      $arrStatus = var_dump(preg_split('/[\s]+/',$strStatus));
      
      return $arrStatus;
   }

kds应用的

$field_list = db::name('field')
->where('module_id=' . $module_id)
->where($where_field_group)
->order('listorder asc,id asc')->select();

field_group没传入,导致查询为空,model模型中的edit方法.

网页不允许复制破解,三条js解决

网页不允许复制破解

一般都是通过js做限制,例如onselectstart等

chrome浏览器为例,网页:https://m.techan.com/produce/zkgeb.html为例,去掉网页的复制限制,运行完如下,可以选择复制

图片详情

步骤:

1\chrome浏览器,F12打开开发者工具

2\点开控制台,输入图片中的三条js语句:

document.onselectstart=null;

document.ondragstart=null;

document.body.contentEditable=’true’;

3\然后就没了

4\去掉右键菜单屏蔽办法: