PHP-T
TP5目录结构
应用目录结构
生成默认模块
php think build --module name
将数据写入日志
Log::info("params:".\GuzzleHttp\json_encode($params));
数据库操作
//查询一个值
$time = db('Article_images')->where('img_id',444)->value("art_id");
//查询一条记录
$time = db('Article_images')->where('img_id',444)->find();
//查询数据集
$time = db('Article_images')->where('img_id',444)->select();
HTML页面中写PHP代码
// 页面中写PHP代码
function changeLive(vid) {
<?php
if(session('?user')):
?>
$("#player").html('');
player.livePlayer({
'width':'100%',
'height':'600',
'uid':'{$live_cfg["polyv_user_id"]}',
'vid': vid
});
<?php else: ?>
$("#player").html('<a href="{:U("Home/User/login")}"><img style="width:100%"
src="{$nbshop_config.shop_info_video_logo}" /></a>');
<?php endif; ?>
}
查看PHP详细信息
(配置到PHP目录即可)
命令行:
版本号等信息:php -v
插件等:php -m
workerman
独立运行,不需要任何配置
注意端口号占用情况
小程序需配置https证书
通信规则为wss
workerman创建wss服务
<?php
require_once __DIR__ . '/Workerman/Autoloader.php';
use Workerman\Worker;
// 证书最好是申请的证书
$context = array(
// 更多ssl选项请参考手册 http://php.net/manual/zh/context.ssl.php
'ssl' => array(
// 请使用绝对路径
'local_cert' => '磁盘路径/server.pem', // 也可以是crt文件
'local_pk' => '磁盘路径/server.key',
'verify_peer' => false,
// 'allow_self_signed' => true, //如果是自签名证书需要开启此选项
)
);
// 这里设置的是websocket协议(端口任意,但是需要保证没被其它程序占用)
$worker = new Worker('websocket://0.0.0.0:443', $context);
// 设置transport开启ssl,websocket+ssl即wss
$worker->transport = 'ssl';
$worker->onMessage = function($con, $msg) {
$con->send('ok');
};
Worker::runAll();
添加PHP系统环境变量
将安装软件的执行路径添加到环境变量中即可,系统会自动识别可执行文件,添加成功后可在任意位置使用php命令

去除index.php
(如果使用的宝塔,需要在网站站点中配置伪静态)
Apache伪静态
3、 在public中添加.htaccess文件(注意index.php后面的?)(Apache使用)
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
Nginx伪静态(在nginx.conf中添加)(PhpStudy中对应站点配置文件vhosts.conf中添加即可server ->location )
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$ last; break;
}
}
如果使用的是PhpStudy伪静态如下(Apache使用)
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
volist
name(必须):要输出的数据模板变量
id(必须):循环变量
offset(可选):要输出数据的offset
length(可选):输出数据的长度
key(可选):循环的key变量,默认值为i
mod(可选):对key值取模,默认为2
empty(可选):如果数据为空显示的字符串
php
//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
当前文件完整执行路径
print(__FILE__);
print(dirname(__FILE__));
创建空对象
$user = new Object1();
$user->name = "悬剑";
$user->id = 20;
echo $user->id.'22';
$obj1 = new \stdClass; // Instantiate stdClass object
$obj2 = new class{}; // Instantiate anonymous class
$obj3 = (object)[]; // Cast empty array to object var_dump($obj1); // object(stdClass)#1 (0) {}
var_dump($obj2); // object(class@anonymous)#2 (0) {}
var_dump($obj3);
PHP导出excel
积累-T中
20191107
过段时间把PHP完全整理出来
PHP函数记录
phpinfo()
打印当前php环境详细信息 debug_backtrace
产生一条回溯跟踪(backtrace) debug_print_backtrace();
打印一条回溯跟踪 返回一个包含所有已定义变量列表的多维数组,这些变量包括环境变量、服务器变量和用户定义的变量。
get_defined_vars() 获取所有已定义函数
get_defined_functions() 获取所有可用模块
get_loaded_extensions()
获取所有常量
get_defined_constants(); echo '获取域名'。$_SERVER['HTTP_HOST']."<br>"; echo '获取网页地址'.$_SERVER['PHP_SELF']."<br>"; echo '获取网址参数'.$_SERVER["QUERY_STRING"]."<br>"; echo '获取用户代理'.$_SERVER['HTTP_REFERER']."<br>"; echo '路径'.$_SERVER["REQUEST_URI"]."<br>"; echo '获取完整的url'.'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."<br>"; echo '获取完整的url'.'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."<br>"; echo '包含端口号的完整url'.'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]."<br>"; $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]."<br>"; echo '只取路径'.$url; ceil()向上取整 round()四舍五入 intval()转换整数 floor()向下取整 array_reverse()倒序数组
array_push()添加数组 URL转码
urlencode();
rawurlencode();
解码
urldecode()
rawurldecode()
打印当前页面所有数据
<?php echo "<pre>"; print_r(get_defined_vars()); ?>
随机推荐
- Luogu P4331 [BOI2004]Sequence 数字序列 (左偏树论文题)
清晰明了%%% Fairycastle的博客 个人习惯把size什么的存在左偏树结点内,这样在外面好写,在里面就是模板(只用修改update). 可以对比一下代码(好像也差不多-) MY CODE # ...
- SpringMVC全局异常统一处理
SpringMVC全局异常统一处理以及处理顺序最近在使用SpringMVC做全局异常统一处理的时候遇到的问题,就是想把ajax请求和普通的网页请求分开返回json错误信息或者跳转到错误页. 在实际做的 ...
- MySQL 临时修改全局变量
1.查询全局变量: SHOW GLOBAL VARIABLES [LIKE '%search key%']; 2.修改全局变量: SET GLOBAL auto_increment_increment ...
- 创建基本的webpack4.x项目
1.步骤 1)运行npm init -y 快速初始化项目 2)在项目根目录创建src源代码目录和dist产品目录,目录结构 webpack4.x-base |dist |src |index.html ...
- jquery animate()方法 语法
jquery animate()方法 语法 作用:animate() 方法执行 CSS 属性集的自定义动画.该方法通过CSS样式将元素从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创 ...
- BZOJ 4034 [HAOI2015]树上操作 线段树+树剖或dfs
题意 直接照搬原题面 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所 ...
- 查找:find、locate、which、whereis
有find . locate . which . whereis 一.find 命令格式:[root@localhost ~]# find 搜索路径 [选项] 搜索内容 find是比较特殊的命令,它有 ...
- Unity3D面试问题
注意,是问题,不是笔试题哦.这些是我最近面试北京各公司总结的一些被问到的还算典型的问题.跟大家分享一下.答案是我自己的,不保证标准和完整. 哎,公司年底开人,又校招一群便宜的小鬼……桑死心了……好在找 ...
- bk复面-一场被问蒙蔽了的面试
1.自我介绍 ---自我介绍从个人生活上.兴趣爱好上去介绍,比如我自己,平时喜欢听听音乐.看看鸡汤类的书,比如爱下厨,喜欢根据一些网上的教程去尝试做一份自己满意的晚餐,简历上已经写得工 ...
- Primes and Multiplication
C - Primes and Multiplication 思路:找到x的所有质数因子,用一个vector储存起来,然后对于每一个质因子来说,我们要找到它对最后的答案的贡献的大小,即要找到它在最后的乘 ...