2009-11-09 3 views
0

Мы пытаемся автоматически заполнить форму, которая имеет текстовую область.Чтобы автоматически заполнить текстовую область, используя php curl

<textarea name="myarea"></textarea> 

Мы можем сделать это с помощью curl, однако он принимает только часть текста ввода. Если содержимое слишком велико, оно ничего не принимает. Нет ограничений относительно количества символов в текстовой области.

$area['myarea']=>"a large html code.................." 
curl_setopt($ch,CURL_POSTFIELDS,$area); 
curl_execute(); 

Пожалуйста, предложите решение.

+0

Что именно проблема? Насколько велик объем вашего дела? Можете ли вы опубликовать конкретные примеры? Что произойдет, если вы разместите большие данные? Есть ли сообщения об ошибках? –

+0

Насколько велик объем? Можете ли вы разместить такой же объем данных, если используете веб-страницу в браузере? Возможно, вы попали в post_max_size сервера – NeilCrosby

+0

. Проблема в том, что если есть 2-3 строки текста ввода, то он работает правильно, если есть 4-5 строк, тогда ничего не принимается, сообщений об ошибках нет. На сервере нет такого максимального размера. – Aditya

ответ

0

Вы уверены, что выбрали параметр правильно? Для этого используйте urlencode(). Вот пример:

<?php 
$url = 'http://localhost/'; 

$fields = array (
    'param1' => 'val1', 
    'param2' => 'val2' 
); 

$qry = ''; 
foreach ($fields as $key => $value) { 
    $qry .= $key . '=' . urlencode($value) . '&'; 
} 
$qry = rtrim($qry, '&'); 

// Alternatively, you can also use $qry = http_build_query($fields, ''); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $qry); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch); 

curl_close($ch); 

var_dump($result); 
?> 

Если вы хотите проверить, что запрос был отправлен должным образом, я бы рекомендовал netcat. Просто установите URL в http://localhost:3333/, а затем выполнить Netcat с помощью: $ н.д. -l -p 3333

Как и ожидалось, запрос выглядит следующим образом: POST/HTTP/1.1 Хост: локальный: 3333 Accept: / Content-Length: 23 Content-Type: применение/х-WWW-форм-urlencoded

param1=val1&param2=val2 
Смежные вопросы