PHP判断远程文件(图片)是否存在的三种方法

当项目需要进行对远程的一些文件或者图片进行抓取到本地的时候就需要进行文件的处理,首先需要判断远程文件是否存在,下面有三种方式,仅供参考,推荐使用curl的方式。 方法一(需要服务器支持Curl组件): function check_remote_file_exists($url) { $curl = curl_init($url); // 不取回数据 curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOP....
  •   
  • 37
  • php
  • 11
  • dodobook
  • 2017/04/25

使用PHPExcel进行判断excel的类型并导入Demo

最近遇到一个小功能,需要对远程的Excel进行读取并执行任务导入到数据库里面。这个时候就需要判断Excel是2003还是2007版本了。虽然大多数都可以根据文件名进行判断,但是PHPExcel提供了更加完善的方法。PHPExcel_IOFactory::identify($excelFile); //'Excel5' 'Excel2007'得到的excel的地址。 读取远程文件到本地可以直接使用ile_put_contents($excelFile,file_get_content....
  •   
  • 61
  • php
  • 30
  • dodobook
  • 2017/04/18
aliyun_oss

PHP从网络下载图片并上传到阿里云OSS服务器的方法Demo

阿里云的oss存储越来越多的被广大开发者使用,且阿里云的存储系统可以帮开发者节省开发时间,运维时间,以及不必要的风险(老的文件系统单目录不建议超过2000个文件,文件数目过多文件索引寻找就很耗时耗资源)等。至于阿里云OSS存储的好处罄竹难书,存在即合理,现在这么流行,一定有其过人之处。 使用阿里云oss的时候建议先去看看相关的文档,且把sdk下载下来,引入到你的....
  •   
  • 200
  • php
  • 19
  • dodobook
  • 2017/04/07
Instagram_sandbox_user_1

浅谈Instagram账户授权的sandbox沙盒模型邀请用户

最近在做一个关于国外社交平台的账号绑定的接口调试工作。新建项目填写授权,接口实现等会有新的篇幅来完整的介绍。详情请见文章的底部友情链接。 这一篇主要讲邀请新用户参与到沙盒模式的简单实现。Manage Clients创建好之后,我们需要管理我们的客户端的相关信息。开发阶段我们都是以sandbox模式作为环境,且sandbox是必须的。当然沙盒模式也是有很多限制的(如下图所示)。....
  •   
  • 181
  • php
  • 37
  • dodobook
  • 2017/03/02

PHP数组元素添加到数组的头部(array_unshift)

在PHP中像数组中添加元素比较常见的是array_push函数,即数组的入栈操作,但是这个函数是将元素添加到数组的末尾,如果需要将数组元素压入到数组的头部(即第一个元素)该如何操作呢? 使用PHP内置函数 array_unshift ,下面就将 array_unshift 这个函数的用法列举一下。array_unshift该函数的作用是在数组开头插入一个或多个元素。被加上的元素作为一个整体添加,这些添加....
  •   
  • 178
  • php
  • 37
  • dodobook
  • 2017/02/21

Yii2数据库开启表结构缓存以及清除缓存

Yii2开启表结构缓存,因为当运用模型(model)时,AR的一些公共属性都会从DB中获取,这样会导致服务器负担一些额外的资源开销,实际上对于成品来说,服务器这些开始销是多余的,故应该阻止这种默认行为,把表结构进行缓存起来,提高效率.Yii2的缓存值得深入研究学习. 开启数据库表结构的schema缓存的方法: //配置文件的方式 'db'=>array( ... 'enableSchemaCache' => tr....
  •   
  • 339
  • php
  • 32
  • dodobook
  • 2017/02/15

PHP数组操作–获取数组最后一个值的方法(5种)

PHP开发过程中,可能经常需要对取出的数组要获取数组的最后健或值。在这里有以下五种方法,并且跟据他们在一些情况下如何使用的条件限制进行了说明。 <?php $array=array(1,23,3,4,5,8,66); //强烈推荐 echo end($array); //将数组的内部指针指向最后一个单元,适用于所有数组 echo $array[count($array)-1]; //计算数组长度,然后获取数组最后一个元素....
  •   
  • 192
  • php
  • 29
  • dodobook
  • 2017/02/10

Yii2数据库操作之批量插入batchInsert()

数据库真的真的很脆弱!!!在一些应用场景中,需要对一些数据进行批量的插入,例如日志,例如批量新增数据,例如数据导入等。大多数不考虑效率的情况下,可以直接使用foreach循环插入(通俗易懂简便).但是考虑性能和数据库的优化的情况下,你就一定要了解到batchInsert这个方法了。直接上代码: //要插入的表的名称 $tableName = UserTagList::tableName(); //要插入的字段 $....
  •   
  • 599
  • php
  • 41
  • dodobook
  • 2016/12/26
light_on_off

2016滴滴出行研发工程师笔试题(亮灯问题)

一、题目 2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的开关按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏? A. 43       B. 44         C. 45      D. 46 二、解题 咋一看,这不是数学问题吗?干脆用数学解了。 先来分析一下,因为一开始的时候 2....
  •   
  • 1083
  • php
  • 40
  • dodobook
  • 2016/12/22

Yii2获取model->save()错误信息中的第一条的方法

在Yii2中经常需要对数据表的新增更新或者删除。这个时候就经常用到$model->save()的方法,且model里面的rule会对这些提交的数据进行验证。验证不通过的话,会抛出提示的信息。以下这个方法就是得到获取Model错误信息中的 第一条,无错误时返回 null 直接上代码。 //获取 Model 错误信息中的 第一条,无错误时 返回 null public static function getModelError($model) {....
  •   
  • 779
  • php
  • 31
  • dodobook
  • 2016/12/13
PHP得到最近一周的日期已经得到某个月的实际天数Date

PHP得到最近一周和某月\某年的实际天数Date(t)\Date(z)

最近有一个接口的需求需要统计最近一周的相关的数据(如下图),也需要统计日均数据(因为月份是可以随意切换的,所以也就需要得到每个月有多少天的数据)。此处我写了一个简单的方法用于公共调用,当然有更好的方法。 温馨提示 Date('t',$time); //PHP日期函数得到某个月的真实天数 /** * 用于获取最近一周的日期列表 * 用于计算每个月的天数(本月的话截止到今天2016-12-0....
  •   
  • 462
  • php
  • 39
  • dodobook
  • 2016/12/08

PHP中array_key_exists()与isset()以及??的区别

PHP中array_key_exists用于检查某个键名是否存在于数组中,而isset也可以用于检测数组中某个键名是否存在,那么二者有什么区别呢? 一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组。 但是最主要的区别在于在设定的条件下的返回值。现在我们来验证一下这个最主要的区别。 array_key_exists() array_key_exists() 会检查键值的存在. 这个函数会返....
  •   
  • 308
  • php
  • 27
  • dodobook
  • 2016/11/21

PHP获得两个或多个数组交集与差集的方法

在一些常见的场景下面,例如有一大群用户列表,需要获得一部分包含某个标签的用户列表,不包含某个标签的用户列表。就需要用到交集,共同含有的标签,差集不包含某个标签。 这篇文章主要介绍了PHP获得数组交集与差集的方法,实例分析了array_intersect与array_diff方法在求数组交集与差集时的使用技巧,需要的朋友可以参考下 本文实例讲述了PHP获得数组交集与差集的方法。分....
  •   
  • 332
  • php
  • 29
  • dodobook
  • 2016/11/18

PHP使用Yii2实现LinkedIn(Api)授权登录并获取信息Demo

在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。 之后直接上代码:LinkedinController.php <?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\web\Controller; use yii\httpclient\Client; use yii\authclient\clien....
  •   
  • 369
  • php
  • 33
  • dodobook
  • 2016/11/08

PHP使用Yii2实现Facebook(Api)授权登录并获取信息Demo

在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。 之后直接上代码:FacebookController.php <?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\httpclient\Client; use yii\web\Controller; use yii\authclient\clien....
  •   
  • 348
  • php
  • 26
  • dodobook
  • 2016/11/08
twitter_set

PHP使用Yii2实现Twitter(Api)授权登录并获取信息Demo

在已经安装好相关的扩展的情况下(若未安装Yii2的扩展请移步参考底部的安转的相关文章),注册开发者账号,配置开发者相关的信息。初步的配置信息如下所示。 之后直接上代码:TwitterController.php <?php /** * User: Dodobook * Date: 2016/11/1 08:08:08 */ namespace app\controllers; use Yii; use yii\httpclient\Client; use yii\web\Controller; ....
  •   
  • 742
  • php
  • 35
  • dodobook
  • 2016/11/08

Yii2安装加载AuthClient Extension来实现第三方的授权登录

最近接手一个工作内容需要获取第三方的授权登录,授权的第三方平台包括Twitter Facebook LinkedIn等。目前项目使用的Yii2框架。 对应的看了一下Twitter facebook 以及Linkedin的文档,发现有相似之处,又有不同之处,如果单独对每一个都引入一个扩展的话,显得不那么友好以及容易维护。 对于php程序员来说,facebook和linkedin是非常的友善的,极度的点赞一个,不仅有demo....
  •   
  • 345
  • php
  • 38
  • dodobook
  • 2016/11/08

使用PHP发送get、post请求的几种方法(curl,header)

在接口的开发中经常会遇到需要请求相关的第三方或者其他应用的接口,此处收集了几种PHP的发送get、post请求的方法。建议用curl。 方法1: 用file_get_contents 以get方式获取内容 $url='http://www.dodobook.net/'; $html = file_get_contents($url); echo $html; 方法2: 用fopen打开url, 以get方式获取内容 $fp = fopen($url, 'r'); //返回请求流信息....
  •   
  • 572
  • php
  • 32
  • dodobook
  • 2016/11/08

Yii2接口类里面直接调用Jpush的公共方法Demo示例

现在很多APP都使用极光推送实现消息订单等的通知。极光推送的PHP的接口之前的文章已经介绍过。文章底部有相关的链接可以直接访问。此处是写了一个公共的方法在很多地方直接调用。 使用示例如下代码所示,有区分个人版本和企业版本。传入个人(企业)ID和推送的信息内容。 //Jpushe 推送给用户的公共方法 public function jpushMember($member_id,$msg=''){ if(!$membe....
  •   
  • 418
  • php
  • 28
  • dodobook
  • 2016/10/11

PHP递归方式把一个数组里面的null转换为空字符串”的方法

在一些接口的调用中,直接查询数据库出来的字段可能为null字段,但是为了简便前端的判断,需要把null转换成空字符串'',这个时候就需要递归的方式进行。直接上代码如下: //把 null转换为空'' 递归方式 public function _unsetNull($arr){ if($arr !== null){ if(is_array($arr)){ if(!empty($arr)){ foreach($arr as $key => $value){ if($value =....
  •   
  • 440
  • php
  • 27
  • dodobook
  • 2016/10/11