PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   umwandlung (https://www.php-resource.de/forum/php-developer-forum/104870-umwandlung.html)

jhaustein 02-12-2014 18:25

umwandlung
 
hallo gemeinschaft

folgender code wird beim umsetzen von text verwendet

HTML-Code:

<?php echo htmlspecialchars_decode($searchResult['Ship']['ShipDescription'], ENT_QUOTES); ?>
nun ist es so, dass leier auch die tags ausgeschrieben werden

bsp
"ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen"

was kann ich da machen, dass der zeilenumbruch stattfindet

mermshaus 02-12-2014 21:18

Dein Wert scheint so etwa zweimal zu oft durch htmlspecialchars geschickt worden zu sein, bevor er in der Ausgabeschicht ankommt.

jhaustein 03-12-2014 09:38

wenn ich das rausnehme, dann bekomme ich diesen text

L&#xe4;nge von 179 Metern bietet die 1999 erbaute Ocean Princess bis zu 679 Passagieren ein einzigartiges Urlaubserlebnis.&lt;BR&gt;&lt;BR&gt

h3ll 03-12-2014 09:56

Wie wärs, wenn du mal testbaren Code postest?

jhaustein 03-12-2014 10:32

einen anderen code als den von oben kann ich leider nicht schicken zumal das ergebnis das gleiche waere

h3ll 03-12-2014 10:34

Na dann kann man dir nicht helfen, wenn du die notwendigen Informationen geheim hältst.

jhaustein 03-12-2014 10:40

ich habe dir doch beide ausgabewn geschickt - einmal ohne den codeteil htmlspecialchars_decode einmal mit

jhaustein 03-12-2014 11:07

ich habs nun so hinbekommen

HTML-Code:

$textn = htmlspecialchars_decode($searchResult['Ship']['ShipDescription'], ENT_QUOTES);
                                ?>
                                  <div class="description"><?php echo str_ireplace("&lt;BR&gt;", "<br/>", $textn);


mermshaus 03-12-2014 12:37

Zitat:

Zitat von jhaustein
wenn ich das rausnehme, dann bekomme ich diesen text

Ich meinte schon htmlspecialchars (beziehungsweise eine „kodierende“ Funktion) und nicht htmlspecialchars_decode (beziehungsweise eine „dekodierende“ Funktion).

Ursprünglich hast du halt einen String wie:

Code:

ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen

65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 3c 42 52 3e 3c 42
52 3e 49 6d 20 61 73 69 61 74 69 73 63 68 65 6e

(Ich setze mal die Bytes immer dazu, damit es wirklich eindeutig ist.)

Das wird dann kodiert…

PHP-Code:

$t htmlspecialchars($sENT_QUOTES'UTF-8'); 

Code:

ein einzigartiges Urlaubserlebnis.&lt;BR&gt;&lt;BR&gt;Im asiatischen

65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 26 6c 74 3b 42 52
26 67 74 3b 26 6c 74 3b 42 52 26 67 74 3b 49 6d 20 61 73 69
61 74 69 73 63 68 65 6e

…und noch mal kodiert.

PHP-Code:

$u htmlspecialchars($tENT_QUOTES'UTF-8'); 

Code:

ein einzigartiges Urlaubserlebnis.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;Im asiatischen

65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 26 61 6d 70 3b 6c
74 3b 42 52 26 61 6d 70 3b 67 74 3b 26 61 6d 70 3b 6c 74 3b
42 52 26 61 6d 70 3b 67 74 3b 49 6d 20 61 73 69 61 74 69 73
63 68 65 6e

Wenn du es dann einmal wieder dekodierst…

PHP-Code:

$v htmlspecialchars_decode($uENT_QUOTES); 

…, bist du wieder hier:

Code:

ein einzigartiges Urlaubserlebnis.&lt;BR&gt;&lt;BR&gt;Im asiatischen

65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 26 6c 74 3b 42 52
26 67 74 3b 26 6c 74 3b 42 52 26 67 74 3b 49 6d 20 61 73 69
61 74 69 73 63 68 65 6e

Und das wird im Browser wegen der kodierten Winkelklammern so dargestellt:

Code:

ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen
Du willst aber tatsächlich HTML-Code in deine Seite einfügen. Das heißt, du musst noch mal dekodieren.

PHP-Code:

$w htmlspecialchars_decode($vENT_QUOTES); 

Code:

ein einzigartiges Urlaubserlebnis.<BR><BR>Im asiatischen

65 69 6e 20 65 69 6e 7a 69 67 61 72 74 69 67 65 73 20 55 72
6c 61 75 62 73 65 72 6c 65 62 6e 69 73 2e 3c 42 52 3e 3c 42
52 3e 49 6d 20 61 73 69 61 74 69 73 63 68 65 6e

Und damit bist du wieder beim ursprünglichen String angelangt.

Also: Eine schlüssige Interpretation hier ist, dass du für deinen Anwendungsfall deine Daten zweimal zu oft kodierst.

jhaustein 03-12-2014 13:48

lieben dank für die erläuterung


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:43 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG