小编Tim*_*rst的帖子

Java Runtime exec()无法正确转义字符

这可能已经在之前得到了回答,但那是关于unicode的,我不认为这是unicode(它是ASCII,所以......).

当我在终端中执行此操作时,没有任何问题

vboxmanage setextradata "Test Machine" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
Run Code Online (Sandbox Code Playgroud)

但是当我在Java中使用以下内容时

Runtime.getRuntime().exec("vboxmanage setextradata \"Test Machine\" \"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort\" 2222");
Run Code Online (Sandbox Code Playgroud)

它返回一个错误:unregistered vm'"TestMachine"'

对于像Test\Machine这样的带有空格的参数也是如此,那么它就不会逃避空间.

现在我认为这与字符编码有关,但我没有看到任何设置o_O的选项

java escaping exec runtime.exec character-encoding

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

Mockery为多个调用指定预期参数

我试图模拟一个对象,该对象获得两个相同函数但具有不同参数的调用.为多个调用返回不同的返回值非常简单但我无法在任何地方找到如何使用参数验证来执行此操作.

我试过了:

$this->eventDispatcher
    ->shouldReceive('dispatch')
    ->twice()
    ->with(Events::SELECT,\Mockery::type('\Not\Really\A\Namespace\Event'))
    ->with(Events::ACTIVITY,\Mockery::type('\Not\Really\A\Namespace\Event');
Run Code Online (Sandbox Code Playgroud)

$this->eventDispatcher
        ->shouldReceive('dispatch')
        ->twice()
        ->with(
            [Events::SELECT,\Mockery::type('\Not\Really\A\Namespace\Event')],
            [Events::ACTIVITY,\Mockery::type('\Not\Really\A\Namespace\Event')]
        );
Run Code Online (Sandbox Code Playgroud)

但他们工作.

从输出PHPUnit给我看起来我似乎得到一个数组?

php phpunit mocking symfony mockery

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

curl_close():不是有效的cURL句柄资源......但是为什么?

我正在创建一个PHP类,使用CURL处理一些流量,一切都很好(除了cookie,但嘿,这是另一回事).有一点不起作用的是curl_close()函数虽然我不知道为什么......

$curlSession = &$tamperCurl->getCURLSession();

var_dump($curlSession);
curl_close($curlSession);
die();
Run Code Online (Sandbox Code Playgroud)

我以前称为curl_exec(),一切都很完美.这给我的输出是:type(6)类型(curl)
警告:curl_close():6不是第58行的filename.php中的有效cURL句柄资源

有人知道为什么会这样吗?(var_dump说它显然是一个卷曲会话).

加成:

由于版权问题,我不能发布整个TamperData类atm(稍后将是GPL).

我把它简化为:

$tamperCurl = new TamperCurl('test.xml');
echo var_dump($tamperCurl->getCURLSession());
curl_close($tamperCurl->getCURLSession());
die();
Run Code Online (Sandbox Code Playgroud)

TamperCurl的构造函数是这样的:

public function __construct($xmlFilePath, $options=null)    
{
    if($options != null) $this->setOptions($options);

    $this->headerCounter = 0;
    $this->setXMLHeader($xmlFilePath);
    $this->init();
}

public function init($reuseConnection=false,$resetSettings=null)
{
    $this->curlSession = curl_init();
}
Run Code Online (Sandbox Code Playgroud)

同样的输出:类型的资源(8)(curl)PHP警告:curl_close():8不是第58行的TamperCurl.php中的有效cURL句柄资源

php resources curl

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

一个PHP正则表达式从代码文件中提取php函数

我正在尝试使用PHP正则表达式从php源代码中提取函数.到目前为止,我使用递归正则表达式来提取{}之间的所有内容,但它也匹配像if语句之类的东西.当我使用类似的东西:

preg_match_all("/(function .*\(.*\))({([^{}]+|(?R))*})/", $data, $matches);
Run Code Online (Sandbox Code Playgroud)

当文件中有多个函数时,它不起作用(可能是因为它在递归中也使用了'function'部分).

有没有办法做到这一点?

示例文件:

<?php
if($useless)
{
  echo "i don't want this";
}

function bla($wut)
{
  echo "i do want this";
}
?>
Run Code Online (Sandbox Code Playgroud)

谢谢

php regex static-analysis function

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