下面是 PHP 通过文件路径获取文件名的攻略及实例代码:
函数介绍
PHP 提供多个函数,可以通过文件路径获取文件名,其中最常用的是 basename()
和 pathinfo()
函数。
basename()
basename()
函数返回路径中的文件名部分。它的用法如下:
basename($path, $suffix);
其中,$path
是要获取文件名的路径,$suffix
是可选参数,表示要剔除的文件扩展名。如果 $suffix
参数被指定,则函数会从文件名中剔除指定的扩展名。示例代码如下:
$path = '/var/www/example.com/uploads/test.jpg';
$filename = basename($path, '.jpg');
echo $filename; // 输出 'test'
pathinfo()
pathinfo()
函数用于返回一个路径的信息。它的用法如下:
pathinfo($path, $options);
其中,$path
是要获取信息的路径,$options
是可选参数,可以限制函数返回的信息类型。例如,如果要返回文件名,可以将 $options
参数设置为 PATHINFO_BASENAME
。示例代码如下:
$path = '/var/www/example.com/uploads/test.jpg';
$filename = pathinfo($path, PATHINFO_FILENAME);
echo $filename; // 输出 'test'
实例说明
假设我们的网站使用 PHP 和 MySQL 进行开发,我们经常需要处理文件上传和存储等操作。在这些操作中,经常需要获取上传的文件名称,并在数据库中保存相应的文件名。下面是两个示例,在实例中,我们使用 basename()
函数和 pathinfo()
函数获取文件名。
示例1:通过 basename()
函数获取文件名
在此示例中,我们假设用户上传了一个名为 test.jpg
的图片文件,并将其保存在 uploads/
目录中。我们需要将文件名保存到 MySQL 数据库中。
// 获取上传的文件名
$filename = $_FILES['file']['name'];
// 将文件保存到服务器
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $filename);
// 保存文件名到 MySQL 数据库中
$conn = mysqli_connect('localhost', 'user', 'pass', 'db');
$filename = mysqli_real_escape_string($conn, basename($filename));
mysqli_query($conn, "INSERT INTO files (filename) VALUES ('$filename')");
在上面的示例中,我们使用 basename()
函数获取文件名,并使用 mysqli_real_escape_string()
函数来转义文件名中可能存在的特殊字符,防止 SQL 注入攻击。
示例2:通过 pathinfo()
函数获取文件名
在此示例中,我们假设我们需要在网站的后台管理系统中列出所有上传的文件,并显示它们的文件名和上传日期。我们需要通过文件路径获取文件名和上传日期。
// 获取上传文件的信息
$conn = mysqli_connect('localhost', 'user', 'pass', 'db');
$result = mysqli_query($conn, "SELECT * FROM files");
// 输出表格
echo '<table>';
echo '<thead><tr><th>文件名</th><th>上传日期</th></tr></thead>';
echo '<tbody>';
while ($row = mysqli_fetch_assoc($result)) {
$filename = htmlspecialchars(pathinfo($row['filename'], PATHINFO_FILENAME));
$uploadDate = htmlspecialchars($row['upload_date']);
echo "<tr><td>$filename</td><td>$uploadDate</td></tr>";
}
echo '</tbody>';
echo '</table>';
在上面的示例中,我们使用 pathinfo()
函数获取文件名,并使用 htmlspecialchars()
函数来将文件名中的特殊字符转换成实体,以防止 XSS 攻击。同时,我们还使用了 htmlspecialchars()
函数来将上传日期中的特殊字符转换成实体。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP通过文件路径获取文件名的实例代码 - Python技术站