2016-04-06 14 views
0

Ich muss die & in einer Zeichenfolge zu & in PHP konvertieren. Ich habe eine Funktion, um einige benutzerdefinierte Daten in einen RSS-Feed einzuziehen. In diesem Fall ist es eine URL, die in der Beschickung ist die amperstand zu und wird & nicht konvertiert zeigt so etwas wie http://google.com?something=here&somethingelse=here&somethingelse=thereErsetzen '&' mit '&' in PHP-Zeichenfolge

Das Problem aussehen könnte, wenn ich simplepie Versuchen Sie es mit dem Futter holen ein Fehler This XML document is invalid, likely due to invalid characters. XML error: not well-formed (invalid token)

wirft diese

ist die Funktion ich habe die benutzerdefinierten Daten an den Feed hinzuzufügen:

/** Add ACF fields to RSS **/ 
add_action('rss2_item', 'cupusa_rss2_item'); 
function cupusa_rss2_item() { 
    global $post; 

    $memberEvent_link = get_field('member_event_link', $post->ID); 

    $output = ''; 
    if($post->post_type == 'jobs') { 
     $job_link_url = get_field('job_link', $post->ID); 

      $output .= "<job_link>{$job_link_url}</job_link>"; 

    } 

    if($memberEvent_link){ 
     $output .= "<member_event_link>{$memberEvent_link}</member_event_link>"; 
    } 

    echo $output; 
} 

wenn simplepie mit ihm zieht diese http://google.com?something=here&somethingelse=here&somethingelse=there wenn es richtig xml wie diese http://google.com?something=here&#038;somethingelse=here&#038;somethingelse=there

sein sollte

Also meine Frage ist, wie ändere ich meine Funktion oben, um die & zu &#038; für die $job_link_url Variable zu konvertieren? Manchmal kann der Link die & haben und manchmal nicht.

Antwort

2

The htmlspecialchars function konvertiert alle Zeichen, die eine besondere Bedeutung in XML haben.

+0

Wenn Sie '&' in einer URL verwenden möchten, bietet PHP Ihnen ['urlencode()'] (http://php.net/manual/en/function.urlencode.php) . –

+0

So einfach, danke! – Derek