1. php获取打开的文件的路径
1. 由于浏览器的限制,通常传递时只会看到文件名,而不会看到完整的路径。
2. 如果想达到你的目的,以下是建议的示例办法:
(1) test.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="open2.php" enctype="multipart/form-data">
<input id="mytxt" type="file" name="file" />
<input type="submit" name="Submit" value="打开" />
</form>
</body>
</html>
(2) open2.php
<?php
echo file_get_contents($_FILES['file']['tmp_name']);
?>
提示两点:
1. 注意文件的编码,比如,如果TXT是ansi,则编码格式想与之相对应。
2. 注意安全,比如检查下 file 里是不是纯文本,并尽量进行安全编码。
2. php 获取file选择的文件路径
#接收表单提交变量
$file=$_FILES['BtnPic'];
//print_r($_FILES);PRINT_R($file);
//PRINT_R($file);
//判断文件是否上传成功
if(is_uploaded_file($file['tmp_name'])){
//apache文件上传时临时储存路径,移动到自定义路径
$upload_file=$file['tmp_name'];
//print_r($upload_file);
$uploadpath=$_SERVER['DOCUMENT_ROOT']."/UploadFile/naotu/";//这块要注意一下路径
//下面是你服务器储存文件的路径,可以自定义
$move_to_file=$uploadpath.$file['name'];
//判断是否移动成功
if(!is_dir($uploadpath)){
mkdir($uploadpath,0777,true);
}
if(move_uploaded_file($upload_file,$move_to_file)){
echo"上传文件成功";
}else{
echo"上传失败";
}
}else{
echo"上传失败..请检查服务器。";
}
3. 如何找出PHP配置文件php.ini的路径
直接在电脑里搜索:php.ini;就可以看见路径;例如下面搜到的:路径为:F:/xampp/php/php.ini
4. php中怎么从路径中取出文件名
1、basename("/mnt/img/image01.jpg")函数:得到文件名;输出结果为:image01.jpg.
使用 basename($uriString) 我们可以得到一个包含扩展名的文件名;
如果不需要扩展名,也可以使用 basename($uriString, $extString) 过滤扩展名,仅仅返回文件名。
2、echo __FILE__;得到当前请求文件的完整路径,输出格式如:/mnt/hgfs/ictsapce/test/index.php
3、dirname() 函数返回路径中的目录部分。
如:
echo dirname("/testweb/home.php");
输出:/testweb
5. php返回当前php文件的上级目录名称,不是路径!
//我个人不清楚是否有直接获得文件当前所在文件夹名称的函数,都是处理的
$arr = explode(DIRECTORY_SEPARATOR,dirname(__FILE__));
echoend($arr);
6. PHP中的文件系统函数(一)
从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数。其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了。
文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 __FILE__ 、 __DIR__ 之类的魔术常量使用。
basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名。
dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能。
pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容。
realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径。
接下来,我们学习一些修改文件相关属性的函数,主要就是在 Linux 系统环境中的文件权限信息的操作。
当然,首先我们得创建一个文件。和 Linux 中的命令是非常类似的。
touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间。这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件。
通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户。在这里,我们使用 chown() 函数,将用户改为 www 用户。clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息。
同理,使用 filegroup() 函数获得文件的属组信息,chgrp() 用于修改文件的属组。fileperms() 用于返回文件的权限信息,它返回的是数字模式的文件访问权限,这里我们使用 sprintf() 格式化结果后获得我们常用的 Linux 系统权限格式。chmod() 函数用于修改文件的权限,它的权限参数是三个 8 进制数据组成的数字,也就是代表 Linux 系统中的 1 、2 、4 和它们的组合,所以我们需要在前面再加上一个 0 用于确保操作能够正常执行。关于系统文件权限的知识大家需要认真学习 Linux 系统中相关的内容。
注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 sudo 进行测试。在 fastcgi 中运行时,就更加需要注意权限问题,仅在我们服务器可以操作的目录中进行安全的文件权限修改。
stat() 函数可以获取到指定文件的所有属性信息,在这里我们可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。
在 Linux 系统中,有软连接和硬连接的相关知识。其实软连接就像是 Windows 中的快捷方式,而硬连接相关于复制了一份数据。在 PHP 中,也为我们提供了创建软硬连接以及相关的一些操作。
使用 link() 函数创建的就是一个指定文件的硬连接文件,而使用 symlink() 创建的则是一个软连接文件。相对来说,我们使用软连接的场景会更多一些。lstat() 就和 stat() 函数的功能一样,查看文件的各种属性信息,不过 lstat() 函数针对的是软硬连接文件。
同样地,我们也可以修改软硬连接的用户和用户组信息,不过它们的信息不能通过 fileowner() 或 filegroup() 查看。因为它们是连接文件,本身还是和原始文件绑定在一起的,使用 fileowner() 这类的函数查看到的依然是原始文件的信息。我们可以在系统环境中使用 ls -l 查看连接文件的用户和用户组信息是否修改成功。
今天的内容比较简单,而且修改权限的操作也并不常用。不过对于系统安全来,它们还是非常有用的,比如对于上传来说,我们要预防上传可执行文件的话,就可以通过修改文件的权限来让文件无法直接运行,从而起到安全保护的作用。另外,目录路径相关的操作也是一些框架的基础,几乎所有框架的入口或者说是 Composer 的入口,都会见到 dirname() 以及 basename() 之类函数的身影。
测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/6.PHP中的文件系统函数(一).php
参考文档:
https://www.php.net/manual/zh/ref.filesystem.php
7. php 怎样获取文本内容中的图片和文件路径
$str='<imgsrc="http://localhost/2.jpg"alt=""/><imgsrc="http://localhost/2.jpg"alt=""/><imgsrc="http://localhost/2.jpg"alt=""/><ahref="http://www.,com/">aaa</a>';
$str=strip_tags($str,'<img>');
preg_match_all('/<imgs+src="([w:/.]+)"/',$str,$matches);
//var_mp($matches[1]);
$match=$matches[1];
foreach($matchas$value){
echo$value."<br>";
}
8. php 有取得某一文件的路径的函数吗 比如我有个文件test.txt,我想返回它所在的文件夹,怎么做到
dirname — 返回路径中的目录部分
basename — 返回路径中的文件名部分
以上两个可以获取目录或文件部分。下面一个较为强大。
pathinfo — 返回文件路径的信息
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>
会输出
/www/htdocs/inc
lib.inc.php
php
lib.inc
9. 求教,php 如何获取文件的下载路径
哎,本不想回复的,但是怕其它人回复误人子弟,还是说两句吧。
你的PHP程序是在WEB服务器上运行,运行完毕后生成的文件类型,再通过网络传送到浏览器电脑上,然后这个电脑的人员再选择保存文件路径,你说这个人选择保存路径的时候你的PHP程序可能知道吗,那个PHP早就运行结束了。
你所有的那些Header都是服务器传送给浏览器的,浏览器要把信息传送回服务器只有通过GET、POST调用服务器,显然选择路径保存文件的动作不会触发上传动作。
综上所述,你是无法通过PHP程序获得用户的保存文件夹的。
要获得用户保存的文件夹,除非你自己编写浏览器代码,在选择保存路径后再传送给服务器,这种可能性几乎为0。
10. php获取上级文件绝对路径
PHP获取文件绝对路径,参考方法如下:
<?php
echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:\www\test.php
echo dirname(__FILE__); // 取得当前文件所在的绝对目录,结果:D:\www\
echo dirname(dirname(__FILE__)); //取得当前文件的上一层目录名,结果:D:\
?>
chdir() 函数把当前的目录改变为指定的目录。
若成功,则该函数返回 true,否则返回 false。
语法 :
chdir(directory)参数 描述
directory 必需。规定新的当前目录。