我需要做的是让我的页面创建一个指向 .pdf 文件的链接。文件名中唯一的一致性和唯一值是在开头。每个文件名都有一个唯一的编号。例如文件:“501599-Fresno_Catalog_version2” 在我的页面上,目录号“501599”存储在数据库中,但不是整个文件名。这是因为其他人直接访问文件并可能将部分名称更改为“version3”,但他们不会更改目录号。如何通过仅向 url 提供目录号来创建将打开此文件的动态链接?这可能吗?
谢谢你的帮助!
如果我理解正确,您想仅使用唯一的文件编号来定位整个 PDF 文件。
您可以使用 PHPglob()
函数:
$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
返回与搜索字符串匹配的所有路径名的数组,在本例中是您的路径/到/图像 + 任何内容(因此是通配符 *)+ PDF 扩展名。
因此,当您从数据库中检索唯一文件号时,您可以glob()
使用文件路径和根据我上面的代码改编的唯一文件号运行,然后对文件执行您需要的操作。
这是 glob() 文档: http: //php.net/manual/en/function.glob.php
这是你需要的吗?只要文件名中有连字符,两者都可以工作。
$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
然后,您将使用该部分来形成您的 URL。