php, wie konvertiert man Sonderzeichen in Text?

Lesezeit: 4 Minuten

Benutzer-Avatar
Patriotische Kuh

xxxi habe the_title() das gibt in diesem Fall etwas Text zurück Blue & Whiny

Wie wir sehen, besteht das Problem darin, dass das &-Zeichen anders aussieht

wie drehe ich mich Blue & Whiny hinein Blue & Whiny ich habe versucht: htmlspecialchars_decode(the_title()), html_entity_decode(the_title()),htmlspecialchars(the_title()) und nichts.

ich möchte konvertieren & zu &

Es gibt nicht viel Code zu teilen, ich mache einfach das: <?php the_title() ?> und ich bekomme Blue &#038; Whiny. Wenn ich benutze get_the_title() es wird nichts angezeigt

Irgendwelche Ideen? Vielen Dank

bearbeiten1. Ich werde einen Code teilen:

<script type="text/javascript">
function showShareUI() {

var act = new gigya.services.socialize.UserAction();
act.setUserMessage("Check out this article.");
act.setTitle("Trends on Explore Talent - <?php  the_title(); ?>");
act.setDescription("<?php  get_the_content();  ?>");
act.setLinkBack("<?php  the_permalink();  ?>");
act.addActionLink("Check out this article", "<?php the_permalink(); ?>");

var image = {
src: 'http://xxx.com/wp-content/uploads/2011/05/BOTTOM_BANNER.jpg',
href: '<?php the_permalink();?>',
type: 'image'
}
act.addMediaItem(image);

var params = 
{
userAction: act,  // The UserAction object enfolding the newsfeed data.                                           
onError: onError,  // onError method will be summoned if an error occurs. 
onSendDone: onSendDone // onError method will be summoned after 
,showEmailButton: true
    // Gigya finishes the publishing process.
};

gigya.services.socialize.showShareUI(conf, params);
}

function onError(event) {
alert('An error has occured' + ': ' + event.errorCode + '; ' + event.errorMessage);
}

function onSendDone(event)
{
document.getElementById('status').style.color = "green";
document.getElementById('status').innerHTML = 'The newsfeed has been posted to: ' +     event.providers;
}
</script>

Ich habe alles versucht. Das fängt an mich zu ärgern…

  • Hast du es versucht html_entity_decode(the_title()) von allein? Und wenn ja, was ist das Ergebnis

    – Mick Hansen

    13. Juli 2011 um 18:37 Uhr

  • Ich habe es getan, ich habe alles separat versucht, und es wird nicht dekodiert

    – Patriotische Kuh

    13. Juli 2011 um 18:38 Uhr

  • Was Sie wollen, ist anzuzeigen Blue &#038; Whiny wie Blue & Whiny oder was anderes machen???

    – Balaniwasch

    13. Juli 2011 um 18:40 Uhr

  • Ja, ich möchte konvertieren &#038; zu &

    – Patriotische Kuh

    13. Juli 2011 um 18:41 Uhr

  • @waitinforatrain wird richtig widerhallen

    – Patriotische Kuh

    13. Juli 2011 um 18:59 Uhr

html_entity_decode() ist der richtige Weg, es zu tun.

html_entity_decode("Blue &#038; Whiny");

Wird herstellen:

Blau & weinerlich

Wenn es nicht funktioniert, vergewissern Sie sich, dass Sie kein anderes Problem haben – z. B. das Übergeben einer Zeichenfolge, die doppelt codiert ist, oder das Ausführen htmlentities() später wieder auf die Saite.

Demo: http://codepad.org/BHXGWXJi

Überprüfen Sie dies mit einer wörtlichen Zeichenfolge und var_dump() In der Ausgabe sollten Sie die decodierte Version sehen. Dann var_dump(the_title())um sicherzustellen, dass Sie tatsächlich das bestehen, was Sie glauben html_entity_decode().

html_entity_decode sollte den Trick machen. Wenn nicht, versuchen Sie, den dritten Parameter anzugeben $charset.

Etwas wie:

echo html_entity_decode(the_title(), ENT_QUOTES, 'UTF-8');

  • Diese Lösung hat bei mir funktioniert. Wenn es für zukünftige Leser hilfreich ist, hier ist meine spezifische “Disqus” -Implementierung: disqus_title='<?=addslashes(html_entity_decode(get_the_title($post->ID), ENT_QUOTES, 'UTF-8'))?> | Company Name' (json_encode() funktioniert auch anstelle von addslashesobwohl die Syntax leicht angepasst werden muss).

    – mulse

    19. Mai 2014 um 19:28 Uhr


Benutzer-Avatar
Merkator

the_title() druckt direkt den Titel, also Hinzufügen html_entity_decode() direkt drumherum geht das nicht. Sie können es jedoch mit seinem dritten Funktionsargument vom Drucken abhalten. Z.B

<?php echo html_entity_decode(the_title('', '', false)) ?>

Es gibt auch get_the_title()das den Titel nicht direkt druckt, aber im Gegensatz zu die ID des Beitrags benötigt, dessen Titel Sie möchten the_titledie den Titel des aktuellen Beitrags in druckt Die Schleife. Sie müssen also so etwas tun:

<?php echo html_entity_decode(get_the_title($post->ID)) ?>

Und eigentlich sollten Sie in der Lage sein, einfach Folgendes zu tun:

<?php echo $post->post_title ?>

Der einzige Grund, warum diese Hilfsfunktionen da sind, ist, Dinge für Sie zu maskieren und Tags und anderes Zeug hinzuzufügen. Wenn Sie nur die rohe Eingabe möchten, können Sie sie direkt ausdrucken.

Dies wird jedoch nicht alle Ihre Probleme beheben, da Sie es in einer JavaScript-Zeichenfolge wiedergeben, sodass Sie bestimmte Zeichen mit Escapezeichen versehen müssen. json_encode() sollte den Trick machen, aber siehe die Frage “Übergeben Sie einen PHP-String an eine Javascript-Variable (einschließlich Escaping von Zeilenumbrüchen)” für weitere Details.

Versuche dies:

echo(mb_convert_encoding(the_title(), "UTF-8", "HTML-ENTITIES"));

mal sehen ob das bei dir funktioniert

$convmap = array (0x0, 0xffff, 0, 0xffff);
//$str = mb_decode_numericentity (the_title(), $convmap, 'UTF-8' );
$str = mb_decode_numericentity ("&#038;", $convmap, 'UTF-8' );
echo $str;

http://www.php.net/manual/en/function.mb-decode-numericentity.php

1365600cookie-checkphp, wie konvertiert man Sonderzeichen in Text?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy