문제

좋아, 나는 Dom Parser를 사용해야한다는 것을 알고 있지만, 이것은 이후의 기능에 대한 개념 증명 인 일부 코드를 작성하는 것이므로 제한된 테스트 코드 세트에서 일부 기능을 빠르게 얻고 싶습니다.

덩어리의 너비와 높이 속성을 벗기려고 노력하고 있습니다.

width="number" height="number"

빈 문자열로.

내가 쓰려고하는 기능은 현재 다음과 같이 보입니다.

function remove_img_dimensions($string,$iphone) {
    $pattern = "width=\"[0-9]*\"";
    $string = preg_replace($pattern, "", $string);

    $pattern = "height=\"[0-9]*\"";
    $string = preg_replace($pattern, "", $string);

    return $string;
}

그러나 그것은 작동하지 않습니다.

그 일을하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

PHP는 Python, Java 및 C#과 같은 문자열 리터럴 형태로 지정되지만 PHP는 주요 언어 중에서 독특합니다. Perl, JavaScript 및 Ruby와 같은 Regex 구분자를 사용해야합니다.

또한 두 배의 인용문 대신 단일 품종을 사용하여 이중 인용문 및 백 슬래시와 같은 캐릭터를 탈출해야 할 필요성을 줄일 수 있습니다. 이중 인용 문자열에 대한 탈출 규칙은 놀랍습니다.

마지막으로 간단한 교대를 통해 두 가지 교체품을 하나로 결합 할 수 있습니다.

$pattern = '/(width|height)="[0-9]*"/i';

다른 팁

패턴에는 시작/끝 패턴 문자가 필요합니다. 이와 같이:

$pattern = "/height=\"[0-9]*\"/";
$string = preg_replace($pattern, "", $string);

"/"는 일반적인 캐릭터이지만 대부분의 캐릭터는 작동합니다 ( "| Pattern |", "#Pattern#", 무엇이든).

나는 당신이 문자열의 정규 표현식을 둘러싸고있는 괄호 (//, || 또는 다른 다양한 문자)가 없다고 생각합니다. $ 패턴 할당을이 양식으로 변경해보십시오.

$pattern = "/width=\"[0-9]*\"/";

... 사례에 민감한 비교를 할 수 있으려면 문자열 끝에 'i'를 추가하십시오.

$pattern = "/width=\"[0-9]*\"/i";

도움이 되었기를 바랍니다! 데이비드

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