PodglÄ…d pliku: / phpproxy / rewrite.php
<?php
/**************************************************
* Proxy w PHP *
**************************************************
* Wersja: 0.4 Alpha *
* Autor: Jacek Kowalski (http://jacekk.info) *
* *
* Utwór rozprowadzany na licencji *
* http://creativecommons.org/licenses/by-nc/2.5/ *
**************************************************/
ini_set('default_charset', '');
function simple_path_adv($path) {
$path = explode('/', simple_path($path));
$new_path = array();
foreach($path as $key => $value) {
switch($value) {
case '..':
array_pop($new_path);
break;
case '':
case '.':
break;
default:
$new_path[] = $value;
break;
}
}
return '/'.implode('/', $new_path);
}
function simple_path($path) {
$path = trim(str_replace(array('/./', '//', '\\'), '/', $path), '/');
while(strpos($path, '//')!==FALSE OR strpos($path, '/./')!==FALSE) {
$path = str_replace(array('/./', '//', '\\'), '/', $path);
}
return '/'.$path;
}
function base_path($start, $rel) {
$start = explode('/', simple_path_adv($start));
$rel = explode('/', $rel);
foreach($rel as $value) {
switch($value) {
case '..':
array_pop($start);
break;
case '':
case '.':
break;
default:
$start[] = $value;
break;
}
}
return '/'.implode('/', $start);
}
echo base_path('/home/test/..', '.././test/./../../etc');
?>
Browse Code © 2010 by Jacek Kowalski