У меня есть этот код для очистки изображения, и URL-адрес является относительным, например:
/upload/produse/Blu-ray/BD-H6500.jpg?maxwidth=800&maxheight=800
и я палочка, чтобы изменить на абсолютный URL, например:
example.com/upload/produse/Blu-ray/BD-H6500.jpg
Вот мой код:
if(isset($this->request->post['image_scrapper'])){
$imageQuery = $xpath->query("//div[@id='fancybox-content']//img/@src");
if($imageQuery->length > 0){
foreach ($imageQuery as $key => $image){
$extensie = end((explode('/', $image->nodeValue)));
$extensie = end((explode('.', $extensie)));
$model = preg_replace("/[^a-zA-Z0-9 -\/]+/","",trim($this->request->post['model']));
$imageName = str_replace(" ","-",trim($this->request->post['product_description']['1']['name']));
$imageName = preg_replace("/[^a-zA-Z0-9 -]+/","",$imageName);
$imageName .= "-".preg_replace("/[^a-zA-Z0-9 -]+/","",$model);
$imageName = strtolower($imageName);
$imageName = preg_replace("/[-]+/","-",$imageName);
$imageName .= '-'.rand().'.'.$extensie;
$imageName = 'data/'.$imageName;
copy($image->nodeValue, DIR_IMAGE.$imageName);
if($key == '0'){
$this->model_catalog_product->firstImage($product_id, $imageName);
}else{
$this->model_catalog_product->aditionaleImage($product_id, $imageName);
}
}
}
}
Заранее спасибо за помощь.
Попробуй это:
<?php
function url_relative_to_absolute($baseUrl, $relativeUrl, $removeGet=true) {
// concat baseurl
// (in most cases it's server's host aka $_SERVER[HTTP_HOST]) and relative url
$url = rtrim($baseUrl, '/').'/'.ltrim($relativeUrl, '/');
// remove get params
if($removeGet)
$url = strtok($url, '?');
return $url;
}
Пример здесь: ideone
Других решений пока нет …