PHP는 FixPath 함수 [경로 함수를 마무리]
FixPath 기능 :. PHP는 경로 기능을 마무리 더러운 경로를 수정합니다.
예 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <? PHP는 ; "는 NNN 더티 경로가 : N"에코; = 'C://////////Windows//////System' ; // C:/System $ 경로 [] =이 'C :////////// 윈도우 ////// 시스템'; / /에 C : / 시스템 = 'C:HTMLjavascript..examplescolors.html' ; // C:/HTML/examples/colors.html $ 경로 [] = '에서 C : HTMLjavascript .. examplescolors.html'; / /에 C : /는 HTML / 예제 / colors.html = '/root/./wwwroot/scripts/../././webpage' ; // /root/wwwroot/webpage $ 경로 [] = '/ 루트 /. / wwwroot에 / 스크립트 / .. /. /. / 웹페이지'; / / / 루트 / wwwroot에 / 웹페이지 = 'wwwroot/webpage/../index.php?querystring' ; // wwwroot/index.php?querystring $ 경로 [] = 'wwwroot에 / 웹페이지 / .. / index.php? 검색어'; / / wwwroot에 / index.php? 검색어 = 'http://www.php.net/manual/en/../../downloads' ; // http://www.php.net/downloads $ 경로 [] = 'http://www.php.net/manual/en/../../downloads'; / / http://www.php.net/downloads = 'http://www.php.net/downloads/test/test1/test2//./docs.php' ; // http://www.php.net/docs.php $ 경로 [] = 'http://www.php.net/downloads/test/test1/test2//./docs.php'; / / http://www.php.net/docs.php = '../downloads/../docs.php' ; // ../docs.php $ 경로 [] = '.. / 다운로드 / .. / docs.php'; / / ... / docs.php = 'localhost//projetos/../_arquivos/../' ; // "" $ 경로 [] = 'localhost를 / / projetos / .. / /../'; _arquivos / / "" = 'C:/downloads/../../../' ; // C:/ $ 경로 [] = '에서 C : / 다운로드 /../../../'; / /에 C : / = 'downloads/../../../' ; // ../../ $ 경로 [] = '다운로드 /../../../'; / / ../../ $paths as $path ) $로 foreach로 ($ 경로 경로) ( . $path . "" = "" . fixpath ( $path ) . """ ; "N"은 "을 되풀이했다. $ 경로를 입력합니다." "=" ". fixpath ($ 경로)." ""; ) ?> |
참고 사항 : "/ /"한 번만 더 슬래시 루트 롤백할 것이다.
기능 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <? PHP는 $path = "" ) 기능 fixpath ($ 경로 = "") ( / / 정신을 확인하기 $path == "" ) { return false ; } ($ 만약 경로 == "") (false를 반환;) / / 변환 모두 ""로 "/", 그리고 시작과 결말 문자열의 공백을 지워 trim ( preg_replace ( "/\/" , "/" , ( string ) $path ) ) ; $ 경로 ( "/ \ /", "/", (문자열) $ 경로)) (preg_replace 트림 =; / * 부분에서 원래의 문자열 휴식 : ""와 "디렉토리"루트. * "루트" "는 C : /"(Windows 용), "/"(리눅스) 또는 "http://www.something.com/"(URL을).이 출력 문자열의 시작이 될 것입니다. * "Dir" "윈도우 수있습니다 / 시스템", "루트 / html로 / 예제 /", "이 포함되어 / 교실 / class.validator.php"등 * / "/^(/|w:/|(http|ftp)s?://[^/]+/)?(.*)$/i" , $path , $matches , PREG_SET_ORDER ) ; preg_match_all ("/^(/| 승 : / | (http를 | FTP)을 ?://[^/]+/)?(.*)$/ ", $ 경로, $ 일치, PREG_SET_ORDER); $matches [ 0 ] [ 1 ] ; $ path_root = $와 일치 [0] [1]; $matches [ 0 ] [ 3 ] ; $ path_dir = $와 일치 [0] [3]; 만약 "디렉토리"부분은 처음에 하나 이상의 슬래시있다 / / 모두 삭제합니다. preg_replace ( array ( "/^/+/" ) , array ( "" ) , $path_dir ) ; $ path_dir = preg_replace (배열 ("/^/+/"), 배열 ( ""), $ path_dir); 각 슬래시에 / / 휴식 "디렉토리"부분 explode ( "/" , $path_dir ) ; $ path_parts 폭발 = ( "/", $ path_dir); / / 오른쪽 경로를 가진 새로운 배열을 생성합니다. 각각의 요소는 새로운 디렉토리가 존재하는 경우 (또는 결말에,) 순서에 따라 파일을 엽니다. $i = $j = 0 , $real_path_parts = array ( ) ; $i < count ( $path_parts ) ; $i ++ ) ($ 전 = $ j를 = 0, $ real_path_parts = 배열에 대한 (); $ 나는 <($ path_parts); $ 난 + +) 계산 ( $path_parts [ $i ] == '.' ) 만약 ($ path_parts [$ 나는] == '.') ( 계속; ) $path_parts [ $i ] == '' ) && ( $i != ( count ( $path_parts ) - 1 ) ) ) 다른 경우 (($ path_parts [$ 나는] =='') & & ($ 내가! = (셀 ($ path_parts) - 1))) ( array ( ) ; $ real_path_parts = 배열 (); 0 ; $ j를 = 0; 계속; ) $path_parts [ $i ] == '..' ) 다른 경우 ($ path_parts [$ 나는] == '..') ( isset ( $real_path_parts [ $j - 1 ] ) && $real_path_parts [ $j - 1 ] != '..' ) || ( $path_root != "" ) ) 만약 ((isset ($ real_path_parts [$ j를 - 1]) & & $ real_path_parts [$ j를 - 1]! = '..') | | ($ path_root! = "")) ( $real_path_parts ) ; array_pop ($ real_path_parts); $ j를 -; 계속; ) ) $real_path_parts , $path_parts [ $i ] ) ; array_push ($ real_path_parts, $ path_parts [$ 나는]); $ j를 + +; ) . implode ( "/" , $real_path_parts ) ; path_root $ 반환합니다. ( "/", $ real_path_parts) 경과음; ) ?> |
| -이 기사에 대한 평가에 오신 것을 환영합니다 |
지난 180 days.Who 이내 아니 후원금 기부는 여기에 메시지를 남길 수 있도록했다.하세요 기부.
이것은 WordPress에 플러그인 Wp - Donators. 그것은 지불 후이 컨테이너에 스폰서 정보 autoleave하는 스마트 기부 기능을 제공합니다. 사람을 기부할 수와 이름 / URL 또는 텍스트 광고를 제출할. 최신 기증자의 정보 구름에 표시됩니다. , 그들의 연결을 '미래에 가장 인기있는 지불 인터페이스를 지원하는 것입니다 be.It 더 큰 사람이 기부했다. ParPal 그냥 첫 한. 더많은 ..
에 의해 제공 : 포스트 - DONATORS
관련 로그 | 이 신문에서는 독자는 또한 다음에 대해 우려하고있다 :
|















































회신을 남겨주