2017-09-28 2 views
0

Der folgende Code gibt mir einen Linktitel mit "% 20" anstelle von Leerzeichen und fügt "http: //" vor dem Titel hinzu.PHP URL Titel sieht lustig aus

"user_url" ist die Link-URL.

"Tagline" ist der Titeltext (zB "Lorem ipsum dolor sit amet, consectetur adipiscing elit ...")

Die Ausgabe lautet: "http://Lorem&20ipsum&20dolor&20sit&20amet&20consectetur&20adipiscing&20elit"

Was ich will, ist nur die sauber Text.

Irgendwelche Ratschläge?

Hier ist der Code:

<?php if(!empty($current_author_profile->user_url)) {?> 
 
<li><i class="fa fa-link"></i><a href="<?php echo esc_url($current_author_profile->user_url);?>" target="_blank" title="<?php echo esc_url($current_author_profile->tagline);?>"><?php echo docdirect_parse_url($current_author_profile->user_url);?></a></li> 
 
<?php }?>

Dank! :)

+0

Was meinst du mit Klartext –

+0

Wenn ich den Link schwebe ich will "Lorem ipsum dolor sitzen amet, consectetur adipiscing elit" nicht "http;// Lorem & 20psum & 20dolor & 20sit & 20amet & 20consectetur & 20adipiscing & 20elit " –

+0

aber ich denke, dass dieser Link mit Bindestrichen sein sollte –

Antwort

2

Es ist besser, htmlentities() zu verwenden, da der Titel zwischen doppelten Anführungszeichen maskiert werden muss, denn wenn der Text doppelte Anführungszeichen enthält, wird der Titel durchbrochen oder sogar die Funktionalität des HTML-Tags durcheinander gebracht. Siehe http://php.net/manual/en/function.htmlentities.php:

htmlentities - Wandelt alle geeigneten Zeichen in HTML-Entitäten

title="<?php echo htmlentities($current_author_profile->tagline, ENT_QUOTES | ENT_HTML5);?>" 

Ich ziehe es doppelte und einfache Anführungszeichen mit ENT_QUOTES im zweiten Parameter flags des htmlentities() -function zu zitieren. Bitte überprüfen Sie die Dokumentation Link für weitere Details der verfügbaren Flags, Codierung Parameter usw.

+0

Das ist jenseits meines Wissens, aber der Code funktioniert und ich werde dem vertrauen, was du für den Rest gesagt hast. Vielen Dank! –

2

Das ist, weil Sie URL-escaping Ihre Titel sind:

title="<?php echo $current_author_profile->tagline;?>" 

sollte funktionieren.

+0

Wie ein Charme :) Danke! –