小编ehi*_*ime的帖子

添加到数组时,PHP命令相同吗?

只是好奇,如果这样做

$this->item['foo'] = $this->action(3);
$this->item['bar'] = $this->action(1);
$this->item['baz'] = $this->action(1);
Run Code Online (Sandbox Code Playgroud)

和做的一样

$this->item = ($this->item +
[
    'foo'  => $this->action(3),
    'bar'  => $this->action(1),
    'baz'  => $this->action(1),
]);
Run Code Online (Sandbox Code Playgroud)

如果你能解释为什么/为什么我不会感激

php arrays

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

PHP等价的Perl线?

有人可以告诉我,我是否正确吗?我正在尝试将一个相当大的perl脚本移植到OO-PHP中,并且一直停留在一些事情上,这是其中之一,如果我做得对,只需要一些确认,perl代码是:

my ($command,@args)=split(/\n/,$message);
Run Code Online (Sandbox Code Playgroud)

这与在PHP中执行此操作相同吗?

list($command, $args[]) = preg_split('/\n/', $message);
Run Code Online (Sandbox Code Playgroud)

php perl

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

Packer使用默认变量?

我一直试图弄清楚在packer中使用选项变量的可能性,我的脚本如下:

"provisioners": [{
  "type": "shell",
  "scripts": [
    "scripts/centos/5.11/puppet-{{user `config`}}.sh",
  ]
}],
"variables": {
  "config": "{{user `type`}} | slave",
} 
Run Code Online (Sandbox Code Playgroud)

一个典型的命令是:

packer build              \
    -var 'config=master'  \
    template.json
Run Code Online (Sandbox Code Playgroud)

但也能够做到以下几点:

packer build template.json # were config would default to slave
Run Code Online (Sandbox Code Playgroud)

packer vagrant

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

从Packer创建自定义Vagrantfile

我一直在试图弄清楚如何从packer创建一个自定义的vagrant文​​件,我知道在这一post-processor部分你将定义一个可以从中废弃的目录,我不明白的是,是否需要一个专门命名的文件从哪里收集数据.

"post-processors": [{
  "vagrantfile_template": "configs/vagrantfile_template",
  "type": "vagrant"
}],
Run Code Online (Sandbox Code Playgroud)

根据我的知识,上面的代码可以查看configs/vagrantfile_template,但需要在这里提供什么?我会创建一个Vagrantfile并将其放在那里,还是需要一个专门命名的Ruby文件?

ruby packer vagrant

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

bash for循环中出现意外的换行符

我在我的BASH代码中遇到换行问题,试图循环以下内容:

bash-4.3$ vboxmanage list vms
  "node1" {280482b5-3913-4019-aa9a-383f1f3131a1}
  "test_default_1419033096698_75346" {9a2f7b6b-33d8-4997-9c35-9b86f3d183b6}
Run Code Online (Sandbox Code Playgroud)

知道了,我在下面得到了意想不到的结果

for name in $(vboxmanage list vms); do
    echo "==> $name"
done

  ## Prints
  ==> "node1"
  ==> {280482b5-3913-4019-aa9a-383f1f3131a1}
  ==> "test_default_1419033096698_75346"
  ==> {9a2f7b6b-33d8-4997-9c35-9b86f3d183b6}
Run Code Online (Sandbox Code Playgroud)

我希望得到以下内容?

  ==> "node1" {280482b5-3913-4019-aa9a-383f1f3131a1}
  ==> "test_default_1419033096698_75346" {9a2f7b6b-33d8-4997-9c35-9b86f3d183b6}
Run Code Online (Sandbox Code Playgroud)

所以我试着这样做......

for name in "$(vboxmanage list vms)"; do
    echo "==> $name"
done

  ==> "node1" {280482b5-3913-4019-aa9a-383f1f3131a1}
  "test_default_1419033096698_75346" {9a2f7b6b-33d8-4997-9c35-9b86f3d183b6}
Run Code Online (Sandbox Code Playgroud)

结果如预期的那样在一条线上......

我很好奇的是为什么第一个例子这样做,我非常清楚应该用a读取多行while loop.我更为好奇为什么这样做,我对实施for解决方案不感兴趣.

bash for-loop

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

PHP $ _FILES的filter_input_array吗?

嗨,我只是想知道是否有一种方法来filter_input_array进行 $_FILES

我试过了

$ar = filter_input_array(INPUT_FILES, $args);
Run Code Online (Sandbox Code Playgroud)

但它似乎与$ _POST语法不同

$pd = filter_input_array(INPUT_POST, $args);
Run Code Online (Sandbox Code Playgroud)

快速检查常量列表后,发现它不是针对filter_input_array

所以,我应该用其他方式定义它吗?DEFINE('INPUT_FILES' $_FILES);喜欢扔在错误的filter_var_array

Warning: Constants may only evaluate to scalar values in .... Line 2
Warning: filter_input_array() expects parameter 1 to be long, string given .... Line 37
Run Code Online (Sandbox Code Playgroud)

谢谢

php post filtering

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

PHP:将1维数组扁平化为间隔开的字符串

经过多次搜索(并找到关于multidims的无尽帖子,但没有单一的dims)我想我会问这个问题.

我有一个阵列

$arr = array('foo' => 'bar');
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个输出

$str = 'foo bar';
Run Code Online (Sandbox Code Playgroud)

这必须是一个班轮,没有递归循环等等,我认为它必须是某种或那种的lambda.这个数组永远不会有多个密钥和单个值.

我认为它最终会看起来像

$arr = array('foo' => 'bar');
echo 'Authorization: '  . array_walk($arr, function ($v, $k) { echo "$k $v"; });
Run Code Online (Sandbox Code Playgroud)

不幸的是最终结果 foo barAuthorization: 1

不知道1来自哪里= P.

php arrays

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

PHP递归数组相交键触发字符串值

PHP Catchable fatal error: Argument 2 passed to NUI::recArrInterKey() must be an array, string given我当前在尝试递归地相交多维数组(灰/白列表)时收到错误。

$foo['contact']['im']['provider']由于某种我无法弄清楚的原因,它似乎在该部分上绊倒了?

这是我正在使用的白名单数组 ($array2) 示例

Array
(
    [location] => false
    [network_name] => false
    [interests] => false
    [last_name] => false
    [url] => false
    [significant_other] => false
    [network_domains] => false
    [contact] => Array
        (
            [im] => Array
                (
                    [provider] => false
                )

            [email_addresses] => false
        )

)
Run Code Online (Sandbox Code Playgroud)

以及方法

/**
 * Recursive array intersect key
 */
private static function recArrInterKey(array $array1, array $array2) 
{
    $array1 = array_intersect_key($array1, …
Run Code Online (Sandbox Code Playgroud)

php oop recursion array-intersect

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

PHP更快的素数生成器

嘿伙计们,我正试图从我的发电机中挤出更多的质数,但是在第60次运行中已达到+ - 14,000,000左右的极限值,我希望尽可能推高可能达到25-30万.关于如何完成这一壮举的任何想法?

这是我的PHP代码

<?php
$i = 2;
$primes = array();
while(true)
{
    $prime=true;
    $sqrt=floor(sqrt($i));
    foreach($primes as $num)
    {
        if($i%$num==0)
        {
            $prime=false;
            break;
        }
        if($num>$sqrt) break;
    }
    if($prime) echo "$i\n";
    $i++;
}
Run Code Online (Sandbox Code Playgroud)

这是运行它的小bash脚本

#!/bin/bash
outfile="$1.out"
`php $1 > $outfile &`
sleep 60
killall php
Run Code Online (Sandbox Code Playgroud)

编辑

这是昨晚的pcntl_forked版本只是为了看看会更快.出于一些奇怪的原因,我做得越少越好,如果是,我发现瓶颈来自gmp_strval(gmp_nextprime($start))哪个非常慢.

<?php
$primeCount = 0;
for ($i = 1; $i <= 1; ++$i) {
    $start = $i;
    $pid = pcntl_fork();

    if (!$pid) {
        while(true) echo $start = gmp_strval(gmp_nextprime($start)) . "\n";
        exit($i);
    }
} …
Run Code Online (Sandbox Code Playgroud)

php algorithm bash primes

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

以编程方式将glob添加到bash命令

如果我在bash脚本中没有满足我的参数,那么寻找一种扩展glob的方法,我不是积极的,但我认为它可能需要eval或类似的东西,但我不记得了我的头.

功能

function search ()
{
  [ 'x' == "${2}x" ] && {
    what="*"
  } || {
    what="${2}"
  }

  grep -n -Iir "${1}" "${what}"
}
Run Code Online (Sandbox Code Playgroud)

没有arg2的预期结果

grep -n -Iir 'something' *  ## ran as the normal command
Run Code Online (Sandbox Code Playgroud)

bash glob

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

标签 统计

php ×6

bash ×3

arrays ×2

packer ×2

vagrant ×2

algorithm ×1

array-intersect ×1

filtering ×1

for-loop ×1

glob ×1

oop ×1

perl ×1

post ×1

primes ×1

recursion ×1

ruby ×1