
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