2016-04-06 10 views
0

文字列の&をPHPの&に変換する必要があります。私はいくつかのカスタムデータをRSSフィードに取り込む機能を持っています。問題は、アンパサンドですhttp://google.com?something=here&somethingelse=here&somethingelse=therePHPの文字列で '&'を '&'に置き換えてください。

のようになりますURLがフィードに表示され、&に変換されていない私は、フィードを取得するためにはSimplePieを使用しようとすると、この場合には、それはエラーにThis XML document is invalid, likely due to invalid characters. XML error: not well-formed (invalid token)

をスローしています

これは私がフィードにカスタムデータを追加する必要がある機能:

/** 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; 
} 

それがこのhttp://google.com?something=here&#038;somethingelse=here&#038;somethingelse=there

のような適切なXMLであるべきときには、この http://google.com?something=here&somethingelse=here&somethingelse=thereを引っ張っているはSimplePieを使用して

&をの$job_link_url変数に変換するために上記の関数を変更するにはどうすればよいですか?場合によってはリンクに&が含まれていることがあります。

答えて

2

The htmlspecialchars functionは、XMLで特別な意味を持つすべての文字を変換します。

$job_link_url = get_field('job_link', $post->ID); 
$xml_safe_job_link_url = htmlspecialchars($job_link_url, ENT_XML1 | ENT_QUOTES); 
+0

また、URLに '&'を使用する場合、PHPはあなたに['urlencode()'](http://php.net/manual/en/function.urlencode.php) 。 –

+0

シンプルなので、ありがとう! – Derek

関連する問題