POST-запрос на PHP

Статус
В этой теме нельзя размещать новые ответы.
Полноценный поток возможен, если запустить еще 1 экземпляр пхп например exec('php scriptname.php >/dev/null'), но этого хостер явно не допустит, разве что только на VDS. Пока с этим экспериментировать не довелось

На Денвере, я так понимаю, этот вариант прокатит?
Если да - можно пример кода?
 
На Денвере, я так понимаю, этот вариант прокатит?
Если да - можно пример кода?

на денвере пройдет, примеры в вложении, но только в файл index2.php ты должен вынести то, что нужно выполнять в потоке. В результате работы будет запущено 4 процеса пхп и создадутся 4 файла, смотри чтоб не было конфликта доступа к ресурсам
 

Вложения

  • example.rar
    267 байт · Просмотры: 13
Я имею ввиду полноценные потоки, а не ветвление и подобные решения.

До кому они нужны в этом контексте, полноценные потоки? Это давно уже не новость, что впрочем не мешает писать псевдомногопоточные скрипты, которые работают просто с песней :)

2ТС: Мультикурл тебе в помощь. Пример мультрикурла и н****кирующих сокетов есть здесь:
 
Я бы не советовал заморачиваться с мультикурлом, а нафоркал бы кучу процессов. Да, тормознуто, да, памяти жрет, ну так и что..

Судя по вопросу в начале темы, ТС вообще слабо разбирается, как отправлять POST запросы. А вы ему сразу мультикурл советуете, там если что-то сходу не заработает, то на дебаг полжизни уйдет, в нем черт ногу сломит.

А так, бери class Snoopy, там есть функция (метод) submit() - она отправляет POST форму. Функция простейшая - просто передаешь массив полей формы и значений и урл, на куда сабмитить, и все. Разобраться не составит труда. А потом просто плоди php-процессы. exec'ом, если exec закрыт - то через fopen(url) или вообще яваскриптом из броузера, этот метод уж точно будет работать.

Сделай себе html-страничку с пятью ифреймами, и в конце javascript refresh по таймауту. Тупо, да. Возможно этот метод самый тупой в номинации тупых методов. Но делается за 10 минут, и к результату приводит.

Но хотя все же если есть возможность юзать exec, то конечно лучше через exec..
 
Я бы не советовал заморачиваться с мультикурлом, а нафоркал бы кучу процессов. Да, тормознуто, да, памяти жрет, ну так и что..

Судя по вопросу в начале темы, ТС вообще слабо разбирается, как отправлять POST запросы. А вы ему сразу мультикурл советуете, там если что-то сходу не заработает, то на дебаг полжизни уйдет, в нем черт ногу сломит.
Что там дебагить? :) Там и 30 строк кода не будет. А вот дебагить нафорканные процессы - вот где истинное развлечение.
Да и мало их наплодить. Если какие-то подвиснут, тогда что, пусть будут?
ИМХО, телодвижений с форком в разы больше.
Если ТС пишет скрипт "на один раз", то можно и так поступить, но если он осваивает PHP, то начинать это с такого, как озвучил venetu, тупого метода, я бы не советовал.
 
Разрешите еще раз апнуть тему :)
Дело в том, что класс Snoopy не поддерживает отправку русскоязычных сообщений
Может быть есть какая-то другая модификация этого весьма полезного класса, поддерживающего русские буквы?

Если нет, тогда другой вопрос.
В принципе устраивает метод отправки POST-запроса через curl. Только вот нужно ли при этом преобразовывать данные какими-нибудь функциями типа html_entities и прочими?
 
PHP:
<?php

    $auth_data = "user=".$login."&domain=e-mail.ru&pass=".$password."&comp_pl=home_pl&cmd=quick_login&tcode=".$tcode."&force_connection=true&frames=true&on_error=show&selected_tpl=1&err_page=login&_vhost=e-mail.ru";
	$auth_data_len = strlen($auth_data);

	$header = "POST http://e-mail.ru/webmail.ok HTTP/1.0\r\n";
	$header .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n";
	$header .= "Referer: http://e-mail.ru\r\n";
	$header .= "Accept-Language: uk\r\n";
	$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
	$header .= "Proxy-Connection: Keep-Alive\r\n";
	$header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n";
	$header .= "Host: e-mail.ru\r\n";
	$header .= "Content-Length: ".$auth_data_len."\r\n";
	$header .= "Pragma: no-cache\r\n\r\n";
	$header .= $auth_data;

	$sckt = fsockopen("e-mail.ru",80);
	fputs($sckt,$header);

	while(!feof($sckt))
	{
		$serv_answer = fgets($sckt,2048);

		echo  $serv_answer;
	}

?>

Вот пример post запроса. Если я правильно понял что тебе надо )

 
В php Threading не как не сделать, ну если только дождаться php6, там вроде встроели. Зачем забивать гвозди микроскопом? Лучше использовать предназначиные для этого языки перл или руби, иль фатан.
 
Помогите реализовать "перезапуск/выполнение функций заданых при запросе" через пост\гет запрос, т.е. скрипт закончив выполнение своей работы посылает запрос сам на себя или на другой скрипт для выполнение другой задачи.
Пробывал:
<php
$post = "domin/script.php?work=start";
fopen($post, "r");
?>
есть ли другие способы ?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху