Alexander2021

ответов0 / помог0

Не работает CURL в php

1680295766
Добрый вечер. Столкнулся с проблемой, которую не могу никак решить. Имеется такой код

<?php
ob_start();
 
echo "<pre class='updateupload'>";
echo "Загрузка ...";
 
ob_flush();
flush();
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://sites.ru/number_order.txt");
//curl_setopt($ch, CURLOPT_BUFFERSIZE,128);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progress');
curl_setopt($ch, CURLOPT_NOPROGRESS, false); // needed to make progress function work
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$html = curl_exec($ch);
curl_close($ch);
 
file_put_contents(__DIR__ . '/phpMyAdmin/templates/config/update.txt', $html);
function progress($resource,$download_size, $downloaded, $upload_size, $uploaded)
{
    if($download_size > 0)
         echo $downloaded / $download_size  * 100;
    ob_flush();
    flush();
    sleep(1); // just to see effect
}
 
echo "Завершена";
ob_flush();
flush();
echo "</pre>";
 
 
?>
Данный код отлично работает, если файл, который выводит этот код идет напрямую, то есть так: https://site.ru/update.php. При загрузке страницы весь код обрабатывается хорошо и записывает информацию верно в файл update.txt Но возникает проблема, когда я данный код перемешаю в папку на сайте и пытаюсь обработать через папку, то есть так: https://site.ru/update/update.php. На странице все также работает, выводит сообщение, что загрузка завершена, но только при открытии файла update.txt изменений нет, то есть скрипт не загрузил в него ничего. Почему CURL работает напрямую, и не работает из папки?
liris
ответов6 / помог6
1680295840
Обратите внимания на 22 строку. У вас собирается путь к файлу update.txt. Если вы перемещаете скрипт, то и этот путь у вас изменится. Вы уверены, что смотрите правильный файл (по правильному адресу)?
Alexander2021влепить жирный лайк
Alexander2021
ответов0 / помог0
1680295922
А как мне тогда указать путь именно к /phpMyAdmin/templates/config/update.txt при загрузке скрипта из папки update. Просто путь в целом идет так site.ru/public_html/phpMyAdmin/templates/config/update.txt и я никак не могу перенести этот путь в папку update, которая имеет путь site.ru/public_html/update/
влепить жирный лайк
liris
ответов6 / помог6
1680296499
Вы можете попробовать использовать переменную $_SERVER['DOCUMENT_ROOT'] вместо константы __DIR__, обычно (но не всегда) она указывает на корневую директорию сайта. https://www.php.net/manual/ru/reserved.variables.server.php
Alexander2021влепить жирный лайк
Alexander2021
ответов0 / помог0
1680296570
Спасибо. Это решило мою проблему.
влепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль