에릭 @ EricBess WebHome

맹목적 행동없이 생각하고, 그것을 무의식적으로 의미가 될 것입니다

Chinese (Simplified) flagItalian flagKorean flagPortuguese flagEnglish flagGerman flagFrench flagSpanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flagCzech flagCroat flagDanish flagFinnish flagHindi flagPolish flagRumanian flagSwedish flagNorwegian flagCatalan flagFilipino flagHebrew flagIndonesian flagLatvian flagLithuanian flagSerbian flagSlovak flagSlovenian flagUkrainian flagVietnamese flag
By N2H

PHP는 FixPath 함수 [경로 함수를 마무리]

FixPath 기능 :. PHP는 경로 기능을 마무리 더러운 경로를 수정합니다.
예 :

?보기 코드는 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 . "&quot;  =  &quot;" .  fixpath ( $path ) . "&quot;" ; "N"은 "을 되풀이했다. $ 경로를 입력합니다." "=" ". fixpath ($ 경로)." ""; 
  ) 
  ?> 
참고 사항 : "/ /"한 번만 더 슬래시 루트 롤백할 것이다.


기능 :

? 다운로드 FixPath.php
 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) 경과음; 
  ) 
  ?> 
1 Star2 Stars3 Stars4 Stars5 Stars (2 투표, 평균 : 5 개5 개의 아웃)
Loading ... 로드 중입니다 ...
-이 기사에 대한 평가에 오신 것을 환영합니다

관련 로그

이 신문에서는 독자는 또한 다음에 대해 우려하고있다 :

  • N / 한

7 월, 2008 17 저자 : 에릭 | 코딩 | 트랙백? | 코멘트 | Email This Post Print This Post | 109 플레이

코멘트 추가

회신을 남겨주

아니