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 に答える