PHP 去掉路径中的 "/./" 或者 “/../”

<?php
$filename = ‘/mnt/hgfs/workspace/weituibao/app/config/../../public/files/36/temp/201410/21/1413873853598.jpg‘;
function getRealPath($filename, $split = ‘/‘)
{
    while(true) {
        if (FALSE === strpos($filename, $split . ‘.‘)) {
            break;
        }
        $filename = explode($split, $filename);
        foreach($filename as $k => $f) {
            if (($k && $f == ‘‘) || $f == ‘.‘) {
                unset($filename[$k]);          break;
            }
            elseif ($f == ‘..‘) {
                unset($filename[$k]);
                if(isset($filename[$k-1]))
                    unset($filename[$k-1]);
                break;
            }
        }
        $filename = implode($split, $filename);
    }
    return $filename;
}
echo getRealPath($filename);

---------- php ----------
/mnt/hgfs/workspace/weituibao/public/files/36/temp/201410/21/1413873853598.jpg
输出完成 (耗时 0 秒) - 正常终止

时间: 2024-10-10 02:51:21

PHP 去掉路径中的 "/./" 或者 “/../”的相关文章

MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格

测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 %1)strfind(a,b):即找a中是否有b,如果a中有b,则输出b的位置序号.没有输出空数组 %2)isempty(a):判断数组是否为空 %3)strrep(a,b,c):就是把a中所有出现的b换为c %4)movefile(a,b):a移动为b,如C:\test1.jpg移动为C\test2

vue2开发中如何去掉地址栏中的#号

在vue项目的开发中,对于新手的我们,进入项目文件夹后,在文件夹 的如图所示位置: 输入cmd调出dos命令窗口,然后开始输入npm run dev命令运行 如图 (红色部分为项目存放路径)按enter键开始启动node服务器 运行成功,然后可以在浏览器中输入localhost:8080(端口号可以自己设置)访问. 这是我们可以看到地址栏中有个#号,可是在实际访问地址的经验中真的没有见过带#号的: 那么我们应该如何去掉地址栏中的#号,使我们的url看起来是一个正常的url:很简单按照如下设置:

获取文件path路径中的文件名(是否包含扩展名)

直接看代码吧 #获取文件path路径中文件名(去掉目录路径) sub get_file_basename{ my ($file_path) = @_; my @tmp_arr = split(/[\\|\/]+/,$file_path); my $len = @tmp_arr; if ($len >=2) { return $tmp_arr[-1]; }else{ return $file_path; } } #获取文件path路径中文件名(去掉目录路径,去掉扩展名) sub get_file_

nginx去掉url中的index.php

使用情境:我想输入www.abc.com/a/1后,跳转到www.abc.com/index.php/a/1 配置Nginx.conf在你的虚拟主机下添加:  location / {      if (!-e $request_filename){           rewrite ^/(.*)$ /index.php/$1 last;      } } 如果你的项目入口文件在一个子目录内,则: location /目录/ {      if (!-e $request_filename){

用正则去掉数组中重复的元素

<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> //去掉数组中重复的元素 //此题最主要就是对数组进行排序拼接,在进行replace的替换,在进行分割,将其return到外部 //随机生成随机数压入空数组arr中 for(var i=0,arr

去掉word中向下的箭头^l-----&gt;^p

去掉word中向下的箭头 在网页上复制文章到word中,会发现有很多向下的箭头,这些 符号叫做软回车符.如何去掉这些向下的箭头呢.步骤如下: 方法/步骤 按Ctrl+H,弹出全局替换窗口,输入查找内容框中输入:^l,替换为框中输入:^p.如图所示: 2 按全部替换按钮,则将全文中所有的软回车符替换成硬回车符号. 3 需要注意的是,输入尖冒符号的时候,输入法必须是英文状态下按shift+数字键6.中文状态下会输入省略号.

简单东西-链接路径中添加随机数的作用

今天实现登陆的验证码生成功能,有一个"看不清"的链接,用于获取新的验证码,通过JS动态修正验证码的img元素的src属性,结果,验证码一直都是初始页面生成的那张图片,但是"看不清"的JS脚本已经执行过了.网上查资料才知道是浏览器缓存问题,解决办法是在请求路径中添加一个随机参数,迫使浏览器放弃缓存.重新去请求验证码. 原来随机数还有这个用途,以前也经常看到请求路径末尾添加一个参数Rand=Math.random()的代码,却从未关注这样处理的用意.简单知识,今天碰到了

C语言文件路径中的”/“和“\“

在不同系统的情况系   windows下是\,linux和unix下是/  但在win中没有本质区别. 但是由于   \   也是转义字符的起始字符,  所以, 路径中的   \   通常需要使用   \\ 如果是   /   就不需要使用转义了 如C中文件操作, c:\\kkk\\dd.txt  双反斜杠! c:/kkk/dd.txt一样 “\”一般是表示本地目录的,比如你电脑里面的C:\windows\.. “/”主要表示远程电脑或者网络上的,比如你这个贴子的地址:http://zhidao

配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况

在全新安装的IIS7下搭建网站,访问页面时出现错误信息如下: 配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overrideMode="Deny" 或旧有的 allowOverride="false" 的位置标记明确设置的.  配置文件 \\?\X(盘符):\目录名\目录名\web.config <system.we