2014-10-19 72 views
0

當我使用wp_get_attachment_url($name->name)時,它使用完整的URL(即http://domain.com/files/file.zip)。看起來這不適合我的使用,因爲我只想獲取沒有域的URL(只是子路徑)。如何在沒有域名的情況下輸出url

它工作得很好,如果我在代碼中手動輸入files/file.zip。如何格式化wp_get_attachment中的URL以獲取此格式的URL,而不使用域名?

回答

2
echo ltrim(parse_url('http://domain.com/files/file.zip', PHP_URL_PATH), '/'); 

echo substr(parse_url('http://domain.com/files/file.zip', PHP_URL_PATH), 1); 
+0

似乎以某種方式去除URL,但它不適用於下載。如果我echo substr(parse_url(wp_get_attachment_url($ promo-> promo),PHP_URL_PATH),1)'我得到'files/file.zip',但是如果我在我的代碼中使用它來設置文件名的下載。如果我在我的代碼中手動輸入'files/file.zip',則文件沒有損壞。 – janlindso 2014-10-19 13:32:39

+0

@janlindso比問題是在別的東西。可能有些腳本會輸出其他內容。逐字節比較兩個文件以查看差異。 – Cheery 2014-10-19 17:31:08

+0

當我用wp_get_attachment_url獲取URL時,它看起來不會去除URL。它只是返回完整的URL,然後如果我嘗試回顯它。 – janlindso 2014-10-19 23:54:39

1

您可以嘗試使用正則表達式和測試它像這樣...

<?php 
$string = 'http://domain.com/files/file.zip'; 
$pattern = '/\/([\w+\/]+\.\w+)$/'; 
$replacement = '$1'; 
echo preg_replace($pattern, $replacement, $string); 
?> 
+0

它應該在WordPress插件使用,因此域必須然後自動找到。 – janlindso 2014-10-19 02:29:13

+0

PHP是一門美麗的語言:P – 2014-10-19 04:31:10

+0

與Cheery的回答一樣,當我使用'wp_get_attachment_url($ name-> name)'來獲取URL時,這將不起作用,而不是像你那樣手動寫入。 – janlindso 2014-10-19 23:57:23

相關問題