Php substr[0]不工作,将不同字符返回回显字符串

Php substr[0]不工作,将不同字符返回回显字符串,php,xml,post,Php,Xml,Post,我正在使用wp_remote_post将一些信息发布到API中,如 $response = wp_remote_post( $validation_url, array( 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' =>

我正在使用wp_remote_post将一些信息发布到API中,如

$response = wp_remote_post( $validation_url, array(
                    'method' => 'POST',
                    'timeout' => 45,
                    'redirection' => 5,
                    'httpversion' => '1.0',
                    'blocking' => true,
                    'headers' => array(),
                    'body' => $fields,
                    'cookies' => array()
                    )
                    );
如果我这样做

$validationresponse = $response['body'];
echo $validationresponse;
echo substr($validationresponse, 1);
然后它正确地返回$response['body']的内容,如下所示

100Successfull Validation
但是如果我试着这么做

$validationresponse = $response['body'];
echo $validationresponse;
echo substr($validationresponse, 1);
若要返回第一个字符,则它不起作用,而是返回此

?xml version="1.0"?>

我做错了什么,有人能告诉我发生了什么吗?

正如您所写的-
echo substr($validationresponse,1)-将返回以第二个字符开头的字符串的其余部分。如果需要单个字符,可以使用-echo substr($validationresponse,1,1)。看见这就是您看到的情况吗?

如果您只想减去第一个字符,请使用:

echo $validationresponse[0];


要使代码正常工作(它返回从第二个字符开始的字符串的其余部分),您应该首先检查
$validationresponse
的长度是否为2个或更多个字符。另外,尝试使用var_dump()(使用var_dump()而不是print_r(),因为var_dump显示空值和填充)结果,而不是像引用所说的那样回显它:

Returns the extracted part of string; or FALSE on failure, or an empty string.

此外,如果有任何错误,请发布任何错误

字符串是0索引的,因此其:substr($str,0,1)用于第一个字符。请记住,字符串实际上是一个字符数组。你也可以做$str[0]
$validationresponse
不等于
100成功验证
。这里有一堆你看不到的XML。不要回显变量,而是使用
var\u dump
,将其包装在
标记中。如果您愿意,您将看到XML就在那里。或者
echo
,然后在浏览器中“查看源代码”。他想要的是第一个字符,而不是第二个tho:)噢!我的错误。然后使用echo substr($validationresponse,0,1)。失败时它也应该返回false。必须学会更仔细地阅读。:)第一部分实际上并不适用于OP的问题,他只是看到了很多文本,但提到这里并没有错。我的观点不是它没有返回第一个字符,而是它没有返回正确的字符。它不是预期的结果,而是从@DarkBee开始返回字符。为了更好地组织,我重新设计了答案:D;;;fightstarr20:编辑你们的帖子,告诉我们你们想从哪个字符串中得到什么,以及你们实际上得到了什么:因为你们知道,字符串的长度是177。添加
标题(“内容类型:文本/普通”)在var_转储之前,您将看到完整的字符串。这会告诉你它是什么样子,以及为什么你会得到你想要的东西。但输出是XML,XML在某种程度上与HTML(或者更多地与XHTML)相关,所以您的浏览器只是隐藏每个标记。您可以使用header
内容类型
,也可以只打开源代码。XML是危险的:P