如何检测某些字符并用另一个字符串包装它们?

时间:2013-08-25 21:21:52

标签: php

我对php

中的html字符串有疑问

我想检测字符串是否包含<tbody>,如果是,则包含<table></table>个标记

我的字符串将是:

<tbody>
   <tr>
      <td>cell</td>
      <td>cell</td>
   </tr>
   <tr>
       <td>cell</td>
      <td>cell</td>
   </tr>
</tbody>

问题不是每个字符串都包含<tbody>,我需要检测它是否有<tbody>标记

我只需要用<table>包装字符串,这样我就可以将电子邮件发送给客户了。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

使用DOMDocumentDOMXPath

<?php
$dom = new DOMDocument();
$dom->loadHTML("<tbody>
   <tr>
      <td>cell</td>
      <td>cell</td>
   </tr>
   <tr>
       <td>cell</td>
      <td>cell</td>
   </tr>
</tbody>");

$xpath = new DOMXpath($dom);
$result = $xpath->query('//tbody');

if ($result->length > 0) {
    //tbody found
}

?>

See it live!

答案 1 :(得分:1)

请查看SimpleXML,它允许加载,操作和保存XML:

使用示例[source of sample]

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$character = $xml->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $xml->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $xml->asXML();
?>

根据这些数据:

 <?xml version='1.0' standalone='yes'?>
  <movies>
   <movie>
    <title>PHP: Behind the Parser</title>
    <characters>
      <character>
        <name>Ms. Coder</name>
        <actor>Onlivia Actora</actor>
        </character>
      <character>
        <name>Mr. Coder</name>
        <actor>El Act&#211;r</actor>
      </character>
     </characters>
    </movie>
   <movies>

SimpleXML&#39; DOM methods也可能会引起人们的兴趣。