小编Cha*_*ois的帖子

PHP cURL - 获取剩余下载时间

我提供我的用户使用远程上传直接从我的服务器上下载内容(例如)他们自己的服务器而不是本地上传.为此,我正在使用cURL.现在我想得到cURL需要完成下载的剩余时间(比特率也可以).

有没有办法可以返回cURL需要通过PHP curl模块完成下载的剩余时间,或者我是否需要运行命令行界面并以某种方式将输出放在一个文件中然后从那里读取(因为PHP块执行什么时候使用shell_exec()exec())?

我已经得到了预期下载的字节数和已下载的curl数.到目前为止,这是相关的代码:

function write_progress($ch, $original_size, $current_size, $os_up, $cs_up) {
    global $anitube, $cache;

    $cache->write("webupload-progress-".$anitube->input['inputname'], serialize(array("total" => $original_size, "loaded" => $current_size)));
}

ini_set('max_execution_time', '0');
$handle_file = "/tmp/file-".$anitube->generate(20).".tmp";
if(DIRECTORY_SEPARATOR == "\\") {
    $handle_file = IN_DIR.$handle_file;
}

$file = fopen($handle_file, "w+");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, urldecode(trim($anitube->input['filename'])));
curl_setopt($ch, CURLOPT_FILE, $file);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, "write_progress");
if($anitube->users['ip'] == "127.0.0.1") {
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
}

$data = curl_exec($ch);
if(curl_errno($ch) > …
Run Code Online (Sandbox Code Playgroud)

php curl

8
推荐指数
1
解决办法
1015
查看次数

MySQL和PHP的多个查询性能

我问你一些建议.我有一个网站,我有视频,用户可以给他们竖起大拇指和拇指向下.他们保存在一张桌子里.目前我有三个SQL查询来获取竖起大拇指的数量,拇指向下的数量以及登录用户给出的内容(如果他这样做).

而现在我正在考虑提高性能,但我不知道什么是更好的,因为我想保持查询的数量.

方法1)保持这三个查询:

SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '1' LIMIT 1
SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '0' LIMIT 1
SELECT * FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `uid` = '1' LIMIT 1
Run Code Online (Sandbox Code Playgroud)

方法2)使用子查询进行一次查询(类似的东西(它在这里不起作用)):

SELECT *, (SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' AND `thumb` = '1' LIMIT 1) as thumbsups, (SELECT COUNT(*) as rowcount FROM `videolikes` WHERE `vid` = 'gt6w_RZfs5yx' …
Run Code Online (Sandbox Code Playgroud)

php mysql query-optimization database-performance

2
推荐指数
1
解决办法
122
查看次数

PHP 7,致命错误:常量表达式包含无效操作

我正在构建一个网站的登录序列,我正在为MySQL和PHP7的学校项目设计(我比较新).我需要一些帮助来理解这个错误的含义以及我如何解决这个问题:

致命错误:常量表达式在第19行的C:\ Abyss Web Server\htdocs\login_tools.php中包含无效操作

以下是函数的代码行,该函数确保登录成功并检索关联的用户详细信息:

function validate($dbc, $email=",$pwd=")
Run Code Online (Sandbox Code Playgroud)

php mysql php-7

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

PHP - isset对非现有数组键返回true

我以为我知道关于php的一切,直到我碰到这个:

$foo = 'hello';
isset($foo['a']);     // returns false - OK
isset($foo['a']['b']; // returns false - OK
isset($foo['a'][0]);  // returns true! WTF?!
Run Code Online (Sandbox Code Playgroud)

有人能解释一下第4行的结果吗?用PHP 5.5.36测试.

php php-5.5

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