TP5目录结构

├─application 应用目录
├─extend 扩展类库目录(可定义)
├─public 网站对外访问目录
├─runtime 运行时目录(可定义)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架核心目录
├─build.php 自动生成定义文件(参考)
├─composer.json Composer定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行工具入口
 
核心框架目录结构
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think think 类库包目录
│ │ └─traits 系统 traits 目录
│ ├─tpl 系统模板目录
│ │
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 框架基础文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件

应用目录结构

├─application 应用目录(可设置)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块公共文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ └─view 视图目录
│ │
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共文件
│ ├─config.php 应用配置文件
│ ├─tags.php 应用行为扩展定义文件
│ ├─database.php 数据库配置文件
│ └─route.php 路由配置文件

生成默认模块

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伪静态

1、 httpd.conf 配置文件中加载了 mod_rewrite.so 模块
2、 AllowOverride None 将 None 改为 All

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()); ?>

最新文章

  1. Vue.js简单实践
  2. html5学习笔记一
  3. jquery删除添加输入文本框
  4. android 应用架构随笔六(Loading加载页面)
  5. unity Dotween插件的简单介绍及示例代码
  6. Linux中/proc/[pid]/status详细说明
  7. [复变函数]第15堂课 4.3 解析函数的 Taylor 展式
  8. HW7.2
  9. asp.net 后台弹出提示框
  10. 竹林蹊径-深入浅出Windows内核开发作者的博客
  11. Linux发行版 CentOS6.5 禁用防火墙步骤
  12. Extensions in UWP Community Toolkit - Mouse Cursor
  13. Android学习笔记之AppWidget
  14. 配置TortoiseGit与Github
  15. 关于getClass()的一些自己的见解
  16. React 学习(三) ---- state 和 事件处理函数
  17. please select android sdk
  18. 【SMTP】常见错误码
  19. Saiku调用WS接口(十四)
  20. Shell脚本break和continue命令

热门文章

  1. (六) Java数据库
  2. C语言常用库函数
  3. BZOJ 1818: [Cqoi2010]内部白点 (BIT + 扫描线)
  4. 浅析flex 布局
  5. vue环境搭建及简单接触
  6. List集合、泛型、装箱拆箱
  7. CentOS8编译openocd-0.10.0
  8. ssh链接取消密码
  9. JavaWeb_(Struts2框架)Ognl小案例查询帖子
  10. JavaWeb_(Struts2框架)struts.xml核心配置、动态方法调用、结果集的处理