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

一、总结

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

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

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

array_merge() ‘+'号 array_merge_recursive

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

 1 $array1 = array(2,4,"color" => "red");
 2
 3     $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
 4
 5     $result = array_merge($array1, $array2);
 6
 7     echo "----------------array_merge---------------".PHP_EOL;
 8
 9     print_r($result);
10
11     echo "----------------+++++++++++---------------".PHP_EOL;
12
13     print_r($array1+$array2);
14
15     echo "----------------array_merge_recursive---------------".PHP_EOL;
16
17     print_r(array_merge_recursive($array1,$array2));

结果如下:

 1 ----------------array_merge---------------Array(
 2
 3     [0] => 2
 4
 5     [1] => 4
 6
 7     [color] => green
 8
 9     [2] => a
10
11     [3] => b
12
13     [shape] => trapezoid
14
15     [4] => 4)----------------+++++++++++---------------Array(
16
17     [0] => 2
18
19     [1] => 4
20
21     [color] => red
22
23     [shape] => trapezoid
24
25     [2] => 4)----------------array_merge_recursive---------------Array(
26
27     [0] => 2
28
29     [1] => 4
30
31     [color] => Array
32
33         (
34
35             [0] => red
36
37             [1] => green
38
39         )
40
41
42
43     [2] => a
44
45     [3] => b
46
47     [shape] => trapezoid
48
49     [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()函数
1 <?php
2 $my_array = array("red","green","blue","yellow","purple");
3
4 shuffle($my_array);
5 print_r($my_array);
6 ?>

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数组中第三个之后的所有数组。

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

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方法,因为你把数组传进了他期望为字符串的参数里面

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

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

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

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

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

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

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

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

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、代码

转载于:https://www.cnblogs.com/Renyi-Fan/p/10644035.html

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

  1. ThinkPHP核心框架目录结构

    文件路径 文件描述 \index.php 入口文件 \Application 应用目录 \Public 资源文件目录 \ThinkPHP 框架核心目录 \Application目录结构(应用目录,保存 ...

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

    任务进度条&开发日志目录         周    期          时     间       任       务   Sprint One    11.14     ●  Scrum团 ...

  3. 中国象棋程序的设计与实现(七)--心得体会和开发日志

    上大学那会,还没有自己专属的SVN仓库,但是我已经意识到了管理代码的重要性,我最常用的一种需求就是恢复到上一个正确的版本. 为此,我每实现一个重要功能,就会备份整个项目一次,增加开发日志,如" ...

  4. java jar log4j_java项目打包成可执行jar用log4j将日志写在jar所在目录操作

    开发一个demo时想将日志输出到最终打包的jar所在目录,从网上学习实验整理之后的配置如下, log4j.properties log4j.rootLogger = INFO,console,logF ...

  5. APL开发日志--2012-11-26

    以后作者在博客上在专栏记录 APL每天开发日志, 以记录APL最新进展. 2012-11-26 APL开发日志: ------------------------------------------- ...

  6. .NET Core开发日志——配置

    .NET Core开发日志--配置 原文:.NET Core开发日志--配置 熟悉ASP.NET的开发者一定对web.config文件不陌生.在ASP.NET环境中,要想添加配置参数,一般也都会在此文 ...

  7. .NET Core开发日志——WCF Client

    WCF作为.NET Framework3.0就被引入的用于构建面向服务的框架在众多项目中发挥着重大作用.时至今日,虽然已有更新的技术可以替代它,但对于那些既存项目或产品,使用新框架重构的代价未必能找到 ...

  8. .NET Core开发日志——从ASP.NET Core Module到KestrelServer

    ASP.NET Core程序现在变得如同控制台(Console)程序一般,同样通过Main方法启动整个应用.而Main方法要做的事情很简单,创建一个WebHostBuilder类,调用其Build方法 ...

  9. .NET Core开发日志——Runtime IDentifier

    .NET Core对于传统.NET开发人员而言是既熟悉又陌生的新平台,所以有时遇上出乎意料的事情也纯属正常情况.这时只需点耐心,多查查资料,努力找到原因,也未尝不是件有意义的体验. 比如当建完一个最简 ...

最新文章

  1. git在不同操作系统下自动替换换行符
  2. 简说JAVA8引入函数式的问题
  3. shell只允许某些ipssh登录,配合iptables最好
  4. Linux curl命令参数详解--转载
  5. 微机原理换行代码_微机原理实验保留最长行输入字符的程序
  6. Python正则表达式中问号的四种用法
  7. MySQL 性能调优之存储引擎
  8. 如何正确选择仓储物流供应商?
  9. 哪个男孩不想拥有这种牌面?
  10. 【学习记录】网络层——IP数据报(格式与分片)
  11. java里的stream,Java中的Stream
  12. [BZOJ4913][SDOI2017]遗忘的集合
  13. 数据结构学习笔记(图)
  14. 蓝桥杯省赛训练营——日期的计算
  15. 【n卡】GeForce Experience 的额外功能
  16. ISCC2021——web部分
  17. android:简单包装实现伪自定义DatePickerDialog和TimePickerDialog
  18. php exchange,Windows-使用PHP访问Exchange的最佳方法?
  19. 【洛谷】P1828 香甜的奶油
  20. 深度学习-兼顾工作与孩子

热门文章

  1. Mybatis简单入门及配置文件标签详情
  2. LeetCode 22. Generate Parentheses
  3. 结构化分析方法是一种自下而上逐步求精的分析方法【软件项目管理】
  4. BZOJ3123[Sdoi2013]森林——主席树+LCA+启发式合并
  5. FFMPEG增加和提取字幕流
  6. 虚函数(动态绑定)对于 OO/C++的重要性
  7. tomcat 运行报错 JRE_HOME
  8. vue 项目配合zepto的巨坑
  9. 2015/10/19总结:ajax传参、jquery.validate自定义日期校验
  10. 浅谈linux中的grub