Archívum - Okt 9, 2007 - Fórum téma
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
SESSID az URL-ben
Sziasztok!
A probléma a következő. A weboldalunkon úgy működik a session, hogy ha a browser nem képes a cookie-kat fogadni, vagy ki van kapcsolva a cookie fogadás, akkor URL-ben, illetve hidden mezőben adja át a session ID-t. Ez idáig rendben is lenne, de sajnos van nálunk olyan munkakörben valaki hogy S(earch)E(ngine)M(arketing) Manager, és problémát okoz neki, hogy a Google leindexeli olyan URL-eket, amiben "SESSID=nagyonrondahosszústring" található. :)
Azt találtam ki, hogy ha a HTTP_USER_AGENT -ben googlebot (vagy nem tudom mit küld pontosan a Google Bot) szerepel, akkor ini_set -tel bekapcsolom a session.use_only_cookies direktívát, még az oldal generálása előtt. Persze ez mindenféle teljesítmény problémát fog okozni (okos programozók itt a sessionben cache-elnek keresési eredményeket pl.), de üsse kő, kapja meg a management amire vágyik.
Szerintetek fog ez így működni, ill. van e jobb megoldás erre?
■ A probléma a következő. A weboldalunkon úgy működik a session, hogy ha a browser nem képes a cookie-kat fogadni, vagy ki van kapcsolva a cookie fogadás, akkor URL-ben, illetve hidden mezőben adja át a session ID-t. Ez idáig rendben is lenne, de sajnos van nálunk olyan munkakörben valaki hogy S(earch)E(ngine)M(arketing) Manager, és problémát okoz neki, hogy a Google leindexeli olyan URL-eket, amiben "SESSID=nagyonrondahosszústring" található. :)
Azt találtam ki, hogy ha a HTTP_USER_AGENT -ben googlebot (vagy nem tudom mit küld pontosan a Google Bot) szerepel, akkor ini_set -tel bekapcsolom a session.use_only_cookies direktívát, még az oldal generálása előtt. Persze ez mindenféle teljesítmény problémát fog okozni (okos programozók itt a sessionben cache-elnek keresési eredményeket pl.), de üsse kő, kapja meg a management amire vágyik.
Szerintetek fog ez így működni, ill. van e jobb megoldás erre?