如何从PHP中删除CURL中的额外符号?

时间:2013-07-17 12:44:31

标签: php curl

我对套接字有简单的CURL请求,它返回进程pid。问题是,有一些额外的字符/符号是看不见的。我的代码是:

for ($i = 0; $i < 3; $i++ ) {
    $ch = curl_init($server);

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, '<ping></ping>');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 400);

    $output = array(
        'result' => curl_exec($ch),
        'info' => curl_getinfo($ch),
        'error' => curl_error($ch)
    );

    curl_close($ch);

    var_dump($output['result']);
    var_dump(trim($output['result']));
    var_dump($pid);
    echo "----------------\n";

    if (trim($output['result']) == $pid)
        die('TRUE');

    sleep(2);
}


die('FALSE');

输出如下:

  

bool(false)
string(0)“”
字符串(5)
“14262”
  ----------------
string(7)“14262”
字符串(7)“14262”
字符串(5)“14262”<登记/>   ----------------
string(7)“14262”
字符串(7)“14262”
字符串(5)“14262”<登记/>   ----------------
假的

2 个答案:

答案 0 :(得分:0)

尝试使用。

if (strcmp(trim($output['result']), $pid) == 0)
    die('TRUE');

答案 1 :(得分:0)

使用preg替换替换除数字之外的所有其他字符,然后转换为整数

$output['result']) = intval(trim(preg_replace('/[^0-9]+/', '', $output['result']))));

[^0-9]+表示除了数字

之外的任何内容