簡體   English   中英

將字符串中的字符替換為其HTML編碼

[英]Replace characters in a string with their HTML coding

我需要用其HTML編碼替換字符串中的字符。

例如 敏捷的棕色狐狸跳過了懶狗)。

我需要用&替換引號。 並用( 和)

我已經嘗試過str_replace,但是我只能替換1個字符。 有沒有辦法使用str_replace替換多個字符? 還是有更好的方法來做到這一點?

謝謝!

我建議使用htmlentities()函數。

看看手冊

PHP具有許多函數來處理這種事情:

首先, htmlentities()htmlspecialchars()

但是,正如您已經發現的那樣,它們不會處理()字符,因為這些字符不是必須以HTML實體形式呈現的字符。 我猜問題是為什么您要將這些特定字符轉換為實體? 我真的看不出這樣做的充分理由。

如果確實需要這樣做, str_replace()將使用搜索和替換參數中的數組進行多個字符串替換:

$output = str_replace(array('(',')'), array('&#40','&#41'), $input);

您也可以類似的方式使用strtr()函數:

$conversions = array('('=>'(', ')'=>')');
$output = strtr($conversions, $input);

這些都可以為您解決問題。 同樣,我也不知道為什么要這么做,因為在這種情況下, ()括號沒有什么特別的。

在研究以上內容時,您可能還需要查找get_html_translation_table() ,它以適合與strtr()一起使用的格式返回htmlentities()htmlspecialchars()使用的實體轉換數組。 您可以在運行轉換之前加載該數組並向其中添加額外的字符; 這將允許您同時轉換所有普通實體字符。

我要指出的是,如果為您的頁面提供UTF8字符集,則無需將任何字符轉換為實體(HTML保留字符<>&除外)。 這可能是您的替代解決方案。

您還在另一條評論中詢問有關轉換換行的信息。 這些可以使用PHP的nl2br()函數進行轉換,但也可以使用str_replace()strtr()進行轉換,因此可以與其他所有內容一起添加到轉換數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM