mbxngtgo
@mbxngtgo
веб программист

Как с помощью curl избежать ошибки Illegal characters found in URL?

Всем привет столкнулся с проблемой.
Хотел создать способ отправки ссылок url прямо из текстового файла в curl .
Но произошла ошибка Illegal characters found in URL . Как исправить?

Вот код

<?php
echo '<form action="" method="post" >';
echo 'Сайт';
echo '<input class="url" type="text" name="urlsite" size="10" value="';
?>

<?php
$show_info = file('mes.txt');
echo $show_info[0];
?>

<?php
echo '" />';
echo 'Описание';
echo '<input class="text" type="text" name="text" size="10" value="';
?>

<?php
echo $show_info[1];
?>

<?php
echo '" />';
echo '<input type="submit" name="Button" value="добавить" />';
echo '</form>';


if (!empty($_POST)) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $show_info[2]);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'urlsite' => $_POST['urlsite'],
        'text' => $_POST['text'],
        'Button' => 'get'
    ));
    curl_setopt($ch, CURLOPT_USERAGENT, 'MSIE 5');
    curl_setopt($ch, CURLOPT_REFERER, "http://ya.ru");
    $res = curl_exec($ch);
    if (!$res) {
        $error = curl_error($ch) . '(' . curl_errno($ch) . ')';
        echo $error;
    } else {
        if (preg_match("/\<table class\='yaResultat'(.+)\<\/table\>/isU", $res, $found)) {
            $content = $found[0];
            echo $content;
        } else {
            echo '<form></form>';
		}
	}
	curl_close($ch);
}

if (!empty($_POST)) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $show_info[3]);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array(
        'urlsite' => $_POST['urlsite'],
        'text' => $_POST['text'],
        'Button' => 'get'
    ));
    curl_setopt($ch, CURLOPT_USERAGENT, 'MSIE 5');
    curl_setopt($ch, CURLOPT_REFERER, "http://ya.ru");
    $res = curl_exec($ch);
    if (!$res) {
        $error = curl_error($ch) . '(' . curl_errno($ch) . ')';
        echo $error;
    } else {
        if (preg_match("/\<table class\='yaResultat'(.+)\<\/table\>/isU", $res, $found)) {
            $content = $found[0];
            echo $content;
        } else {
            echo '<form></form>';
		}
	}
	curl_close($ch);
}
?>


внутри файла txt храняться линки

Выглядит так

sire.ru
site2.ru

И с помощью этой команды читается код с первой строчки

<?php
echo $show_info[0];
?>

со второй строчки

<?php
echo $show_info[1];
?>

Суть в том что когда в текстовом файле только одна ссылка все проходит успешно ...А когда 2 или 3 то там уже ошибки .Притом что они написаны с новой строчки.

Ошибка вылезает следующая
Illegal characters found in URL
Как исправить помогите?
  • Вопрос задан
  • 1346 просмотров
Решения вопроса 1
@BorisKorobkov Куратор тега PHP
Web developer
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы