C의 URL에서 단일 점 경로 이름 제거

Mike-더 이상 여기에

나는 그것에 던져지는 URL을 수정 해야하는 아파치 모듈에서 함수를 만들고 있습니다. 현재 단일 점 경로 이름을 제거하려고합니다.

예를 들어 내 URL이 다음과 같은 경우

http://example.com/1/./2/./3/./4.php

그런 다음 URL은 다음과 같습니다.

http://example.com/1/2/3/4.php

그러나 나는 논리에 집착합니다. 이 함수를 가능한 한 빨리 실행하기 위해 포인터를 사용하고 있습니다. //?끝에 추가 해야하는 논리가 혼란 스럽 습니다.

진행 방법에 대한 조언을 줄 수 있습니까? 숨겨진 설명서가 온라인에 있더라도? 나는 bing과 google에서 성공하지 못한 답변을 검색했습니다.

static long fixurl(char *u){
  char u1[10000];
  char *u11=u1,*uu1=u;
  long ct=0,fx=0;
  while (*uu1){
    *u11=*uu1;
    if (*uu1=='/'){
      ct++;
      if (ct >=2){
        uu1++;
        break;
      }
    } else {
      ct=0;
    }
  }

  while (*uu1){ 
    if (*uu1!='/') { //?
      if (*uu1!='.') {
        *u11=*uu1;
         u11++;
      } //?
    } //?
    uu1++;
  }

  *u11='\0';
  strcpy(u,u1);
  return fx;
}
종웨어

여기서 한 문자 앞을 보는 것을 잊었습니다.

if (*uu1!='/') { //?
  if (*uu1!='.') {

– 동일한 문자를 두 번 확인하고 있습니다 ( 'not'에 대해 약간의 사용이있을 수 있지만 물음표는 거기에서 무엇을해야할지 확실하지 않음을 나타냄).

실제로 문자를 앞쪽으로 봐야 합니다. 당신이 슬래시가 발생하는 경우에 다음 문자 테스트 . 서로에 대한 그 후 하나 /.

오히려 (어떤 코드를 해결하기 위해 노력보다 fx, 가정 반환 값이 될 수?), 나는 복사하기 위해 처음부터 다시 줄 sourcedest하고 잘못된 부분을 건너 뜁니다. continue시퀀스 /1/././2가 올바르게 정리되었는지 /1/2확인합니다. 두 번째 슬래시를 다시 확인할 기회가 필요하므로 루프에 다시 던집니다.

void fixurl (char *theUrl)
{
    char *source, *dest;

    source = dest = theUrl;
    while (*source)
    {
        if (source[0] == '/' && source[1] == '.' && source[2] == '/')
        {
            source += 2;  /* effectively, 'try again on the next slash' */
        } else
        {
            *dest = *source;
            source++;
            dest++;
        }
    }
    *dest = 0;
}

(보적:)

흥미롭게도 제거를위한 적절한 지원을 추가하는 /../것은 매우 간단합니다. 해당 시퀀스를 테스트하는 경우 이전의 마지막 시퀀스를 뒤로 검색 하고 해당 위치로 /재설정 dest해야합니다. 그래도 경로가 여전히 유효한지 확인하고 싶을 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

iOS의 경로에서 점 / 이중 점 제거

분류에서Dev

파일 이름에서 경로 "/"제거

분류에서Dev

단어 집합에서 모든 구두점을 제거하거나 txt 파일의 모든 고유 단어를 C ++의 집합 (구두점없이)에 쓰기

분류에서Dev

웹 페이지 URL의 일부를 제거하거나 단순히 Tampermonkey에서 변경된 URL로 리디렉션하는 방법은 무엇입니까?

분류에서Dev

glob.iglob 파일 이름에서 경로 제거

분류에서Dev

Visual Studio 2015의 탭 이름에서 경로 제거

분류에서Dev

URL에서 파일 이름 제거

분류에서Dev

C ++에서 단일 변수 또는 배열 할당 해제의 차이점

분류에서Dev

Mac에서 첫 번째 점 뒤에있는 파일 이름의 모든 부분을 제거하는 방법

분류에서Dev

R의 URL 경로에서 파일 이름 가져 오기

분류에서Dev

단일 정점에서 N 개의 정점으로 이동하는 그래프

분류에서Dev

Regx + Java : 텍스트를 단어로 분할하고 구두점이 단독이거나 끝에있는 경우에만 구두점 제거

분류에서Dev

파일 이름에서 "extra"점을 찾아 제거하십시오.

분류에서Dev

Linux의 zip 아카이브에서 단일 파일 제거

분류에서Dev

파일 이름 시작 부분에서 단일 문자 제거

분류에서Dev

WooCommerce; 상점 페이지 및 단일 제품 페이지에서 제품 이미지 제거

분류에서Dev

구 표면에서 측지선 (최단 거리 경로) 간의 교차점

분류에서Dev

이 PHP 파일 이름 변경 코드의 문제점은 무엇입니까?

분류에서Dev

Linux의 파일 이름에서 특수 문자 일괄 제거

분류에서Dev

Bash에서 파일 이름의 선행 대시 일괄 제거

분류에서Dev

하위 폴더에서 동일한 이름의 파일 제거

분류에서Dev

자바에서 파일 이름의 일부 제거

분류에서Dev

Windows의 파일 이름에서 특수 문자 일괄 제거

분류에서Dev

fasta 파일에서 식별자 줄 이름을 임의의 단축 이름으로 변경

분류에서Dev

GNU Make : 첫 번째 점 뒤 파일 이름의 모든 부분 제거

분류에서Dev

파일 이름에서 일반적인 단어를 자동으로 찾아 제거

분류에서Dev

단일 메서드로 C # 이벤트 처리기 추가 / 제거

분류에서Dev

파일 이름에서 특정 단어 제거

분류에서Dev

단일 진입 점이있는 zf2 웹 사이트, URL에 경로 / 경로 없음

Related 관련 기사

  1. 1

    iOS의 경로에서 점 / 이중 점 제거

  2. 2

    파일 이름에서 경로 "/"제거

  3. 3

    단어 집합에서 모든 구두점을 제거하거나 txt 파일의 모든 고유 단어를 C ++의 집합 (구두점없이)에 쓰기

  4. 4

    웹 페이지 URL의 일부를 제거하거나 단순히 Tampermonkey에서 변경된 URL로 리디렉션하는 방법은 무엇입니까?

  5. 5

    glob.iglob 파일 이름에서 경로 제거

  6. 6

    Visual Studio 2015의 탭 이름에서 경로 제거

  7. 7

    URL에서 파일 이름 제거

  8. 8

    C ++에서 단일 변수 또는 배열 할당 해제의 차이점

  9. 9

    Mac에서 첫 번째 점 뒤에있는 파일 이름의 모든 부분을 제거하는 방법

  10. 10

    R의 URL 경로에서 파일 이름 가져 오기

  11. 11

    단일 정점에서 N 개의 정점으로 이동하는 그래프

  12. 12

    Regx + Java : 텍스트를 단어로 분할하고 구두점이 단독이거나 끝에있는 경우에만 구두점 제거

  13. 13

    파일 이름에서 "extra"점을 찾아 제거하십시오.

  14. 14

    Linux의 zip 아카이브에서 단일 파일 제거

  15. 15

    파일 이름 시작 부분에서 단일 문자 제거

  16. 16

    WooCommerce; 상점 페이지 및 단일 제품 페이지에서 제품 이미지 제거

  17. 17

    구 표면에서 측지선 (최단 거리 경로) 간의 교차점

  18. 18

    이 PHP 파일 이름 변경 코드의 문제점은 무엇입니까?

  19. 19

    Linux의 파일 이름에서 특수 문자 일괄 제거

  20. 20

    Bash에서 파일 이름의 선행 대시 일괄 제거

  21. 21

    하위 폴더에서 동일한 이름의 파일 제거

  22. 22

    자바에서 파일 이름의 일부 제거

  23. 23

    Windows의 파일 이름에서 특수 문자 일괄 제거

  24. 24

    fasta 파일에서 식별자 줄 이름을 임의의 단축 이름으로 변경

  25. 25

    GNU Make : 첫 번째 점 뒤 파일 이름의 모든 부분 제거

  26. 26

    파일 이름에서 일반적인 단어를 자동으로 찾아 제거

  27. 27

    단일 메서드로 C # 이벤트 처리기 추가 / 제거

  28. 28

    파일 이름에서 특정 단어 제거

  29. 29

    단일 진입 점이있는 zf2 웹 사이트, URL에 경로 / 경로 없음

뜨겁다태그

보관