Этот код не работает на сервере. Но он работает с моим localhost (xampp)
$url = file_get_contents('http://www.site.com/'); $xhtml='|<tr style="background-color:#dddddd;"> <td class="odd" align="left">(.+?)</td><td class="odd">(.+?)</td> </tr>|i'; preg_match_all($xhtml,$url,$score); array_shift($score); echo"<pre>"; print_r($score); echo"</pre>";
Он печатает другие баллы, когда я меняю код следующим образом. Потому что есть две строки, подобные этой. Он имеет одинаковые коды. к примеру, код работает на сервере.
$xhtml='|<td class="odd" align="left">(.+?)</td><td class="odd">(.+?)</td>|i';
Мне нужно взять эти два значения между кодом.
allow_url_fopen = on
Попробуйте эту функцию вместо file_get_contents ():
<?php function curl_get_contents($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); return $data; }
Его можно использовать так же, как file_get_contents (), но использует cURL.
Установите cURL на Ubuntu (или другую unix-подобную операционную систему с aptitude):
sudo apt-get install php5-curl sudo /etc/init.d/apache2 restart
См. Также cURL
Вы должны разрешить
allow_url_fopen
в вашем конфигурационном файле php.ini. Некоторые хосты запрещают это для обеспечения безопасности
Я знаю, что эта тема старая, но я должен был понять это самостоятельно и понять, что это поможет кому-то позже.
Как сказано выше:
Тебе нужно:
разрешить url fopen разрешить URL-адрес
Если вы используете CURL, вам нужно удлинение завитка
Если вы являетесь файловым_компонентом https: //, я считаю, вам также нужен модуль apache ssl, а также расширение openssl php.
Без OpenSSL и SSL-модуля, делающего файл_get_contents на графике facebook (очевидно, https: //), он возвратил ошибку «Нет файла».
Также проверьте, есть ли у вас: allow_url_include On
И убедитесь, что нет проблем с правами на доступ к сети, например, 403 Forbidden .