Php 链接到仅使用文件名而不使用空格的文件

Php 链接到仅使用文件名而不使用空格的文件,php,mysql,Php,Mysql,我正在创建一个文档数据库(因此有几种文件.pdf、.xlm、.ppt等) 我决定将文件的路径存储在mysql中,但当我构建指向它们的链接以下载所选文件时,只有当文件名没有空格时,该链接才起作用,如果是空格,则该链接仅包含第一个单词: <?php $data = mysql_query("SELECT * FROM Documents") or die(mysql_error()); //Puts it into an array while($info = mysql_fetc

我正在创建一个文档数据库(因此有几种文件.pdf、.xlm、.ppt等) 我决定将文件的路径存储在mysql中,但当我构建指向它们的链接以下载所选文件时,只有当文件名没有空格时,该链接才起作用,如果是空格,则该链接仅包含第一个单词:

 <?php
 $data = mysql_query("SELECT * FROM Documents") or die(mysql_error()); 
 //Puts it into an array 
 while($info = mysql_fetch_array( $data )) 
 { 
 //Outputs the file data ad link to download the file:

 Echo "<b>Protocol:</b> ".$info['Protocol'] . "<br> "; 
 Echo "Here DOC_POINTER =".$info['doc_pointer']."<br>";
 Echo "<a href=http://localhost/VQ%20TESTs/DocUploaded/".$info['doc_pointer'].">Il           Documento Relativo</a><br>"; 
 Echo "<b>Name:</b> ".$info['doc_name'] . "<br> "; 
 Echo "<b>Type:</b> ".$info['doc_type'] . " <br>"; 
 Echo "<b>Manager:</b> ".$info['doc_manager'] . " <hr>"; 
 }
 ?>

如果文件名为'123.pdf',一切正常,名称正确打印为“Here Doc_pointer=123.pdf”,链接到

http://mysite/VQ%20TESTs/DocUploaded/123.pdf>

如果文件名为“Sales Chart.xlm”,则打印输出的文件仍为“Here Doc\u pointer=Sales Chart.xlm”,而链接仅为

http://mysite/VQ%20TESTs/DocUploaded/Sales>


因此不起作用。

您需要在
$info['doc\u pointer']
上用
'%20'替换
'

str_replace(' ','%20',$info['doc_pointer'])
或者只需正确设置a href的格式:

Echo "<a href=\"http://localhost/VQ%20TESTs/DocUploaded/".$info['doc_pointer']."\">Il           Documento Relativo</a><br>";
Echo“
”;

通过用“引号”包围地址,url\u encode用+替换了空格,但还不能工作,但我在相关文档中找到了原始url\u encode,它可以工作。