使用php从数据库中获取HTML文本

时间:2012-02-08 07:55:06

标签: php html regex

我试图从存储为文本usnig php的数据库中获取一些数据。 文本可以是纯文本/或html文本。

我想从数据库中检索的文本中获取以下字段:城市,州,国家/地区。 这是文本看起来像

的示例
country :- US
state   :- Washington
city    :- Bellingham

<table>
<tr><td>country </td><td>US</td></tr>
<tr><td>state</td><td>Washington</td></tr>
<tr><td>city</td><td>Bingen</td></tr>
</table>

或div标签中的相同

我已经为纯文本做过了。 我发现这很容易,因为我找到了换行符(行尾)并修剪了其他文本,除了需要的内容

但是在HTML的情况下我遇到了问题,如何处理HTML文本。因为没有换行符。不确定什么是最好的方法,如果我使用strip_tags它返回同一行中的所有文本,即country us state washington

2 个答案:

答案 0 :(得分:2)

你不能只做一些文本处理而不是HTML解析

$input = "<table><tr><td>country </td><td>US</td></tr><tr><td>state</td><td>Washington</td></tr><tr><td>city</td><td>Bingen</td></tr></table>";

$needle = array("<table>", "<tr><td>","</td<td>", "</td</tr>", "</table");
$replacements = array("","",":-","\n","");
$output = str_replace($needle, $replacements, $input);

这将为您提供与文本输入相同的内容。

答案 1 :(得分:2)

当您在数据库中存储html时,使用HTMLentities()对它们进行编码,然后使用html_entity_decode()

显示它们
<?php
$orig = "I'll \"walk\" the <b>dog</b> now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now
echo $b; // I'll "walk" the <b>dog</b> now
?>