目录
php使用file_get_contents 也可以外部访问接口
-
sprintf() 函数把格式化的字符串写入变量中。
-
php 日期格式化
例如:date("Y-m.d",strtotime(8018-09-25 15:00)) 输出2018-09.25
例如:date("Y-m-d",strtotime(8018-09-25 15:00)) 输出2018-09-25
-
php 在线调试打印日志
要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个
$file = 'log.txt';
$content = "有消息来了";
file_put_contents($file, $content,FILE_APPEND);// 这个函数支持版本(PHP 5)
-
and 和 or 运算
$isDelete and $post['Dishes']['is_del'] = 1; 可以理解为if 运算
defined('YII_ENV') or define('YII_ENV', 'test'); or运算
用 or 可以达到,是因为当函数错误后,能执行or后面的函数,这是因为下面三点原因:
1.逻辑运算的运算顺序是从左向右
2.or运算符的左结合性
3.or运算中,如果运算时有值为真了,则整个表达式为真,后面不需要运算
终合上面三个因素,当or左侧函数运行正常(返回非假值),则不会执行后面的函数
这里利用了or的这个特性,将die(终止并输出函数)用于此处,巧妙的实现了函数异常而报错的功能
检查一个常量是否定义过,如果没有定义那么就定义一个常量。
-
a 标签下载文件
<a target='_blank' href="/demo/downLoadTest.txt" download="">文件下载测试</a>
download的值表示下载下来的文件名,如果不填,就会使用默认的文件名。
-
生成随机数
public function randomNum($length=10)
{
$str = '';
for($i = 0; $i < $length; $i++) {
$str .= mt_rand(0, 9);
}
return $str;
}
-
根据 对象导出Excel
$searchModel = new CouponUserSearch();
$params=Yii::$app->request->queryParams;
$params['keyword_l'] = isset($params['keyword_l'])?$params['keyword_l']:'';
$params['key'] = isset($params['key'])?$params['key']:'';
$params['date_start'] = isset($params['date_start'])?$params['date_start']:'';
$params['date_end'] = isset($params['date_end'])?$params['date_end']:'';
$dataProvider = $searchModel->search($params);
$list=$dataProvider->getModels(); //将 dataProvider 转化成对象类型
foreach ($list as $key=>$val){
$val->seller_id =(empty($val->sellerPass->seller_name))?'-':$val->sellerPass->seller_name;
}
-
yii2 下拉框组件
<?=$form->field($model, 'mobile')->dropDownList(\yii\helpers\ArrayHelper::map($agency,'id', 'username'), ['prompt'=>'Select...']);?>
-
YIi2 禁售和停止
[
'format' => 'raw',
'attribute' => 'is_allow',
'label'=>'状态',
'value'=>function($filterModel){
switch ($filterModel->is_allow){
case 9:
return '<span class="label">违规</span> | <button type="button" class="btn btn-success btn-xs allow" data-id="'.$filterModel->id.'">上架</button>';
break;
case 1:
return '<span class="label">已下架</span>';
break;
case 0:
return '<span class="label label-success">已上架</span> | <button type="button" class="btn btn-default btn-xs stop" data-id="'.$filterModel->id.'">违规</button>';
break;
}
},
],
$(document).on("click",'.allow',function () {
var id=$(this).attr('data-id');
var upbut=this;
$.post("<?php echo Url::toRoute(['dishes/allow']);?>",{id:id},function (res) {
if (res.code==1){
var html='<span class="label label-success">已上架</span> | <button type="button" class="btn btn-default btn-xs allow" data-id="'+id+'">违规</button>'
$(upbut).parent().html(html);
}else{
alert(res.mg);
}
},'json');
});
$(document).on("click",'.stop',function () {
var id=$(this).attr('data-id');
var dnbut=this;
$.post("<?php echo Url::toRoute(['dishes/stop']);?>",{id:id},function (res) {
if (res.code==1){
var html='<span class="label">违规</span> | <button type="button" class="btn btn-success btn-xs stop" data-id="'+id+'">上架</button>'
$(dnbut).parent().html(html);
}else{
alert(res.mg);
}
},'json');
});
/**
* 菜品的上架
*/
public function actionAllow(){
$json=array('code'=>0,'mg'=>'参数错误');
if (yii::$app->request->isPost){
$post=yii::$app->request->post();
$model=Dishes::findOne(['id'=>$post['id']]);
if (!empty($model)){
$model->is_allow=0;
if ($model->save()){
$json=array('code'=>1,'mg'=>'上架成功');
}else{
$json=array('code'=>0,'mg'=>'上架失败');
}
}else{
$json=array('code'=>0,'mg'=>'参数错误');
}
}
echo json_encode($json);yii::$app->end();
}
-
php使用file_get_contents 也可以外部访问接口
$url="https://restapi.amap.com/v3/geocode/regeo? key=76b6d24aaca4f53cc8833da94ead0c78&location=116.481488,39.990464&extensions=all";
$content=file_get_contents($url);
$json=json_decode($content,true);
var_dump($json);
-------------------------------两者的区别------------------------------------------------------------
curl 支持更多协议,有http、https、ftp、gopher、telnet、dict、file、ldap;模拟 Cookie 登录,爬取网页;FTP 上传下载。
fopen / file_get_contents 只能使用 GET 方式获取数据。
-
yii2 密码加密
$password_hash=Yii::$app->security->generatePasswordHash($model->password) //生加密
$password是明文.如:123456,$password_hash是用上面方法生面的password hash,返回true与false
Yii::$app->security->validatePassword($password, $password_hash);
-
距离的sql查询
$query = Sendcardlog::find()->where(['!=', 'memberId', $post['member_id']]);
$query->select(['*','ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(('.$post['latitude'].' * PI() / 180 - latitude * PI() / 180) / 2 ),2) + COS('.$post['latitude'].' * PI() / 180) * COS(latitude * PI() / 180) * POW(SIN(('.$post['longitude'].' * PI() / 180 - longitude * PI() / 180) / 2),2))) * 1000) AS juli']);
$query->andFilterWhere(['between','createTime',$startTime,$endTime]);
$cards = $query->orderBy('juli ASC')->all();
-
yii2批量删除和批量修改
$ids = explode(',',$ids);
DishesComment::deleteAll(['in','id',$ids]);
DishesComment::updateAll(['is_del'=>1],['in','id',$ids]);