我试图从存储为文本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
答案 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 "walk" the <b>dog</b> now
echo $b; // I'll "walk" the <b>dog</b> now
?>