2016-08-09 9 views
-1

Perl을 처음 사용합니다. 나는 일부를 복제하는 것을 시도하고있다htmlentities()에 해당하는 Perl

/PHP의 htmlentities()

의 대부분의 기능은 지금까지 나는이있다 : 그것은 나의 필요를 위해 노력하고 있지만 내에서 마이크로 최적화는 느낌

$str = '" \' < >'; 

$str = join('&lt;', split('<', $str)); 
$str = join('&gt;', split('>', $str)); 
$str = join('&quot;', split('"', $str)); 
$str = join('&#039;', split("'", $str)); 

print $str; 

더 좋은 방법이 있어야하는 것처럼.

저는 정규 표현식에 끔찍해서 많은 Perl 자습서가 맞춤식 또는 비표준 라이브러리를 다루거나 단지 내 경험 부족으로 이런 식으로 보입니다.

perl -v는 생산 :

v5.10.1

+0

, 고려"내 안에 마이크로 최적화는 더 나은 방법이 있어야이 같은 느낌 " 바퀴의 재발 명을 피하십시오. " 올바르게 작성된 다른/기존 방법을 찾아 사용하십시오. – user2864740

+0

@ user2864740 감정을 가져 주셔서 감사합니다. 그러나 나는 확실히 현존하는 적절한 방법을 찾기 위해 노력했지만 확실히 많은 정보가 있습니다. 그러나 나는 실패했습니다. SO에 대한 질문은 보통 제가 가진 모든 문제에 대한 최종 해결책입니다. – MonkeyZeus

+0

SO가 첫 번째 리조트가 아닌지 확인하십시오. https://www.google.com/webhp?q=perl%20html%20encode – user2864740

답변

3

사용 HTML::Entitiesencode_entities. (그것은 분명히 htmlentities의 beavhour이 전달 된 인수에 따라 달라집니다 이후 100 % 해당되지 않습니다.)

+0

흠, 나는 이것이 서버 오류를 시도하고받은 해결책이지만 어제 Perl을 문자 그대로 시작 했으므로 코드의 다른 부분에서 오류가 발생한 것 같습니다. 어쨌든,이 솔루션은 나를 위해 작동하며 오류가 없습니다. 감사! – MonkeyZeus

0

당신은() decode_entities를 사용함으로써 달성 될 수있다 요구 무엇 이봐

예제 코드 : - 참고로

use HTML::Entities; my $html = "Hey &amp; &lt"; print decode_entities($html), "\n"; 

사용이 : - "에서 [virtuously] 게으른 프로그래머 나 소원에 Reference 대신

+1

그건 OP가 요구 한 것과 반대입니다. – ikegami

+0

위의 대답은 이미 인코딩에 대해 언급 했으므로 사용자가 두 가지를 모두 알 수 있도록 해답을 편집했습니다! 위의 내용을 참조하십시오. – StackB00m

+0

좋은 Perl 예제는 히트 또는 미스 인 것처럼 보이므로 미래 Google 직원을 위해이 대답을 허용하고 싶습니다. :-) +1 – MonkeyZeus