相关疑难解决方法(0)

cURL下载PHP的进度

我对cURL很新,所以我几个小时都在努力解决这个问题.我正在尝试使用cURL在iframe中下载网站的源代码,并在加载时显示已加载了多少内容.到目前为止,我已经成功下载了源代码而没有显示加载进度.你能解释一下如何显示下载进度吗?如果没有cURL,我会逐字节读取文件,并将下载的字节总数除以文件的总大小.如何在cURL中完成这项工作,因为它从整体上读取了源代码?(至少我认为这是唯一的方法,不确定)这是我到目前为止所得到的:

/* Download source */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $adress);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$html = curl_exec($ch);
curl_close($ch); 
Run Code Online (Sandbox Code Playgroud)

php curl

15
推荐指数
2
解决办法
2万
查看次数

使用套接字时,pcntl_signal 函数未被命中且 CTRL+C 不起作用

我有一个简单的 PHP 脚本,我想从终端运行它,并且能够处理信号代码。该脚本创建 TCP 服务器并处理连接。不知道为什么,但我无法让信号处理工作:

<?php
declare(ticks = 1);

// Register shutdown command.
pcntl_signal(SIGINT, function ($sig) {
  echo 'Exiting with signal: ' . $sig;
  global $sock;
  global $client;
  socket_close($sock);
  socket_close($client);
  exit(1);
});

$address = '127.0.0.1';
$port = 1234;

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($sock, $address, $port) or die('Could not bind to address.');
socket_listen($sock);

while (TRUE) {
  $client = socket_accept($sock);
  if ($client) {
    $input = socket_read($client, 1024000);
    socket_write($client, var_export($input, TRUE));
    socket_write($client, 'End of data transmission.');
    socket_close($client);
  }
  usleep(100);
}
Run Code Online (Sandbox Code Playgroud)

CTRL+C 不会终止应用程序或调用函数。 …

php pcntl

3
推荐指数
1
解决办法
1878
查看次数

标签 统计

php ×2

curl ×1

pcntl ×1