2014-10-19 3 views
0

Когда я использую wp_get_attachment_url($name->name), он использует полный URL (то есть http://domain.com/files/file.zip). Похоже, что это не работает для моего использования, так как я хочу получить URL-адрес без домена (только подпуть).Как вывести URL без домена

Он работает нормально, если я вручную вводим files/file.zip в код. Как я могу отформатировать URL-адрес из wp_get_attachment, чтобы получить 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)' I get 'files/file.zip', но файл остается поврежденным, если я использую его в своем коде для установки имени файла для загрузки , Если я вручную введу 'files/file.zip' в свой код, файл не будет поврежден. – janlindso

+0

@janlindso Чем проблема в чем-то другом. Вероятно, какой-то скрипт выводит что-то еще. Сравните оба байта по байтам, чтобы увидеть разницу. – Cheery

+0

Похоже, что он не будет удалять URL-адрес, когда я получаю URL-адрес с wp_get_attachment_url. Он просто возвращает полный URL-адрес, если я попытаюсь его повторить. – janlindso

1

Вы можете попробовать использовать регулярные выражения и проверить его, как это ...

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

Он должен быть использован в WordPress плагин, так что домен должен можно найти автоматически. – janlindso

+0

PHP - красивый язык: P –

+0

Как и в случае с ответом Чери, это не сработает, когда я использую 'wp_get_attachment_url ($ name-> name)', чтобы получить URL-адрес, вместо того, чтобы писать его вручную, как вы это делали. – janlindso

Смежные вопросы