PDA

View Full Version : سوال: حذف تگ های اچ تی ام ال



future2010
پنج شنبه 03 تیر 1389, 13:53 عصر
با سلام خدمت دوستان گرامی

من از بانک اطلاعاتی بخشی رو دریافت میکنم که متنی با قالب بندی html هست و من میخوام تعدادی از تگ های html رو حذف کنم
مثلا وقتی نتیجه ای که از بانک اطلاعاتی میاد تگ img یا br و یا table اوومد، حذفشون کنه
یعنی میخوام کل تگ table به همراه همه سطر ها و ستون ها رو فیلتر کنم و همین کار رو برای تگ img و br داشته باشم

همیشه از راهنمایی شما ممنونم

m0h53n
پنج شنبه 03 تیر 1389, 15:18 عصر
سلام دوست من

با این کد هر تگی را که خواستی می تونی براحتی فیلتر کنی.


<?php
function filter($string){
return ereg_replace("<br>","", $string);
}


$code ="<html><title>PHP CODE</title><body>Hello<br>&nbsp;M0H53N</body></html>";

echo filter($code);
?>
موفق باشی

yasgig
پنج شنبه 03 تیر 1389, 15:18 عصر
می تونی از str_replace استفادده کنی و تعریف کنی که اگه تگ مورد نظر شما رو یافت پاک کنه.این کار ابتدایی هست و قبلا بهتر از اینا رو هم دیده بودم ولی یادم رفته.به هر حال با این روش می تونی انجام بدی.

future2010
پنج شنبه 03 تیر 1389, 15:41 عصر
ممنون از شما دوستان گرامی
اما قصد من حذف کامل table به همراه تمام سطر و ستون و داده های داخل اون هست
در این مورد اگه راهنمایی کنید ممنون میشم

pashaie
پنج شنبه 03 تیر 1389, 20:35 عصر
از این تابع می تونی استفاده کنی:


<?php
function strip_only($str, $tags, $stripContent = false) {
$content = '';
if(!is_array($tags)) {
$tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
if(end($tags) == '') array_pop($tags);
}
foreach($tags as $tag) {
if ($stripContent)
$content = '(.+</'.$tag.'[^>]*>|)';
$str = preg_replace('#</?'.$tag.'[^>]*>'.$content.'#is', '', $str);
}
return $str;
}

$str = '<table><tr><td>cvxv</td></tr></table> textX';
$tags = 'table';
$a = strip_only($str, $tags); // red text
$b = strip_only($str, $tags, true); // text
echo $b;
?>

امیـرحسین
پنج شنبه 03 تیر 1389, 21:55 عصر
از تابع strip_tags (http://ir.php.net/manual/en/function.strip-tags.php) استفاده کنید.