legend2---开发日志3(thinkphp的入口目录是public的体现是什么)

一、总结

一句话总结:需要深刻理解程序的入口和入口位置都在public目录这里,比如读写文件的初始目录都在这,获取js,css,图片资源

读写文件初始目录为public
获取js/css/图片的初始目录为public

1、php合并数组有哪些方法?

array_merge() ‘+'号 array_merge_recursive

array_merge(),‘+'号,和array_merge_recursive函数。

 $array1 = array(2,4,"color" => "red");

     $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);

     $result = array_merge($array1, $array2);

     echo "----------------array_merge---------------".PHP_EOL;

     print_r($result);

     echo "----------------+++++++++++---------------".PHP_EOL;

     print_r($array1+$array2);

     echo "----------------array_merge_recursive---------------".PHP_EOL;

     print_r(array_merge_recursive($array1,$array2));

结果如下:

 ----------------array_merge---------------Array(

     [0] => 2

     [1] => 4

     [color] => green

     [2] => a

     [3] => b

     [shape] => trapezoid

     [4] => 4)----------------+++++++++++---------------Array(

     [0] => 2

     [1] => 4

     [color] => red

     [shape] => trapezoid

     [2] => 4)----------------array_merge_recursive---------------Array(

     [0] => 2

     [1] => 4

     [color] => Array

         (

             [0] => red

             [1] => green

         )

     [2] => a

     [3] => b

     [shape] => trapezoid

     [4] => 4)

对比array_merge和+以及array_merge_recursive结果的”color”的值我们可以看出:
1.对于相同的字符串索引,
array_merge则会用后面的值覆盖前面出现的值;
+会用前面出现过的值覆盖后面相同的key;
array_merge_recursive则会把相同的索引放到一个数组里面,增加数组的维度;
2.对于相同的数字索引,
array_merge则会给重复的值重建索引(索引值从0开始);
+仍然是用前面出现过的值覆盖后面的值;
array_merge_recursive和array_merge的处理方法一样。

2、php打乱一个数组?

shuffle()函数
 <?php
$my_array = array("red","green","blue","yellow","purple"); shuffle($my_array);
print_r($my_array);
?>

3、php取一个数组的前几个?

array_slice()

array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )

array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。

如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。

如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。

array_slice(array,2,3)此段代码表示从array,2,3)此段代码表示从array数组中从第二个开始,取三个值;

array_slice(array,3)此时代码表示从array,3)此时代码表示从array数组中第三个之后的所有数组。

 [php] view plain copy
<?php
$input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c" // note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

4、thinkphp数据库大于多少并且小于多少写法?

仿照多字段写法 多字段之间默认用and

因为多字段之间默认用的and,所以同字段可以仿照多字段的写法

$map_1['b_day_ts']=['>=',$beginThreeDaysBefore];
$map_1['b_day_ts']=['<=',$beginToday];

5、thinkphp使用redirect时出现trim() expects parameter 1 to be string, array given问题的原因是什么?

redirect参数不能是数组

原因是数组不能用trim方法,因为你把数组传进了他期望为字符串的参数里面

原因是参数不能传数组:第四行参数传数组不行

 //步骤二:获取推荐题目并且按照推荐顺序算法排序
$question_list=\app\index\model\blog\choose_question\GetRecommendQuestion::getRecommendQuestion($map_category);
//dump($question_list);die;
$this->redirect('index/blog.do_question/index',$question_list);

6、选题目和做题目页面的逻辑?

【选题目页】不做找题目数据操作 【做题目页】通过模型找题目操作数据 好处是【选题目页】不必传题目数据到【做题目页】

选题目页提供选题目页的页面,然后直接跳转到做题目页的控制器,做题目页的控制器通过参数获取题目传到自己的视图。

不要在选题目也生成题目数据然后做题目页获取题目数组,这样无论是传做题目页的控制器还是视图都不方便

7、如何把题目列表数据保存到系统?

做缓存 file_put_contens() file_get_contents()
 <?php
namespace app\index\controller\blog;
use app\index\controller\Base;
//直接访问链接为:http://legend.com/index/blog.do_question/index.html
class DoQuestion extends Base
{
public function index()
{
$question_list=[];
$question_list_info=[];//题目列表信息数组
if (request()->isget()){
$dataIn=input('get.');
//dump($dataIn); //步骤一:当为推荐修炼方式时
if(isset($dataIn['blog_recommend'])){
//1.1、确定文件中的$question_list数据有没有过期,如果没有过期,就取文件中的数据,如果过期了,就重新生成
$question_list=\app\index\model\blog\choose_question\Entrance::recommend($dataIn);
$result=file_put_contents('record/question_list_record.php',json_encode($question_list));
dump($result);
$result2=file_get_contents('record/question_list_record.php');
dump($result2);die;
$question_list_info['question_num']=count($question_list);
$question_list_info['xiulian_type']=$dataIn['xiulian_type'];
$question_list_info['blog_recommend']=$dataIn['blog_recommend'];
//dump($question_list);die;
//$question_list
}

8、thinkphp直接在控制器中$result=file_put_contents('question_list_record.php',json_encode($question_list));question_list_record文件会出现在哪个目录下?

程序入口目录public目录下

直接出现在public目录下,需要深刻理解程序的入口和入口位置都在public目录这里

9、thinkphp直接在控制器中$result=file_put_contents('record/question_list_record.php',json_encode($question_list));会在public的record子目录下出现question_list_record.php么?

会 文件路径里面是左斜线

会,但是要注意这里是左斜线,右斜线的话不行

10、thinkphp直接在控制器中$result2=file_get_contents('record/question_list_record.php');取得是哪个路径下的文件?

public/record目录

直接是public目录下,public/record目录下的,thinkphp程序的入口就是public目录

二、内容在总结中

1、相关知识

 

2、代码

 

legend2---开发日志3(thinkphp的入口目录是public的体现是什么)的更多相关文章

  1. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  2. thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么

    thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么 一.总结 一句话总结:在thinkphp中,我们访问的始终是入口文件,并没有主动去访问任何一个其他文件,只不过在入口文件体内 ...

  3. thinkphp单入口和多入口的访问方法

    完全是参考thinkphp的官网资料 现在, 基本上都是 用 单入口 的方式来做的! thinkphp可创建多入口和单入口两种模式,本文主要讲解创建方法和两者的区别. TP版本:3.1.3 前端:Ho ...

  4. 【iOS-Android开发对照】 之 APP入口

    [iOS-Android开发对照]之 APP入口 [图片 Android vs iOS] 提纲 对照分析iOS,Android的入口, iOS,Android的界面单元 为什么要有那样的生命周期 继承 ...

  5. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  6. [原创][开源] SunnyUI.Net 开发日志:ListBox 增加跟随鼠标滑过高亮

    QQ群里,寸目说,ListBox鼠标移动时,当前行需要焦点,我想了想,不难实现啊 不就是在鼠标移动时重绘Item嘛,何况选中的Item已经改了颜色了. 见UIListBox代码: protected ...

  7. U-Learning 后端开发日志(建设中...)

    目录 U-Learning--基于泛在学习的教学系统 项目背景 技术栈 框架 中间件 插件 里程碑 CentOS 7搭建JAVA开发环境 接口参数校验(不使用hibernate-validator,规 ...

  8. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  9. 《Invert》开发日志05:终止

    今天终于看了久闻大名的<独立游戏大电影>,然后我就做了一个坑爹的决定:终止“Invert”项目的开发.没错,在还没正式开工之前,我就决定停掉这个项目,而且是永久终止.做这个决定并不是因为觉 ...

随机推荐

  1. 【题解】Luogu P2605 [ZJOI2010]基站选址

    原题传送门:P2604 [ZJOI2010]基站选址 看一眼题目,变知道这题一定是dp 设f[i][j]表示在第i个村庄修建第j个基站且不考虑i+1~n个村庄的最小费用 可以得出f[i][j] = M ...

  2. 01:adminLTE2基本使用

    1.1 adminLTE介绍 1.adminLTE 介绍 1.基于Bootstrap3高度可定制的响应式管理模板,免去前端架构师大量的js和css的编写 2.adminLTE除了可以使用bootstr ...

  3. RAFT实践

    1.  raft org 2. paper 3. animation 4. python examples Raft-python  这个不是很好用. simpleRaft Raft算法分析与理解  ...

  4. ListView与SimpleAdapter(三)

    一般用于只有两个控件的列表. 使用SimpleAdapter 的数据是以List<Map<String,?>>形式封装数据, List的每一节对应ListView的每一行. H ...

  5. bzoj1741 [Usaco2005 nov]Asteroids 穿越小行星群 最小点覆盖

    链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1741 思路 消除所有的小行星 每个点(x,y)只有选择x或者y才能被覆盖 二分图最小点覆盖= ...

  6. 字体在win10下显示模糊,有锯齿

    目录 系统设置: 修改冲突软件启动设置: vscode: vs2017: atom: gpu软件修改: 参考: 系统设置: 一般为了提高性能,会关闭平滑屏幕字体边缘 修改冲突软件启动设置: 经过 gp ...

  7. <Python>判断变量是否是DataFrame 或者 Series

    https://stackoverflow.com/questions/14808945/check-if-variable-is-dataframe Use the built-in isinsta ...

  8. RocketMQ3.2.2生产者发送消息自动创建Topic队列数无法超过4个

    问题现象 RocketMQ3.2.2版本,测试时尝试发送消息时自动创建Topic,设置了队列数量为8: producer.setDefaultTopicQueueNums(8); 同时设置broker ...

  9. c# 之partial(分部代码和分部类)

    using System; namespace Partial { class Program { static void Main(string[] args) { A a = new A(); } ...

  10. MPU6050可以读取ID值,温度值和原始数据值为零问题解决

    MPU6050可以读取ID值是0x68,但是读取到的原始数据为零(下面虚拟示波器图中温度值是36.529是单位转换公式中的值被打印出来了,实际值也是零).经论坛搜寻,发现MPU6050出现问题的原因有 ...