PDA

View Full Version : سوال: حذف قسمتی از کد هنگام نمایش



.fatemeh
سه شنبه 15 مهر 1393, 13:49 عصر
سلام
برای پاسخ به سوال در قسمت مدیریت از editor استفاده کردم.
هنگام نمایش متن مشکلی پیش نمیاد ولی زمانی که مدیر سایت توی پاسخش از عکس استفاده کنه
و مکان تصویر (چپ چین / راست چین) رو با استفاده از editor تنظیم کنه ، تصویر خاصیت float رو میگیره
و داخل صفحه سایت هنگام نمایش سوال های بعدی این تصویر مشکل ساز شده و روی متن سوال های زیری قرار میگیره.از clear هم استفاده کردم ولی چون style تصویر ، آخر اجرا میشه تاثیری نداشت.
حالا می خوام کاری کنم که استایل مربوط به تصویر از داخل کد حذف بشه.
از strip_tags استفاده کردم ولی تگ img رو برداشت.
به نظرتون باید چه کارش کنم؟؟؟

thacker
سه شنبه 15 مهر 1393, 16:18 عصر
توی css برای عکس ها یک کلاس تعریف کنید به همون شکلی که میخواهید و بهش قابلیت !important بدید احتمالا درست میشه

.fatemeh
سه شنبه 15 مهر 1393, 16:31 عصر
همین کار رو کردم clear گذاشتم و !important قرار دادم ولی بازم استایل داخلی تگ img رو الویت داد.
یه کد پیدا کردم


$html2 = '<img style="float:left; height:110px; width:152px;border: 1px solid red"
src="admin/box/images/prettyPhoto/facebook/btnPrevious.png" /></p>
';
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML($html2);
libxml_use_internal_errors(false);
$domx = new DOMXPath($domd);
$items = $domx->query("//img[@style]");
foreach($items as $item) {
$item->removeAttribute("style");
}
echo $domd->saveHTML();
درست عمل میکنه فقط خودش تگ body و html هم ایجاد می کنه که
اولا باعث میشه صفحه هم دوتا body و html بگیره
دوما utf8 نمیشه و متن به شکل ناخوانا نمایش داده میشه.
کد بالا رو کسی نمیتونه اصلاحش کنه یا نمونه مشابه که درست جواب بده؟

.fatemeh
سه شنبه 15 مهر 1393, 16:46 عصر
با این کد جواب داد (منبع سایت http://stackoverflow.com )

preg_replace('/(\<img[^>]+)(style\=\"[^\"]+\")([^>]+)(>)/', '${1}${3}${4}',$html2);

html2 همون متنی هست که می خواییم استایل تگ img رو از داخلش حذف کنیم.