Ben bir CMS veritabanında saklanan kısmi HTML büyük bir miktar var.
Ben HTML geçmesi ve bir başlık var ve etiketleri içeriğine göre kendilerine bir başlık katmayan herhangi bir <a></a>
etiketler bulmak için bir yol arıyorum.
Yani <a href="somepage">some text</a>
Ben gibi görünmek için etiketini değiştirmek istiyorsanız olsaydı:
<a title="some text" href="somepage"></a>
Bazı etiketler zaten bir başlık var ve bazı çapa etiketleri aralarında bir şey var.
Şimdiye kadar php ve regex bazı ilerlemeler yapmak için idare ettik.
Ama bu sadece bir 1 ya da 0 ya görüntüler, çapa içeriğini almak mümkün görünmüyor.
<?php
$file = "test.txt";
$handle = fopen("$file", "r");
$theData = fread($handle, filesize($file));
$line = explode("\r\n", $theData);
$regex = '/^.*<a ((?!title).)*$/'; //finds all lines that don't contain an anchor with a title
$regex2 = '/<a .*><\/a>/'; //finds all lines that have nothing between the anchors
$regex3 = '/<a.*?>(.+?)<\/a>/'; //finds the contents of the anchors
foreach ($line as $lines)
{
if (!preg_match($regex2, $lines) && preg_match($regex, $lines)){
$tags = $lines;
$contents = preg_match($regex3, $tags);
$replaced = str_replace("<a ", "<a title=\"$contents\" ", $lines);
echo $replaced ."\r\n";
}
else {
echo $lines. "\r\n";
}
}
?>
Ben regex muhtemelen bu yüzden herhangi bir yardım veya alternatif önerileri büyük takdir HTML ayrıştırmak için en iyi yol değildir anlıyorum.