0

我需要做的是让我的页面创建一个指向 .pdf 文件的链接。文件名中唯一的一致性和唯一值是在开头。每个文件名都有一个唯一的编号。例如文件:“501599-Fresno_Catalog_version2” 在我的页面上,目录号“501599”存储在数据库中,但不是整个文件名。这是因为其他人直接访问文件并可能将部分名称更改为“version3”,但他们不会更改目录号。如何通过仅向 url 提供目录号来创建将打开此文件的动态链接?这可能吗?

谢谢你的帮助!

4

2 回答 2

2

如果我理解正确,您想仅使用唯一的文件编号来定位整个 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

于 2012-12-14T00:55:42.217 回答
-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

然后,您将使用该部分来形成您的 URL。

于 2012-12-14T00:48:26.640 回答