Ben bir regex find yazıyorum / bir <span>
zaten var olmayan bir dosyanın her <a href>
bir <span>
ekleyecektir değiştirin. Diğer etiketler <img>
, <b>
, vb <a href>
içinde olmasını sağlayacaktır
Currently I have this regex:
Find: (<a[^>]+?style=".*?color:#(\w{6}).*?".*?>)(.+?)(<\/a>)
Replace: '$1<span style="color:#$2;">$3</span>$4'
I aynı dosya üzerinden çalıştırmak, bir <span>
içinde bir <span>
ekler ve dağınık alır dışında harika çalışıyor.
Hedef Örnek:
We want it to ignore this:
<a href="http://mywebiste.com/link1.html" target="_blank" style="color:#bfbcba; text-decoration:underline;"><span style="color:#bfbcba;">Howdy</span></a>
But not this:
<a href="http://mywebiste.com/link1.html" target="_blank" style="color:#bfbcba; text-decoration:underline;">Howdy</a>
Or this:
<a href="http://mywebiste.com/link1.html" target="_blank" style="color:#bfbcba; text-decoration:underline;"><img src="myimg.gif" />Howdy</a>
- EDIT -
Yorum önerilen olarak PHP DOM kütüphaneyi kullanarak, bu ben şimdiye kadar ne var:
$doc = new DOMDocument();
$doc->loadHTML($input);
$tags = $doc->getElementsByTagName('a');
foreach ($tags as $tag) {
$spancount = $tag->getElementsByTagName("span")->length;
if($spancount == 0){
$element = $doc->createElement('span');
$tag->appendChild($element);
}
}
echo $doc->saveHTML();`
Orada bir yayılma bir çapa içinde olduğunu ve varsa, bu ancak, ben yayılma iç çapa özgün içeriğini almak için nasıl anlamaya henüz, çapa içine bir yayılma ekler eğer şu anda algılar.