Эй, у меня есть простой скрипт, который предположительно загружает 2 отдельные страницы одновременно и извлекает из них какой-то текст, однако он загружает либо родительский процесс, либо дочерний процесс в зависимости от того, что заканчивается первым, что я делать не так? Я хочу, чтобы 2 процесса работали одновременно, вот пример кода:PHP Forking Randomly Does Parent or Child Process зависит от того, что закончилось. Сначала я делаю неправильно?
<?php
$pid = pcntl_fork();
if ($pid == -1) {
die("could not fork");
}
else if($pid) {
$url = "http://www.englishpage.com/verbpage/simplepresent.html";
$readurl = file_get_contents($url);
$pattern = '#Examples(.*?)Forms#s';
preg_match($pattern, $readurl, $match);
echo "Test1:".$match[1];
}
else {
$url = "http://www.englishpage.com/verbpage/simplepresent.html";
$readurl = file_get_contents($url);
$pattern = '#Examples(.*?)Forms#s';
preg_match($pattern, $readurl, $match);
echo "Test2:".$match[1];
}
echo "<br>Finished<br>";
?>
любая помощь будет оценена!
эй, спасибо за ввод, я попробовал запустить код примера, который вы предоставили, но он выводит только «Child Done», я не получил «от отца» или «все готово». То, что я пытаюсь сделать, - это одновременно запустить как родительский, так и дочерний процессы. Целью проекта является запуск искателя, который будет захватывать по 2 страницы за раз и обрабатывать их одновременно, а не один за другим. – 2009-09-10 21:14:43
О :-(Странно ... Я работал на меня ... Ах, подождите, пытаетесь ли вы разблокировать страницу PHP, запущенную под Apache? Это может объяснить это: я попробовал свой код из командной строки ... И , на самом деле, я всегда слышал, что вскрытие от Apache было не так просто/просто/безопасно, как из командной строки ... –