我需要做的是让我的页面创建.pdf文件的链接。文件名中唯一的一致性和唯一值在开头。每个文件名都有一个唯一的编号。例如文件:“501599-Fresno_Catalog_version2”在我的页面上,目录号“501599”存储在数据库中,但不存储在整个文件名中。这是因为其他人直接访问文件并可能将部分名称更改为“version3”,但他们不会更改目录号。如何通过仅向URL提供目录号来创建将打开此文件的动态链接?这可能吗?
感谢您的帮助!
答案 0 :(得分:2)
如果我理解正确,您只想使用唯一的文件编号找到整个PDF文件。
您可以使用PHP glob()
函数:
$pdf_files = glob('./path/to/pdfs/501599*.pdf');
或(使用变量):
$path_to_pdfs = './path/to/pdfs/'; // change to your path
$file_number = 501599; // change to set this from the database
// get the array of pdf files matching
$pdf_files = glob($path_to_images . $file_number . '*.pdf');
// for debug, you can output the array like this:
print_r($pdf_files);
// if there's only one file every time, you can get it with $pdf_files[0]
glob
返回与搜索字符串匹配的所有路径名的数组,在这种情况下,您的路径/到/ images +任何内容(因此是通配符*)+ PDF扩展名。
因此,当您从数据库中检索唯一文件编号时,您可以运行glob()
,其中包含文件路径和从上面的代码改编的唯一文件编号,然后使用该文件执行所需操作。
这是glob()文档:http://php.net/manual/en/function.glob.php
答案 1 :(得分:-1)
这是你需要的吗?只要文件名中有大量内容,这两种方法都可以正常工作。
$filename = '501599-Fresno_Catalog_version2';
$catalog_number = substr($filename, 0, strrpos($filename, '-'));
echo $catalog_number;
或者
$filename = '501599-Fresno_Catalog_version2';
$pieces = explode('-', $filename);
echo $pieces[0];
<强>结果强>
501599
然后,您将使用该部分形成您的网址。