3

我正在编写一个卷曲另一个站点然后解析结果的脚本。我似乎遇到了一些奇怪的问题,我不明白它们是从哪里来的;我已经包含了我的代码有问题的部分以及从下面返回的输出:

<?php
    //my code to do some logic and build the curl

    $BookingConfirmation = curl_exec($ch);

    $testString = 'a test';
    var_dump($testString);
    echo '<br />';
    echo $BookingConfirmation;
    echo '<br />';
    var_dump($BookingConfirmation);
    echo '<br />';

    $bookingResults = explode('|', $BookingConfirmation);

    var_dump($bookingResults);
    die();
?>

然后当我加载页面时,我得到这个输出:

string(6) "a test"
booking|1||4000015|23628
string(2386) " booking|1||4000015|23628 "
array(6) { 
    [0]=> string(766) " string(1526) "108^1"> booking" 
    [2]=> string(1) "1" 
    [3]=>     string(0) "" 
    [4]=> string(7) "4000015" 
    [5]=> string(81) "23628 " 
} 

因此,根据 $BookingConfirmation 向我展示的内容,我不希望数组在其中的任何位置包含“108^1”。另外,为什么 $BookingConfirmation 的 var_dump 会显示它是 2386 个字符串?它远没有那么长。另一个问题是,应该在数组中的第二个元素发生了什么?($bookingResults[1]) 该数组的最终转储显示有 6 个元素,但跳过 #1 后仅显示 5 个。

请注意,这些变量名都没有在代码的其他任何地方使用,这也可能很有用。

任何想法将不胜感激。

4

3 回答 3

6

要么使用查看源、文本/纯内容类型,要么通过命令行运行它。

<?php
    header("Content-Type: text/plain; charset=utf-8");
    //my code to do some logic and build the curl

    $BookingConfirmation = curl_exec($ch);

    $testString = 'a test';
    var_dump($testString);
    echo '<br />';
    echo $BookingConfirmation;
    echo '<br />';
    var_dump($BookingConfirmation);
    echo '<br />';

    $bookingResults = explode('|', $BookingConfirmation);

    var_dump($bookingResults);
    die();
?>

我怀疑输入 contains <,它被呈现为一些隐藏的 html 标记。我的意思是,string(2386) " booking|1||4000015|23628 ", 表示字符串有2386字节。

于 2012-12-20T17:54:02.683 回答
1

var_dump()要从字面上查看函数的结果,请使用HTML 的 pre 元素

  echo '<pre>';
  var_dump( $bookingResults );  
  echo '</pre>';
于 2012-12-20T18:07:50.157 回答
0

与 pre 标签一起使用print_r(),而不是var_dump()

echo '<pre>';
  print_r( $bookingResults );  
echo '</pre>';

希望能帮助到你

于 2015-03-05T10:21:05.710 回答