는 방법을 결정하는 경우에 html 태그에 여러 줄에 걸쳐 분할

StackOverflow https://stackoverflow.com/questions/33814

  •  09-06-2019
  •  | 
  •  

문제

쓰 PHP 스크립트를 포함하는 긁 웹 페이지입니다.현재 스크립트 분석은 페이지를 줄이지만,그것은 휴식이 있는 경우 프로그래밍 인터페이스를 제공하는 걸쳐 여러 줄처럼,

<img src="example.jpg"
alt="example">

면 더 온다 최악,나도 전처리 페이지를 제거하여 모든 라인에 나누기,그리고 다시 삽입하기에 가장 가까운 >, 하지만 이처럼 보인다는 임시방편 보.

이상적으로,나는 감지할 수 있는 태그에 걸쳐 있는 라인,conjoin 만을 줄이고 계속 처리합니다.
그래서 무엇이 가장 좋은 방법을 감지하는 이?

도움이 되었습니까?

해결책 4

아마도 미래를 위해 프로젝트가 사용하여 파싱 라이브러리,그러나 그 종류의 고객께서 질문합니다.이것은 현재 솔루션입니다. rstrpos 은 strpos 지만,반대 방향입니다.를 들어 사용:

for($i=0; $i<count($lines); $i++)
{
    $line = handle_mulitline_tags(&$i, $line, $lines);
}

그리고 여기에는 구현:

function rstrpos($string, $charToFind, $relativePos)
{
    $searchPos = $relativePos;
    $searchChar = '';

    while (($searchChar != $charToFind)&&($searchPos>-1))
    {
        $newPos = $searchPos-1;
        $searchChar = substr($string,$newPos,strlen($charToFind));
        $searchPos = $newPos;
    }

    if (!empty($searchChar))
    {
        return $searchPos;
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

function handle_multiline_tags(&$i, $line, $lines)
{
    //if a tag is opened but not closed before a line break,

    $open = rstrpos($line, '<', strlen($line));
    $close = rstrpos($line, '>', strlen($line));
    if(($open > $close)&&($open > -1)&&($close > -1))
    {
        $i++;
        return trim($line).trim(handle_multiline_tags(&$i, $lines[$i], $lines));
    }
    else
    {
        return trim($line);
    }
}

이마에서 최적화 방법,그러나 내 목적을 위해,그것이면 충분합니다.

다른 팁

이것은 하나 내가 싫어: 분석 HTML 있습니다. 분석 HTML 와 regexps. 분석 HTML 문자열 비교할 수 있습니다. 사용 HTML 파서 분석하 HTML 는 사람들이 거기에 겁니다.

그것은 긴 시간 때문에 나는 모든 PHP,하지만 빠른 검색 설정 이 PHP5HTML 파서.

쓰지 않는 파서,다른 사람의 사용: DOMDocument::loadHTML -는 한,내가 생각하는 많은 다른 사람입니다.

론,이하지 않는 질문에 대답하고 더 많은 의견,하지만...

내가 생각하는 최고의 긁는 전략(와 결과적으로 이 문제를 해결하기 위해)지 않을 분석 HTML 라인에 의해 라인에 자연 HTML 지만,그것을 분석하여 그것의 자연적인 구분 기호:<>쌍이다.

가 될 것이 두 가지 유형의 코스:

  • 태그는 요소는 바로 폐쇄로,예를 들어, < br/>
  • 태그는 요소가 필요한 별도의 닫는 태그의 예를 들어, < p>텍스트 < /p>

즉시 확인할 수 있습의 장점은 사용하는 이 전략의 경우에 단락(p)태그:그것을 쉽게 될 것입니다 분석 mutiline 단락의 위치 추적을 닫는 태그이다.

왜 당신은에서 읽을 줄이고,설정 문자열을 확인한 후 문자열 태그의 구멍과 폐쇄면,태그를 더 걸쳐 다음 중 하나는 라인에 추가가 다음 줄을 문자열 및 이동에 앞 부분 개방 중괄호를 처리하는 문자열.음 분석을 통해 파일 전체 이것을 하고 있다.아름다운하지 않지만 작업해야 합니다.

는 경우에 당신은 꼭 스틱을하는 현재의 방법을 구문 분석,그리고 정규식,사용할 수 있습니다 multi-line flag "m"에 걸쳐 여러 줄에 걸쳐.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top