逻辑运算符 &&和& ||和|的部分区别

返回结果类型不同,

A||B 如果A为真那么B不会做判断,而A|B前后都做判断

switch判断中并不是===,更像是==,例如(1) case 1,case ’1’都会执行

获取文件后缀

End等部分函数函数传入值必须为变量

输出表格

<?php

//$h 代表行,$l 代表列

function table_fn($h,$l){

echo "<table border=1px>";

for($i=0;$i<$h;$i++){

$bgcolor = $i%2 == 0 ? "#FFFFFF" : "#DDDDDD";

echo "<tr bgcolor=".$bgcolor.">";

for($e=0;$e<$l;$e++){

echo "<td>";

echo $e+$i*10;

echo "</td>";

}

echo "</tr>";

}

echo "</table>";

}

?>

Php处理拼接html时

$res .= “<h2 id=”download”</h2>”;会报错需要转义双引号

$res .= “<h2 id=\”download\”</h2>”;

或者

$res .=<<<HTMLSTR

<h2 id=\”download\”</h2>

HTMLSTR;

Extra函数可以把数组变成变量

POST简单过滤

function mysqlClean($data){
    return (is_array($data))?array_map(mysqlClean, $data):mysql_real_escape_string($data);
}

php中计算二维数组中某一元素之和

[0] => array(5) {

["id"] =>
string(2) "11"

["name"] =>
string(5) "1.jpg"

["suffix"] =>
string(3) "jpg"

["url"] =>
string(29) "./Uploads/1/5292f55d208e8.jpg"

["size"] =>
string(6) "715895"

}

[1] => array(5) {

["id"] =>
string(2) "12"

["name"] => string(22) "minisite数据库.docx"

["suffix"] =>
string(4) "docx"

["url"] =>
string(30) "./Uploads/1/5292f5606a52c.docx"

["size"] =>
string(5) "16667"

}

要计算size的和

  1. echo array_sum(array_map(create_function('$val', 'return $val["size"];'), $arr));
  1. 或者
  1. echo array_sum(array_map(function($val){
  1. return $val['size'];}, $arr));

计算多个元素之和

  1. $sum = 0;
  1. foreach($arr as $item){
  1.   $sum += (int) $item['size'];
  1. }

PHP使用时间strtotime函数需要设置时间区,否则本地产生的时间戳不正确。

PHP所取的时间是格林威治标准时间,所以和你当地的时间会有出入,格林威治标准时间和北京时间大概差8个小时左右

//foreeach 代替for

function flo($a) {

foreach (range(1, $a) as $v) {

echo "<div style='height: 50px;width:", $v * 50, "px;background-color: black'></div>";

}

}

flo(8);

三、

$_SERVER[‘REMOTE_ADDR’]时,如果是本机结果是“::1”

五、require 当前目录的文件,用require ‘/conf/ad.php’错误(在虚拟主机IIS上status500错误),必须用’require ’conf/ad.php’;

有的程序安装提示mb_convert_encoding()

编辑 php.ini 文件,将; extension=php_mbstring.dll 前面的 ; 去掉,重启网页服务器

php 输出乱码解决方案

header("content-type:text/html;charset=utf-8");

  1. $test3 = ['a'=> 1? 'a':'b']; //'a'=>'a'
  2. $test3 = ['a'=> 0? 'a':'b']; //'a'=>'b'

经常会遇到这种情况

  1. $a = '';
  2. if($b == true){
  3. $a = 'abc';
  4. }
  5. if($a){X}
  6.  
  7. //个人觉得前四行完全可以简化成
  8.  
  9. $a = $b == true ? 'abc' : '';

有这个需求

  1. $a = [
  2.   ['field'=>[‘a'=>'b'],XXX],
  3.   ['field'=>[‘g'=>'h'],XXX],
  4.   ['field'=>[‘m'=>'n'],XXX]
  5. ];

想要通过 $a 得到 "a as b,g as h,m as n"的字符串,用作数据相关操作,我是这么干的

  1. $field = implode(',', array_map(function ($val) {
  2. return $this->_fieldMeta($val[0]) . ' as ' . $this->_fieldMeta($val[1]);
  3. }, array_column($a, 'field')));

连表 拼接字符串时候用这个方法,(不确定是否最优)

  1. implode(',',array_map(function($val){return 'b.'.$val;},$levelsName))
  1. dump($vars);
  2. dump(http_build_query($vars));
  3.  
  4. array_walk($vars, function (&$value, $key) {
  5. $value = $key . '=' . $value;
  6. });
  7. $vars = implode('&', $vars);
  8. dump($vars);

看手册发现几个相似的函数

parse_str

  1. <?php
  2. $str = "first=value&arr[]=foo+bar&arr[]=baz";
  3. parse_str($str);
  4. echo $first; // value
  5. echo $arr[0]; // foo bar
  6. echo $arr[1]; // baz
  7.  
  8. parse_str($str, $output);
  9. echo $output['first']; // value
  10. echo $output['arr'][0]; // foo bar
  11. echo $output['arr'][1]; // baz

extract

  1. <?php
  2. /* 假定 $var_array 是 wddx_deserialize 返回的数组*/
  3. $size = "large";
  4. $var_array = array("color" => "blue",
  5. "size" => "medium",
  6. "shape" => "sphere");
  7. extract($var_array, EXTR_PREFIX_SAME, "wddx");
  8.  
  9. echo "$color, $size, $shape, $wddx_size\n";

list

  1. list($name,$value) = explode('=', $i, 2)
  1. var_dump('' == null); //true
  2. var_dump('0' == null); //false
  3. var_dump(' ' == null); //false

计算1-100和

函数帝

  1. array_sum(range(1,100));

自己的方法,不确定是否最优,看公司的程序用的是 explode后判断count然后确定删除字符串中是否有','方法

删除字符串中某一数字

  1. echo '<pre>';
  2. $a = '1,2,3,4,5';
  3. var_dump($a);
  4.  
  5. $b = 3;
  6. $tradArr = explode(",", $a);
  7. unset($tradArr[array_search((string)$b, $tradArr)]);
  8. $result = implode(',',$tradArr);
  9.  
  10. var_dump($result);

小技巧

  1. $f = '9';
  2. $f .= ($f == '' ?: ',').'9';
  3. var_dump($f); //输出的是19

正确的方法是

  1. $f = '9';
  2. $f .= ($f == '' ? '': ',').'9';
  3. var_dump($f);

原来三目运算符

  1. $output = $value ? $value : 'No value set.';
  2. 《===》
  3. $output = $value ?: 'No value set.';

去除‘[abcdefg]'字符串首位字符

以前都是这么干的 rtrim(ltrim($a, '['), ']')

也可以这么干$a[0] = $a[length($a) - 1] = '';

php7.1后可以这么干 $a[0] = $a[-1] = '';

  1. for($i=0;$i<5;$i++){
  2. echo 'M';
  3. if(1){
  4. echo '-';
  5. if($i==2) continue;
  6. echo $i;
  7. }
  8. echo '<br />';
  9. }

$a = new AAA();

$b = array(&$a,’123’);

设置$b[0] = ‘###’,

var_dump($b[0])显示 &string 类型

想要完全替换$b[0]需要

Unset[$b[0]];$b[0]=’###’;

var_dump($b[0])显示 string 类型

看手册时

http://php.net/manual/zh/function.constant.php

不知道constant的意义在哪,一下没理解过来

通常输出常量可以直接用例如

echo __NAMESPACE__;

但是如果常量名不确定或者说时在变量中时就用到constant()了

  1. define('GP','hao GP');
  2. $a = 'GP';
  3. echo $a;
  4. echo '<br>';
  5. echo constant($a);

连续操作时候

想要获得['abc','def'] 数组'abc‘

  1. (db('会员')->where(array('编号'=>$saleData['编号']))->column($v))[0]

PHP计算1-100和优雅做法

  1. //一
  2. function getSum($n)
  3. {
  4.   return $n == 1 ? $n : $n + getSum($n-1);
  5. }
  6. getSum(100);
  7.  
  8. //二
  9. array_sum(range(1,100));

PHP杂技(一)的更多相关文章

  1. 杂技之sharpdevelop调试aps.net

    背景: 本人笔记本电脑不给力,vs打开实在太慢,因此考虑使用sharpdevelop,但sharpdevelop有点麻烦事,就是不支持asp.net的调试,为解决此问题,本人在此杂技一把了 方案一: ...

  2. 洛谷 P1842 奶牛玩杂技 题解

    P1842 奶牛玩杂技 题目背景 Farmer John 养了N(1<=N<=50,000)头牛,她们已经按1~N依次编上了号.FJ所不知道的是,他的所有牛都梦想着从农场逃走,去参加马戏团 ...

  3. [洛谷P1842] 奶牛玩杂技

    题目类型:贪心+证明,经典题 传送门:>Here< 题意:有\(N\)头奶牛,每个奶牛有一个重量\(W[i]\),力量\(S[i]\).定义每个奶牛的压扁程度为排在它前面的所有奶牛的总量之 ...

  4. Node 杂技

    1.关于require 当文件夹a中含有index.js时,在b.js中如果有require("文件夹a的路径"),则将会自动执行index.js的语句

  5. 简单工具 & 杂技

    图片压缩: 腾讯智图(http://zhitu.isux.us/) 手机的所有尺寸大小规范: http://screensiz.es/phone 需求: 移动端宽高一致的盒子(因为移动端屏幕宽度不一样 ...

  6. Linux杂技

    挂载光盘 mkdir /mnt/cdrom #建立挂载点 mount /dev/cdrom /mnt/cdrom/ #挂载光盘 更换YUM源: cd /etc/yum.repos.d/ 使网络yum源 ...

  7. 关于html的一些杂技

    html预定义字符指的是 :<   > html实体指的是 $amp 等 php中htmlspeciachar()就是讲html预定义字符转换成html实体. 浏览器渲染时,会将html实 ...

  8. JS杂技之无中间变量的值交换方式

    从http://www.cnblogs.com/liuyitian/p/4081517.html#3074553看到一种无中间变量的值交换方式,具体如下: var a = 1;var b = 2;a ...

  9. ThinkPHP5杂技(二)

    不要使用数据库查询嵌套 if (!$listA = Db::name('coin') ->field('id,symbol') ->where('id', 'IN', logic('All ...

  10. PHP杂技(二)

    php array_merge($a,$b)与 $a+$b区别 array_merge 数字键名会被重新编号,what's '...' $data = [[1, 2], [3], [4, 5]]; v ...

随机推荐

  1. 【Python图像特征的音乐序列生成】数据集制作的一些tricks

    关于数据集的制作,我决定去掉很多不必要的东西,比如和弦,于是我选择了melody部分的旋律. 有了midi文件,我现在要abc序列,所以我要通过midi2abc转换一下文件. 批处理程序效果如下: 文 ...

  2. 爬取豆瓣电影top250并存储到mysql数据库

    import requests from lxml import etree import re import pymysql import time conn= pymysql.connect(ho ...

  3. ASUS主板 Type C 接口无效问题

    修改UEFI设置,把 USB TYPE C POWER SWITCH 改成启用

  4. UVA 1616 Caravan Robbers 商队抢劫者(二分)

    x越大越难满足条件,二分,每次贪心的选区间判断是否合法.此题精度要求很高需要用long double,结果要输出分数,那么就枚举一下分母,然后求出分子,在判断一下和原来的数的误差. #include& ...

  5. 判断用户ip是否在指定的一个ip段内

    /** * 判断ip是否在一个ip段内 * * @param args */ public static boolean ipExistsInRange(String ip, String ipSec ...

  6. Linux学习日记:第一天

    一,登录Linux Login:test Password:123456 Last Login:Wed Dec 3 22:40:02 on tty1 test@ubuntu: startx    进入 ...

  7. iOS开发中的Self-Manager 模式

    Self-Manager 源于我们团队内部的黑话,“诶?你刚去的创业公司有几个 iOS 开发啊?” “就我一个” “靠,你这是 Self-Manager 啊” 最近,这个思路被我们当做了一种设计模式, ...

  8. VMWare安装苹果Mac OS X

    随着iPhone.iPad.Mac等苹果产品越来越火爆,越来越多的初学者想要了解和尝试苹果平台,包括苹果操作系统Mac OS X.苹果演示软件Keynote.苹果开发工具Xcode等.然而,苹果电脑价 ...

  9. DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么

    DNS 工作原理是什么,域名劫持.域名欺骗.域名污染又是什么 2014年11月27日 10:05:40 阅读数:6726 标签: dns网络互联网顶级域名递归 更多 个人分类: 网络学习   一.DN ...

  10. Python爬虫系列-分析Ajax请求并抓取今日头条街拍图片

    1.抓取索引页内容 利用requests请求目标站点,得到索引网页HTML代码,返回结果. 2.抓取详情页内容 解析返回结果,得到详情页的链接,并进一步抓取详情页的信息. 3.下载图片与保存数据库 将 ...