使用正则表达式删除包含其属性的表标记

时间:2017-06-03 08:59:43

标签: php regex

<?php require_once 'init.php';
  $q = "SELECT * FROM banner_texts";
  $r = $main->query($q);
  while ($row = $main->getRow($r)) {

    $str =  htmlspecialchars($row['Desktop_1920']);
    echo preg_replace("/<table+([\w\W]+?)>/", " ", $str);
    echo "<br>";
  }
?>

我有许多带有表格标签的文字,我想删除它们。 此代码无效:

<table style="width: 300px; text-align: center;"><tr><td> <p style="color: #0070c9; font-size: 16px; font-family:iransansweb_light;">انتخاب کنید</p> </table>
<table style="width: 300px; text-align: center;"><tr><td> <p style="color: #0070c9; font-size: 16px; font-family:iransansweb_light;">بیشتر بدانید</p> </table>
<p>گرافیک ویژه</p>
<table style="width: 400px; text-align: center;"> <tr><td><p style="color: #fff; font-size:22px; font-family: IRANSansWeb_FaNum_ultralight">پیشرفته. بهینه. مطمئن.</p></tr></td> <tr><td><p style="color: #fff; font-size:12px; font-family: IRANSansWeb_FaNum_ultralight; text-align:justify; text-align-last: center ;">ما طراح و سازندهٔ انواع کامپیوتر هستیم. محصولات رامادل برای کاربردهای گوناگون، از کاربردهای سادهٔ خانگی تا پیچیده‌ترین کاربردهای تخصصی، با بکارگیری تازه‌ترین دانش مهندسی و فناوری‌های روز طراحی و تولید می‌شوند. در تولید، از بهترین و جدیدترین قطعات استفاده می‌کنیم. پس از فروش نیز با خدمات مدیریت‌شده نگهداری، گارانتی و پشتیبانی کنار شما هستیم.</p></tr></td> </table>
<table style="width: 700px; text-align:center;"><td> <p style="color: #fff; font-size:32px; font-family: IRANSansWeb_FaNum_light">حــرفه‌راش‌دو.</p> <p style="color: #fff; font-size:16px; font-family: IRANSansWeb_FaNum_light">توسعه‌یافته. برای خلاقیت. در نهایت.</p> </td></table>

这些是我要替换的代码,我想找到包含其属性的开始表标记并替换它。

1 个答案:

答案 0 :(得分:0)

Live example

$tablestr = '<table style="width: 300px; text-align: center;"><tr><td></td></tr></table>';
$regex = '/(<table)([^>]*)(>)/i';

echo preg_replace($regex, "$1$3", $tablestr);