1

良い一日!

リモートアドレスから回答を得るために file_get_contents を使用し、データを提供する配列を作成するために爆発します。

このために、次のコードを使用します。

function test(){
$project_key='fg54gth5k7';
$postdata = http_build_query(
    array(
        'code' => $project_key
    )
);
$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);
$context  = stream_context_create($opts);
$result = file_get_contents('http://test.com/', false, $context);
return $result;
}

$res = test();
echo $res;

$part=explode(' ',$res);
var_dump($part);

echo $res 戻り行:

3434343 http://test.com/index.php?r=site/stepone
&temptoken=c68c0ae1cece433fe5d6f6578cc0a9b6 OK68 OK Redirect 
http://test.com/index.php?r=site/stepone&temptoken=c68c0ae1cece433fe5d6f6578cc0a9b6 0

var_dump() 配列を返す

array(5) { 
[0]=> string(8) "3434343" 
[1]=> string(0) "" 
[2]=> string(0) "" 
[3]=> string(110) "http://test.com/index.php?r=site/stepone
    &temptoken=c68c0ae1cece433fe5d6f6578cc0a9b6 OK68 OK Redirect"

[4]=> string(100) "http://test.com/index.php?
    r=site/stepone&temptoken=c68c0ae1cece433fe5d6f6578cc0a9b6 0 " 

}

間違った配列を取得する理由を教えてください。

配列は次のはずです:

array(10) { 
    [0]=> string(8) "3434343" 
    [1]=> string(0) "" 
    [2]=> string(0) "" 
    [3]=> string(110) "http://test.com/index.php?r=site/stepone
        &temptoken=c68c0ae1cece433fe5d6f6578cc0a9b6"
    [4]=> string(4) "OK68 OK Redirect"
    [5]=> string(2) "OK Redirect"
    [6]=> string(8) "Redirect"
    [7]=> string(100) "http://test.com/index.php?
        r=site/stepone&temptoken=c68c0ae1cece433fe5d6f6578cc0a9b6"
    [8]=> string(1) "0"
    [9]=> string(0) ""

エラーの場所を教えてください。

4

1 に答える 1

3

スペース文字ではなく、タブなどである可能性があります。

preg_splitdelimiter とともに使用し[\s]+ます。

\s は「空白文字」を表します。通常は [ \t\r\n] を含みます。

参考

于 2013-01-31T11:43:36.050 に答える