仅使用前几位数来拉取URL

时间:2012-12-14 00:38:08

标签: php mysql url hyperlink

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

感谢您的帮助!

2 个答案:

答案 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

然后,您将使用该部分形成您的网址。