小编Kit*_*Kit的帖子

检测 PHP 中的 cURL 超时

我试图检测 cURL 请求何时超时。如果这有区别,我正在使用 curl_multi_exec 吗?

curl_errno() 的输出为 0,这表明它是成功的。但是 curl_error() 的输出是:

操作在 1435 毫秒后超时,收到 -1 个字节中的 0 个

任何想法为什么错误代码是好的,但错误消息存在?我希望超时的错误代码为 28。

另外,有什么我可以在 curl_getinfo() 中检查超时的吗?

我使用的是 PHP 5.4.4/cURL 7.24.0。

编辑 1 - 示例代码:

$mh = curl_multi_init();
curl_multi_add_handle($mh,$a);
curl_multi_add_handle($mh,$b);
curl_multi_add_handle($mh,...);

do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) == -1) usleep(100);
    do { $mrc = curl_multi_exec($mh, $active); }
    while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
Run Code Online (Sandbox Code Playgroud)

php curl

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

imap_fetchbody - 编码的正文错误

我正在尝试使用以下方法获取电子邮件正文的特定部分:

$message = imap_fetchbody ($imap_stream,$n,1);
Run Code Online (Sandbox Code Playgroud)

这适用于使用Outlook,Hotmail,Yahoo等发送的电子邮件.但是当我尝试获取从Blackberry或Andriod设备发送的电子邮件的正文时,邮件被编码和加扰,例如:

xmb250IHN0eWxlPSdjb2xvcjojRjk3MWIxMDNiMTEyYjExOGI0N2I1MWI1
Run Code Online (Sandbox Code Playgroud)

虽然正文是编码的,但标题很好.如何解码从Android或Blackberry设备发送的电子邮件的邮件正文?

谢谢,

克里斯.

php android imap

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

FFMpeg在命令行中工作但在PHP中没有使用exec();

我正在使用FFMpeg来隐藏视频,它在命令行中工作正常.我使用以下命令:

ffmpeg -i input.mpg  -vcodec libx264 -b 819200 -s 100x100 -g 15 -bf 3 -b_strategy 1 -coder 1 -qmin 10 -qmax 51 -sc_threshold 40 -flags +loop -cmp +chroma -me_range 16 -me_method hex -subq 5 -i_qfactor 0.71 -qcomp 0.6 -qdiff 4 -directpred 1 -flags2 +fastpskip -dts_delta_threshold 1 -acodec libfaac -ab 48000 output.m4v
Run Code Online (Sandbox Code Playgroud)

但是,当我使用PHP exec()运行命令时,输出视频未正确编码并被扭曲和裁剪.我在PHP中使用以下内容:

$output = exec($cmd . ' 2>&1', $output, $return);
Run Code Online (Sandbox Code Playgroud)

$ output返回'0'成功代码.

有没有人有什么建议?

谢谢.

php command-line ffmpeg exec

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

PHP命令行php.ini路径错误

我试图在命令行上运行一些PHP页面但是遇到了一些mysql和其他PHP扩展的问题.

运行php --ini产生以下输出:

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         (none)
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
Run Code Online (Sandbox Code Playgroud)

当我在命令行上运行php时,它无法找到我的php.ini文件.这是因为路径不正确.我的php.ini实际上位于/etc/php.ini我的phpinfo();文件中.PHP在浏览器中运行良好.

如何更改命令行PHP的php.ini文件的路径?

我正在运行Apache2(CentOS-5.5)和PHP 5.2.6.

php command-line

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

HTML5视频错误 - Internet Explorer 9

我正在尝试使用html5视频标记在IE9中播放.m4v视频.当我从远程位置播放视频时,它工作正常:

<video src="http://www.jplayer.org/video/m4v/Big_Buck_Bunny_Trailer_480x270_h264aac.m4v" controls="controls">
</video>
Run Code Online (Sandbox Code Playgroud)

但是当我想从我的服务器上播放时......

<video src="Big_Buck_Bunny_Trailer_480x270_h264aac.m4v" controls="controls">
</video> 
Run Code Online (Sandbox Code Playgroud)

...它仅适用于Chrome,而不适用于IE9.

当我的服务器上有什么可能导致视频无法播放?

非常感谢,

克里斯

html5-video internet-explorer-9

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

使用Facebook Graph API和HybridAuth获取朋友位置

问题

我想friends_location从Facebok Graph API中获取.我正在使用HybridAuth框架访问API .我如何返回朋友的位置/家乡等?

我的应用权限

我为我的应用设置了以下权限:

friends_about_me,friends_location,friends_hometown,user_location,email,user_birthday,offline_access,user_hometown

这是用户在Facebook上看到的权限请求屏幕: Facebook权限屏幕

我曾经尝试过什么

我尝试了以下方法来获取朋友的详细信息:

HybridAuth: $hybrid->getUserContacts();

原生API: $hybrid->api()->api('/me/friends');

两者都返回以下格式而没有朋友的位置:

{"identifier": "12345678","displayName": "Joe Smith",},

我也看到了这个问题,但我已经friends_about_me在我的请求中包含了许可.

php facebook hybridauthprovider facebook-graph-api

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