我正在编写一个卷曲其他网站然后解析结果的脚本。我似乎有一些奇怪的问题,我无法理解他们来自哪里;我已经包含了我的代码中有问题的部分以及从下面返回的输出:
<?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个。
注意在代码中的任何其他位置都不使用这些变量名称。
任何想法都会非常感激。
答案 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>';
希望有所帮助