HTML-t tartalmazó karakterláncban TAG-hez attributum hozzáadás.
Sziasztok
A segítségeteket szeretném kérni az alábbi esethez.
Egy karakterláncban, ami HTML elemeket is tartalmaz, bizonyos TAG-hez egy attributomot kell hozzáadni.
Az bemeneti szöveg($text) nagyon sok féle lehet ezért a RegEx-et nem akartam használni.A fenti kód részlet látszatra jól működik, de az ékezetes karakterekkel gondok vannak.
Fontos lenne hogy a szöveg többi részén semmilyen változás ne történjen.
Javaslatoknak nagyon fogok örülni :)
Dávid Andor
■ A segítségeteket szeretném kérni az alábbi esethez.
Egy karakterláncban, ami HTML elemeket is tartalmaz, bizonyos TAG-hez egy attributomot kell hozzáadni.
Az bemeneti szöveg($text) nagyon sok féle lehet ezért a RegEx-et nem akartam használni.
<html>
<head>
<!-- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-2"> -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<?php
$text = 'öÖ üÜ óÓ őŐ úÚ éÉ áÁ űŰ íÍ
<img id="kulso-no-src">
valami rendes szoveg
<img src="kamu.jpg" id="kulso-with-src">
<div>
<img id="belso-no-src">
<img src="kamu.jpg" id="belso-with-src">
<div>
itt is egy rendes szoveg
<img id="nagyon-belso-no-src">
<img src="igazi.jpg" id="nagyon-belso-with-src">
</div>
</div>'
;
echo "<pre>" . $text . '</pre>';
$doc = new DomDocument();
$doc->preserveWhiteSpace = true;
$doc->formatOutput = false;
$doc->loadHTML($text);
$nodes = $doc->getElementsByTagName('img');
foreach ($nodes as $node)
{
if(
$node->hasAttribute('src')
AND
!$node->hasAttribute('usemap')
AND
$node->getAttribute('src') == 'igazi.jpg'
)
{
$node->setAttribute('usemap', '#imagemap-6-640-480');
}
}
$result = $doc->saveHTML();
$begin = "<html><body>\n<p>";
$end = '</body></html>';
$result = substr
(
$result,
strpos($result, $begin) + strlen($begin),
-1 - strlen($end)
);
//$table = get_html_translation_table();
//$table = array_flip($table);
//$result = strtr($result, $table);
//$result = html_entity_decode($result);
echo "<pre>" . $result . '</pre>';
?>
</body>
</html>
Fontos lenne hogy a szöveg többi részén semmilyen változás ne történjen.
Javaslatoknak nagyon fogok örülni :)
Dávid Andor
UTF-8?
UTF-8
Már a windózos felhasználói nevem is "UTF-8" :)