小编Ali*_*xel的帖子

PHP中的异步HTTP请求

是否有任何理智的方式在PHP中异步发出HTTP请求而不丢弃响应?即,类似于AJAX的东西 - PHP脚本启动请求,它是自己的事情,然后,当收到响应时,回调函数/方法或其他脚本处理响应.

我想到了一种方法 - 为每个请求生成一个新的php进程和另一个脚本 - 第二个脚本执行请求,等待响应然后解析数据并做任何应该做的事情,而原始脚本继续生成新进程.不过,我对这种情况下的性能表示怀疑 - 每次必须创建一个新进程必然会有一些性能损失.

php asynchronous http request curl-multi

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

__VIEWSTATE包含什么?

我很抱歉可能会提出这样一个基本问题,但在ASP.NET网站上__VIEWSTATE输入字段代表什么?

另外,有没有办法计算它的值(基于其他表单字段的值)?

编辑

我理解__VIEWSTATE,顾名思义,维护网页中表单字段值的值,但我感兴趣的是如何生成这种状态(字符串).如果我base64_decode任何__VIEWSTATE字符串,我看到的是一堆神秘的HTML.

有没有办法更好地了解究竟是什么编码?我已经搜索了过去的问题,我发现了一些可以像这样做的工具,但不幸的是它似乎没有用.

我问这个的原因是因为我访问了一个Web服务API,它为我提供了我需要使用的大部分值.但是,我还需要一个仅在表单的最后一个阶段可用的附加字段.我已经联系了网络服务提供商但不幸的是他们不会很快更新他们的API.我希望我可以使用Web服务数据预填充表单初始值,然后计算__VIEWSTATE以访问在表单的最后一个阶段显示的最后一个字段,这将使整个过程更快.

不确定我是否让自己清楚了......

forms asp.net viewstate hidden-field

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

i18n验证

Think Global,Act Local

这就是他们告诉你的,但是在我开发的所有时间里,我总是看到谷歌,微软,甲骨文等大公司以局部方式进行验证:他们知道我来自哪个国家,所以他们会尝试验证我的电话号码,邮政编码和其他详细信息,例如银行帐号以及我所在国家的正确验证方法.昨天我报名参加谷歌结账,他们甚至向我展示了我国的邮政编码格式的一些例子!

所以我的问题是,他们是如何做到的?我知道他们有成千上万的员工,但我发现很难相信他们都必须重新改造井.美国有无数的验证方法,但世界其他地方呢?我还没有看到一个开源的体面图书馆(除了非常不完整和过时的PEAR尝试之外)在各个国家的各个共同方面进行验证,例如:

  • 民事身份证
  • 税号
  • SSN(社会安全号码)
  • BBAN(基本银行账号)
  • 传真,电话和手机号码
  • 邮政编码
  • 车牌
  • 钞票序列号
  • 等等...

有什么隐藏的资源我不知道吗?

php language-agnostic validation localization internationalization

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

在PHP中,如何生成一个大的伪随机数?

我正在寻找一种用PHP 生成一个随机数的方法,例如:

mt_rand($lower, $upper);
Run Code Online (Sandbox Code Playgroud)

我看到的距离越近gmp_random()但它不允许我指定下边界和上边界只有每个肢体的位数(我不知道它是什么).

编辑:Axsuuls答案似乎非常接近我想要的,非常类似于gmp_random,但在一个场景中似乎只有一个缺陷.

假设我不想在两者之间得到一个随机数:

  • 1225468798745475454898787465154

和:

  • 1225468798745475454898787465200

因此,如果函数名为BigRandomNumber():

BigRandomNumber($length = 31);
Run Code Online (Sandbox Code Playgroud)

这很容易返回超出指定边界的9999999999999999999999999999999.

如何使用最小/最大边界而不是长度值?

BigRandomNumber('1225468798745475454898787465154', '1225468798745475454898787465200');
Run Code Online (Sandbox Code Playgroud)

这应该返回1225468798745475454898787465 [154 .. 200]之间的随机数.

作为参考,我相信解决方案可能必须使用此问题中提供功能.

编辑:上面的帖子被删除了,这里是:

function compare($number1, $operator, $number2) {
  $x = bccomp($number1, $number2);

  switch($operator) {
    case '<':
      return -1===$x;
    case '>':
      return 1===$x;
    case '=':
    case '==':
    case '===':
      return 0===$x;
    case '!=':
    case '!==':
    case '<>':
      return 0!==$x;
  }
}
Run Code Online (Sandbox Code Playgroud)

php random gmp bcmath

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

将PHP/GD包装器移植到Imagick的问题

我最近发现,与GD相比,Imagick可以支持颜色配置文件,从而产生质量更好的图像(有关更多详细信息,请参阅此问题/答案),所以我试图将我的GD包装器移植到使用Imagick类,而不是目前的GD实现如下:

function Image($input, $crop = null, $scale = null, $merge = null, $output = null, $sharp = true)
{
    if (isset($input, $output) === true)
    {
        if (is_string($input) === true)
        {
            $input = @ImageCreateFromString(@file_get_contents($input));
        }

        if (is_resource($input) === true)
        {
            $size = array(ImageSX($input), ImageSY($input));
            $crop = array_values(array_filter(explode('/', $crop), 'is_numeric'));
            $scale = array_values(array_filter(explode('*', $scale), 'is_numeric'));

            if (count($crop) == 2)
            {
                $crop = array($size[0] / $size[1], $crop[0] / $crop[1]);

                if ($crop[0] > $crop[1])
                {
                    $size[0] = round($size[1] * $crop[1]); …
Run Code Online (Sandbox Code Playgroud)

php gd image imagemagick imagick

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

音乐识别与信号处理

我想建立类似于TunaticMidomi的东西(如果你不确定他们做了什么的话就试试看)我想知道我必须使用哪些算法; 我对这些应用程序的工作原理是这样的:

  1. 有一个有几首歌的大数据库
  2. 1中的每首歌曲.降低质量/比特率(例如64kbps)并计算声音"哈希"
  3. 有你想要识别的音乐的声音/摘录
  4. 对于3中的歌曲.降低质量/比特率(再次达到64kbps)并计算声音"哈希"
  5. 如果4.声音散列在2.中的任何一个中.声音散列返回匹配的音乐

我虽然因为环境噪声和编码差异而降低了质量/比特率.

我在这里走在正确的轨道上吗?任何人都可以提供任何具体的文档或示例吗?Midori似乎甚至认识到hum's,这真是令人印象深刻!他们是怎么做到的?

声音哈希存在还是我刚刚制作的东西?如果他们这样做,我该如何计算它们?更重要的是,我如何检查是否child-hashfather-hash

我将如何使用Python(可能是内置模块)或PHP构建类似的系统

一些例子(最好是Python或PHP)将不胜感激.提前致谢!

php python audio signal-processing audio-processing

14
推荐指数
3
解决办法
8499
查看次数

在CSS中使用ems代替%有什么好处?

我理解使用ems支持静态测量(如像素点)的优势,但为什么那里的大多数CSS人员(例如,除外)更喜欢使用ems而不是%值?

css em units-of-measurement

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

Mind Map依赖关系的软件

我正在整理一些我很快将作为OSS发布的内容,我想制作一个依赖关系的地图,以便更清楚地了解整体情况.我最终用笔和纸制作了思维导图:

思维导图http://i42.tinypic.com/nn049j.jpg

这是我希望我可以更频繁地做的事情,但手动映射更大的项目太麻烦了(由于工作表的大小几乎不可能),因为我找不到任何适合我需要的思维导图软件并允许我在我想要的视觉结构中显示地图我经常单独留下思维导图,没有任何视觉表现......

任何人都可以建议一个良好的思维导图软件,允许我做上面这样的事情?到目前为止,我已经尝试过FreeMindXMind,但是它们的视觉结构太严格了,无法满足我的需求.

architecture dependencies mindmapping

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

file_get_contents()的更快替代品

目前我正在使用file_get_contents()将GET数据提交到一个站点数组,但是在执行页面时我收到此错误:

致命错误:超出最长执行时间30秒

我真正希望脚本做的就是开始加载网页,然后离开.每个网页最多可能需要5分钟才能完全加载,我不需要它完全加载.

这是我目前拥有的:

        foreach($sites as $s) //Create one line to read from a wide array
        {
                file_get_contents($s['url']); // Send to the shells
        }
Run Code Online (Sandbox Code Playgroud)

编辑:为了清除任何混淆,此脚本用于在其他服务器上启动脚本,不返回任何数据.

编辑:我现在正试图使用​​cURL来做这个技巧,通过设置一秒的超时使其发送数据然后停止.这是我的代码:

        $ch = curl_init($s['url']); //load the urls
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1); //Only send the data, don't wait.
        curl_exec($ch); //Execute
        curl_close($ch); //Close it off.
Run Code Online (Sandbox Code Playgroud)

也许我把选项设置错了.在我们发言时,我正在查看一些手册.只是给你一个更新.谢谢你们所有帮助我的人.

编辑:啊,发现了问题.我使用的是CURLOPT_CONNECTTIMEOUT而不是CURLOPT_TIMEOUT.哎呦.

但是现在,脚本没有触发.它们每个都使用ignore_user_abort(TRUE); 所以我无法理解这个问题

哈,划伤那个.现在工作.非常感谢大家

php curl file-get-contents curl-multi

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

使用phar Stream写入PharData文件

当我尝试这个:

$phar = new PharData('./phar.tar', 0, null, Phar::TAR);
$phar->addEmptyDir('test');

file_put_contents('phar://./phar.tar/test/foo.txt', 'bar');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

警告:file_put_contents(phar://./phar.tar/test/foo.txt):无法打开流:无法创建phar'./ phar.tar',文件扩展名(或组合)无法识别或目录不存在

我可以使用file_get_contents但不应该使用file_put_contents吗?


为了让事情更加怪异,我尝试了@hakre在他的评论中提出的想法并且它有效!

$phar = new PharData('./phar.tar', 0, null, Phar::TAR);
$phar->addEmptyDir('test');

if (file_exists('./phar.phar') !== true)
{
    symlink('./phar.tar', './phar.phar');
}

file_put_contents('phar://./phar.phar/test/foo.txt', 'bar');
var_dump(file_get_contents('phar://./phar.tar/test/foo.txt')); // string(3) "bar"
Run Code Online (Sandbox Code Playgroud)

php stream phar

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