laravel构造函数使用return返回无效,

  • 主要原因是不能使用return 来跳转
  • 正确跳转写法:redirect(‘/login’)->send();

    php使用explode拆分含多个分隔符的字符串,分隔字符串为数组

  • 方法一:先将分隔符转换成统一字符,再使用explode进行拆分
    $arr=explode('#',str_replace(array(":"),'#',$string));
  • 方法二:使用preg_split拆分

    1. $string="php教程#php入门:教程#字符串:多分隔符#字符串:拆分#数组";
    2. $arr = preg_split("/(#|:)/",$string);
    3. print_r($arr);

    去除字符串中的\r或者\n

    $string_arr = preg_split("/[\r\n]+/s",$text);

    循环删除整个目录,包括目录下面的文件

    1. /**
    2. * 删除解压文件
    3. * @param $path
    4. * @return boolean
    5. */
    6. public static function deleteFile($path) {
    7. $files = scandir($path);
    8. foreach ($files as $file) {
    9. if ($file != '.' && $file != '..') {
    10. if (is_dir($path . '/' . $file)) {
    11. if(count(scandir($path . '/' . $file)) == 2){//目录为空,=2是因为.和..存在
    12. rmdir($path . '/' . $file);// 删除空目录
    13. }else{
    14. self::deleteFile($path . '/' . $file);
    15. }
    16. } else {
    17. //删除文件
    18. unlink($path.'/'. $file);
    19. }
    20. }
    21. }
    22. //目录为空,=2是因为.和..存在
    23. if(count(scandir($path)) == 2){
    24. rmdir($path);// 删除空目录
    25. }
    26. return true;
    27. }

php 的file_get_contents函数获取网页内容不全的问题。

  1. $a = file_get_contents('http://www.giabbs.com/thread-756955-1-1.html');
  2. var_dump($a);
  3. file_put_contents('a.txt', $a);

代码如上面。运行代码就发现,内容只获取到一半。在中间断掉了。这种情况一般是转码的情况,有些特殊字符无法转换,然后断掉的。可是为啥用这个函数获取原始内容也这样,真心想不通啊。

我以前遇到过内容只有一半的情况,但我是在正常访问网页的时候,
通过几次排查发现,这都是由于被访问页面的编码问题导致的,就算是浏览器也只加载了一半内容
修复方法:在header函数头加上charset=utf-8

  1. header("Content-Type: image/jpeg;text/html; charset=utf-8");
  2. echo $img;
  3. exit;

今天偶然使用php simplexml_load_file(“XXXX”)加载XML文件的时候报错。

  1. Warning: simplexml_load_file(): I/O warning : failed to load external entity "xxx "
  2. 后来将simplexml_load_file("XXXX")替换成
  3. simplexml_load_string(file_get_contents("XXXX"));

问题得到解决。
也可参照:
stackoverflow