var_dump()字符串和变量没有显示所需的结果

时间:2012-12-20 17:46:36

标签: php arrays string var-dump

我正在编写一个卷曲其他网站然后解析结果的脚本。我似乎有一些奇怪的问题,我无法理解他们来自哪里;我已经包含了我的代码中有问题的部分以及从下面返回的输出:

<?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向我展示的内容,我不希望该数组包含&#34; 108 ^ 1&#34;在它的任何地方。另外,为什么$ BookingConfirmation的var_dump会显示它是一个2386字符的字符串?它远没有那么久。另一个问题是,应该在数组中的第二个元素发生了什么? ($ bookingResults [1])该数组的最终转储显示有6个元素,但跳过#1只显示了5个。

注意在代码中的任何其他位置都不使用这些变量名称。

任何想法都会非常感激。

3 个答案:

答案 0 :(得分:5)

使用view-source,text / plain content-type,或通过命令行运行它。

<?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();
?>

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

答案 1 :(得分:1)

要按字面意思查看函数var_dump()的结果,请使用HTML's pre element

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

答案 2 :(得分:0)

print_r()与预先标记一起使用而不是var_dump()

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

希望有所帮助