小编Eri*_*ope的帖子

PHP exec $ PATH变量缺少元素

当我在命令行上回显$ PATH时,它返回

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/MAMP/Library/bin:/usr/local/git/bin:/usr/X11/bin
Run Code Online (Sandbox Code Playgroud)

当我执行这个PHP代码

exec('echo $PATH; whoami; less /etc/paths; 2>&1')
Run Code Online (Sandbox Code Playgroud)

我明白了

string 'echo $PATH; whoami; less /etc/paths; 2>&1' (length=56)
array
  0 => string '/usr/bin:/bin:/usr/sbin:/sbin' (length=29)
  1 => string 'eric' (length=4)
  2 => string '/usr/bin' (length=8)
  3 => string '/bin' (length=4)
  4 => string '/usr/sbin' (length=9)
  5 => string '/sbin' (length=5)
  6 => string '/usr/local/bin' (length=14)
  7 => string '/Applications/MAMP/Library/bin' (length=30)
  8 => string '/usr/bin:/bin:/usr/sbin:/sbin' (length=29)
Run Code Online (Sandbox Code Playgroud)

这是在Mac OS X上.谁能告诉我为什么我的最后两个路径元素丢失了?

php bash path exec environment-variables

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

使用YAML文件作为PHPUnit(CIUnit)中的数据提供程序

我正在使用PHP CodeIgniter Framework编写应用程序.我正在尝试使用CI_Unit,通过扩展PHPUnit来测试应用程序.为了测试模型,我试图加载PHPUnit文档中定义的YAML数据提供程序,我收到一个错误.如果我捏造数据提供者对象,我会收到另一个错误.如果我提供一个vanilla PHP数组,它会按预期运行.

我究竟做错了什么?这样做的正确方法是什么?以下是我的结果:

如果我返回PHPUnit_Extensions_Database_DataSet_YamlDataSet下面的Yaml文件的对象,我得到:

数据集"客户端"无效.

如果我循环返回的对象PHPUnit_Extensions_Database_DataSet_YamlDataSet并返回:我收到此错误:

PHPUnit_Framework_Exception:既不能打开"models.php"也不能打开"models.php".在/Users/eric/pear/share/pear/PHPUnit/Util/Skeleton/Test.php第100行

如果我提供一个vanilla PHP数组,测试运行就好了.我用来运行测试的命令是:

phpunit模型

下面是我的YAML文件的示例.

Clients:
    1:
        client_id: 1
        client_information: "info number 1"
        client_key: 48fb10b15f3d44a09dc82d
    2:
        client_id: 2
        client_information: "info number 2"
        client_key: 48fb10b15f3d44addd
Run Code Online (Sandbox Code Playgroud)

我使用的是PHP 5.3,PHPUnit 3.6.10,DBUnit 1.1.2,CodeIgniter 2.1.0和与CI 2.1.0相关的CI_unit.

编辑:附件是我的models/Test.php文件:

/**
 * test_add_client
 * @dataProvider add_client_provider
 */
public function test_add_client($client_id,$company_id,$software_id,$client_information,$client_key)
{
    $data = array('software_id' => $software_id,
                  'client_information' => $client_information,
                  'client_key'         => $client_key);
    try {
        $id = $this->_m->add_client($company_id,$data);
        $this->assertEquals(true, is_int($id));
    } catch (Exception $e){
        $this->assertEquals(true,false);
    }
}

public …
Run Code Online (Sandbox Code Playgroud)

php phpunit yaml codeigniter

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

选择具有重复数据的行

我有一些MySQL表需要删除冗余数据.例如:

 id email            date       data...
 1  email1@gmail.com 2012-01-01 my_data
 2  email2@gmail.com 2012-01-01 my_data
 3  email1@gmail.com 2012-01-02 my_data
 4  email1@gmail.com 2012-01-02 my_data   (redundant)
 5  email2@gmail.com 2012-01-02 my_data
Run Code Online (Sandbox Code Playgroud)

我需要删除冗余行,但我想首先选择它们.我在StackOverflow上找到了这个,但它需要电子邮件地址

SELECT * 
FROM `my_table`
WHERE `id` IN (SELECT `id` 
               FROM `my_table` 
               where `email` = 'email1@gmail.com' 
               group by `date` 
               HAVING count(*) > 1)
Run Code Online (Sandbox Code Playgroud)

我可以像上面那样使用什么查询,在嵌入式查询中不使用WHERE限定符,这样我就可以完成所有电子邮件地址了?

查询可以是SELECT查询.我不介意在PHPMyAdmin中手动删除行.

mysql sql select join

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

在Perforce Depot中的两个区域之间复制目录

我有两个方面:

//depot/path/to/area1/...
//depot/another/path/to/area2/...
Run Code Online (Sandbox Code Playgroud)

我在这两个领域工作,需要来回复制这两个领域的文件.我假设了一个

p4 copy //depot/path/to/area1/... //depot/another/path/to/area2
Run Code Online (Sandbox Code Playgroud)

会这样做,但当我在第二个区域"p4同步"没有下载.我检查了p4v,但在更改列表中没有看到任何内容.

有谁知道如何做到这一点?

*是的我知道我不应该在两个方面拥有相同的文件,但这是我无法控制的.

perforce copy

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

标签 统计

php ×2

bash ×1

codeigniter ×1

copy ×1

environment-variables ×1

exec ×1

join ×1

mysql ×1

path ×1

perforce ×1

phpunit ×1

select ×1

sql ×1

yaml ×1