@ 2013-07-01T12:04:45Z <?php
$pattern = '/(?:src|href)\=(?:\\\'|")([^\\\'"]+)(?:\\\'|")/';
$source = <<<SRC
<a href="http://www.sape.ru">some text</a>
<img src='logo.jpg' alt=''></a>
<img src='../../logo.jpg' alt=''></a>
<img src='/path/to/file' alt=''></a>
<img src='./path/to/file' alt=''></a>
<img src='www.sape.ru/path/to/file' alt=''></a>
SRC;
$baseUrl = 'www.sape.ru';
$callback = function($matches) use ($baseUrl) {
$srcTag = $matches[0];
$url = $matches[1];
$search = array(
$baseUrl,
'http://' . $baseUrl,
'https://' . $baseUrl,
'http://',
'https://',
'../',
'./',
'//',
'/'
);
$baseUrlReplace = $baseUrl . '/';
$resultUrl = $url;
$count = 0;
foreach($search as $s) {
$count = 0;
$resultUrl = preg_replace('/^' . preg_quote($s, '/') . '/', $baseUrlReplace, $url, 1, $count);
if ($count == 1) {
break;
}
}
if (!$count) {
$resultUrl = $baseUrlReplace . $url;
}
$search = array(
'../',
'./'
);
foreach($search as $s) {
$resultUrl = preg_replace('/' . preg_quote($s, '/') . '/', '', $resultUrl);
}
$resultUrl = preg_replace('/\/{2,}/', '/', $resultUrl)
$resultUrl = 'http://' . $resultUrl;
var_dump($resultUrl);
return str_replace($url, $resultUrl, $srcTag);
$url = preg_replace('/^[^\/]\//', '/', $url);
$path = parse_url($url, PHP_URL_PATH);
//if (empty($path)) {
// $path = '/';
//}
$query = parse_url($url, PHP_URL_QUERY);
if (!empty($query)) {
$path.= '?' . $query;
}
$fragment = parse_url($url, PHP_URL_FRAGMENT);
if (!empty($fragment)) {
$path.= '#' . $fragment;
}
$resultUrl = 'http://' . $baseUrl . '/' . ltrim($path, '/');
//var_dump($resultUrl);
return str_replace($url, $resultUrl, $srcTag);
};
$source = preg_replace_callback($pattern, $callback, $source);
var_dump($source);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 5.4.16 0.016 0.043 12.40 5.4.15 0.020 0.057 12.40 5.4.14 0.013 0.043 12.09 5.4.13 0.015 0.042 12.07 5.4.12 0.015 0.040 12.04 5.4.11 0.020 0.057 12.03 5.4.10 0.017 0.062 12.03 5.4.9 0.013 0.045 12.03 5.4.8 0.014 0.045 12.03 5.4.7 0.022 0.058 12.03 5.4.6 0.018 0.062 12.03 5.4.5 0.013 0.044 12.03 5.4.4 0.018 0.064 12.02 5.4.3 0.013 0.046 12.01 5.4.2 0.015 0.044 12.00 5.4.1 0.012 0.046 12.01 5.4.0 0.013 0.046 11.50 5.3.26 0.018 0.065 12.72 5.3.25 0.013 0.048 12.72 5.3.24 0.012 0.049 12.72 5.3.23 0.031 0.074 12.71 5.3.22 0.014 0.047 12.68 5.3.21 0.012 0.049 12.68 5.3.20 0.015 0.046 12.68 5.3.19 0.016 0.047 12.68 5.3.18 0.015 0.046 12.67 5.3.17 0.021 0.061 12.67 5.3.16 0.019 0.062 12.67 5.3.15 0.014 0.044 12.67 5.3.14 0.012 0.043 12.66 5.3.13 0.015 0.043 12.66 5.3.12 0.014 0.044 12.66 5.3.11 0.015 0.043 12.66 5.3.10 0.018 0.059 12.13 5.3.9 0.024 0.072 12.11 5.3.8 0.013 0.045 12.10 5.3.7 0.016 0.052 12.10 5.3.6 0.023 0.072 12.09 5.3.5 0.024 0.076 12.03 5.3.4 0.018 0.055 12.03 5.3.3 0.013 0.047 12.00 5.3.2 0.012 0.047 11.78 5.3.1 0.019 0.058 11.74 5.3.0 0.012 0.041 11.73
preferences:dark mode live preview
133.38 ms | 1394 KiB | 7 Q