PDA

View Full Version : remove all link with regex in php



makhondi
یک شنبه 26 مهر 1394, 19:51 عصر
سلام

میخوام همه لینک های یه رشته رو حذف کنم با عبارت regex در php . لطفا راهنمایی بفرمایید.


<a> test </a>

میخوام هر چی در تگ a بود هم حذف بشه و هر چی به جای test بود مثل تصویر بدون مشکل بیاد بیرون . البته نمیخوام مطالب چپ و راست تگ a حذف بشن

----
اینها مشکل دارند:



$pattern = '/<a (.*?)href=[\"\'](.*?)\/\/(.*?)[\"\'](.*?)>(.*?)<\/a>/i';
$str = preg_replace($pattern, '$5', $str);


preg_replace('#<a.*?>([^<]*)</a>#i', '$1', $str);



من منتظر پاسخ دوستام :افسرده:

djtrex
یک شنبه 26 مهر 1394, 22:33 عصر
<?php


$html = '
<section>
<div class="header">
<a href=""><img src="http://example.com/image1.png"></a>
<div class="clear"></div>
<a href="" class="favorite-link">
<div class="favorite">
<span class="icon icon-star"></span>
</div>
</a>
</div>
<div class="body">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
<a href="" data-something="some data!">Click here!</a>
</div>
</section>
';


echo preg_replace('/<a.*?>(.*?)<\/a>/ism', '$1', $html);


خروجی:



<section>
<div class="header">
<img src="http://example.com/image1.png">
<div class="clear"></div>


<div class="favorite">
<span class="icon icon-star"></span>
</div>


</div>
<div class="body">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
Click here!
</div>
</section>


برای حالت های مختلف میتونید از سایت regexr هم کمک بگیرید:
http://www.regexr.com/