0

iframe があります: http://www.vantagewire.com/quotes_clients.php?ticker=THG:CA&chscale=1m&stylesheet=http://www.vantagewire.com/_resources/app/general/quotetab_chart_small_hosted.css

これをサイトに埋め込みたいのですが、一部のユーザーはフランス語で表示され、英語で表示されます。

次のようなコードで iframe 出力を制御したいと思います。

 if(language==en){
   iframe here which is english form
 }
 if(language==fr){
   iframe here which is french form
 }

または、上記のリンクを私が制御できるフランス語とenにする方法を教えてください。

ありがとう

4

1 に答える 1

0

言語はブラウザーのヘッダーによって送信され、ブラウザーはサーバーへの別の要求を含むスニペットを最初に取得するため、これは少し注意が必要です。そして、この「内部」リクエストのヘッダーを操作する必要があります。

これには、PHP 用の curl-extension が必要です。そうしないと、より困難になります。

<?php
function curlLang($url, $lang = 'en') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Language:' . $lang . ';q=0.5'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}
$r = (string) $_GET['r'];
if ($r == '') {
    $iframe = curlLang('http://www.vantagewire.com/quotes_clients.php?ticker=THG:CA&chscale=1m&stylesheet=http://www.vantagewire.com/_resources/app/general/quotetab_chart_small_hosted.css');
    $self = $_SERVER['PHP_SELF'] . '?r=';
    $newIframe = preg_replace('~<script.*src="(.*)".*</script>~', '<script type="text/javascript" src="' . $self . '$1"></script>', $iframe);
    echo $newIframe;
} else {
    echo curlLang($r);
}
于 2012-11-09T00:24:03.653 に答える