2016-08-09 19 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::Entitiesさんencode_entities。 (これは明らかにhtmlentitiesのbeavhourがそれに渡された引数によって異なりますので、100%と同等ではありません。)

+0

うーん、これは私が試してみたサーバーエラーを受けた解決策だと私は誓っていましたが、昨日Perlを文字通り起動したので、エラーはおそらく他のコードセクションにあったでしょう。とにかく、このソリューションは私のために動作し、エラーフリーです。ありがとう! – MonkeyZeus

0

あなたは()decode_entitiesを用いることによって達成することができるために尋ねねえ

サンプルコード: - 参照として

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

これを使用して: - :「[見事に]怠惰なプログラマが私の願いでReference代わりの

+1

これは、OPが尋ねたものの逆です – ikegami

+0

上記の答えはすでにエンコーディングについて言及していますので、私はデコードする答えを編集しているので、ユーザーは両方を知っています!私の答えは編集されて上記を参照してください。 – StackB00m

+0

良いPerlの例はヒットやミスのようですので、将来のGoogle社員にこの回答を許可しています:-) +1 – MonkeyZeus

関連する問題