0

我在我的网站上使用货币代码。具有以下内容:

<?php
$contents = file_get_contents('http://www.tcmb.gov.tr/kurlar/today.html'); 
$contents = iconv("windows-1254" , "utf8" , $contents);

$dollar = preg_match('~ABD DOLARI\s+(.+?)\s+(.+?)\s+~i', $contents, $matches) ? array('buying' => $matches[1], 'selling' => $matches[2]) : ''; 
$euro = preg_match('~EURO\s+(.+?)\s+(.+?)\s+~i', $contents, $matches) ? array('buying' => $matches[1], 'selling' => $matches[2]) : ''; 
$gbp = preg_match('~İNGİLİZ STERLİNİ\s+(.+?)\s+(.+?)\s+~i', $contents, $matches) ? array('buying' => $matches[1], 'selling' => $matches[2]) : ''; 
$chf = preg_match('~İSVİÇRE FRANGI\s+(.+?)\s+(.+?)\s+~i', $contents, $matches) ? array('buying' => $matches[1], 'selling' => $matches[2]) : ''; 

echo ' 
    <table class="form" style="background:#fff;width:300px;margin-left:14px;"> 
        <tr style="border-bottom:1px solid #e4e4e4;">
        ..

但今天我的网站出现错误:

Warning: eval() (/var/www/vhosts/mysite.com/httpdocs/modules/php/php.module(80) : eval()'d code dosyasının 2 satırı) içinde file_get_contents() [function.file-get-contents]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0.

我确实向我的托管支持询问了这个问题,他们说:

“不要使用 fopen 选项,请使用 'fsockopen'” 但我不知道我该怎么做?

请帮助我。谢谢。

4

1 回答 1

1

那就改用curl吧。file_get_contents从远程服务器替换的功能是:

function get_web_page( $url ) {
    $options = array(
    CURLOPT_RETURNTRANSFER => true,     // return web page
    CURLOPT_HEADER         => false,    // don't return headers
    CURLOPT_FOLLOWLOCATION => true,     // follow redirects
    CURLOPT_ENCODING       => "",       // handle all encodings
    CURLOPT_USERAGENT      => "spider", // who am i
    CURLOPT_AUTOREFERER    => true,     // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
    CURLOPT_TIMEOUT        => 120,      // timeout on response
    CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
    );

    $ch      = curl_init( $url );
    curl_setopt_array( $ch, $options );
    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg  = curl_error( $ch );
    $header  = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;
        //If you want error information, 'return $header;' instead.
    return $content;
}

从那里改变$contents = file_get_contents('http://www.tcmb.gov.tr/kurlar/today.html');$contents = get_web_page('http://www.tcmb.gov.tr/kurlar/today.html');

于 2012-10-16T16:33:34.520 回答