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 扩展,否则会更加困难。

<?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 回答