>  기사  >  백엔드 개발  >  PHP 문자열을 HTML로 변환하는 방법

PHP 문자열을 HTML로 변환하는 방법

藏色散人
藏色散人원래의
2021-09-02 09:46:342925검색

php string转为html的方法:1、通过htmlentities()将字符串中特殊字符转化为html实体;2、通过htmlspecialchars()函数将字符串中特殊字符转化为html实体。

PHP 문자열을 HTML로 변환하는 방법

本文操作环境:Windows7系统、PHP7.1版本、Dell G3电脑

php string怎么转为html?

PHP中字符串与html相互转化函数

在一般通信过程中,可能会遇到文档文本编码中所不包括很多字符,或者无法在键盘上输入的字符。例如,版权符号(©)、分币符号(¢)和语法重音符号等就属于这种字符。为了克服这些缺点,专门设计了一组统一的按键编码,称为字符实体引用。

1,htmlentities(),将字符串中特殊字符转化为html实体。

 string htmlentities(string $str,int $quote_style,int $charset,boolean $double_encode),因为标记中引号有特殊意义,可以通过$quote_style参数来选择如何处理引号,其值:ENT_COMPAT,转换双引号,忽略单引号,这是默认值;ENT_NOQUOTES,忽略双引号和单引号;ENT_QUOTES,转换双引号和单引号。$charset参数确定转换所用字符集,如果忽略charset,默认认为ISO-8859-1。$double_encode会阻止htmlentities()对字符串中已有的HTML实体编码。

如:

<?php
$str = "Bill & &#39;Steve&#39;";
echo htmlentities($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // 不转换任何引号

输出:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

页面源代码是:

Bill &amp; 'Steve'0c6dc11e160d3b678d68754cc175188aBill &amp; &#039;Steve&#039;0c6dc11e160d3b678d68754cc175188aBill &amp; 'Steve'
<?php
$str = "Bill & &#39;Steve&#39;";
echo html_entity_decode($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // 不转换任何引号
输出:Bill & 'Steve'Bill & 'Steve'Bill & 'Steve'页面源代码是:
Bill & &#039;Steve&#039;0c6dc11e160d3b678d68754cc175188aBill & 'Steve'0c6dc11e160d3b678d68754cc175188aBill & &#039;Steve&#039;

2,htmlspecialchars()函数,将字符串中特殊字符转化为html实体。

string htmlspecialchars(string $str,int $quote_style,int $charset,boolean $double_encode),参数与htmlentities()函数中参数类似。

如:

<?php
$str = "This is some <b>bold</b> text";
$str1 = htmlspecialchars($str);
echo $str."<br/>";
echo $str1;

输出:

This is some bold text
This is some a4b561c25d9afb9ac8dc4d70affff419bold0d36329ec37a2cc24d42c7229b69747a text

源代码如下:

This is some a4b561c25d9afb9ac8dc4d70affff419bold0d36329ec37a2cc24d42c7229b69747a text076402276aae5dbec7f672f8f4e5cc81This is some &lt;b&gt;bold&lt;/b&gt; text
htmlspecialchars()函数可以转换的字符列表以及最终转换格式如下:&=>&amp;"(双引号)=>&quot;'(单引号)=>&#039;96b4fef55684b9312718d5de63fb7121&lt;>=>&gt;注:要防止用户向一个交互式web应用程序中输入HTML标签,这个函数尤为有用。以下例子使用htmlspecialchars()来转换可能有害的字符:
<?php
$input = "I just can&#39;t get <<enough>> of PHP!";
echo htmlspecialchars($input);

其反函数是htmlspecialchars_decode(),htmlspecialchars_decode(string $str,int $flag),$flags规定翻译表将包含哪种引号以及翻译表用于哪种文档类型,默认是ENT_COMPAT | ENT_HTML401

如:

<?php
$str = "This is some <b>bold</b> text.";
$str1 = htmlspecialchars_decode($str);
echo $str."<br/>",$str1;

输出:

This is some a4b561c25d9afb9ac8dc4d70affff419bold0d36329ec37a2cc24d42c7229b69747a text.
This is some bold text.

源代码:

This is some &lt;b&gt;bold&lt;/b&gt; text.076402276aae5dbec7f672f8f4e5cc81This is some a4b561c25d9afb9ac8dc4d70affff419bold0d36329ec37a2cc24d42c7229b69747a text.

3,strip_tags()函数,从字符串中移除空字符,HTML和PHP标记,将html转化为纯文本。

string strip_tags(string $str,string $allowable_tags) 

$str,待处理字符串,$allowable_tags指定不被去除的字符列表。

如:

<?php
$text  =  &#39;<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>&#39; ;
echo  strip_tags ( $text );
echo  "\n" ;

// 允许 <p> 和 <a>
echo  strip_tags ( $text ,  &#39;<p><a>&#39; );

输出:

4,get_html_translation_table()函数,返回使用htmlspecialchars()和htmlentities()后的转换表。

array get_html_translation_table(int $table,int $flags,string $encoding),$table表示想要的表,分别是HTML_ENTITIES,HTML_SPECIALCHARS。$flags规定翻译表将包含哪种引号以及翻译表用于哪种文档类型,默认是ENT_COMPAT | ENT_HTML401$encoding一个规定了要使用的字符集的字符串,默认是ISO-8859-1。

如:

<?php
var_dump ( get_html_translation_table ( HTML_ENTITIES ,  ENT_QUOTES  |  ENT_HTML5 ));

输出:

5,阿萨德

推荐学习:《PHP视频教程

위 내용은 PHP 문자열을 HTML로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.