开发者

PHP: Variable not getting interpreted correctly?

开发者 https://www.devze.com 2023-03-25 19:35 出处:网络
I\'m not really sure what question to ask because I\'m not really sure what is causing it. So here\'s what is happening.....

I'm not really sure what question to ask because I'm not really sure what is causing it.

So here's what is happening.....

I have a function that starts off like this:

function core_stackoverflow_init($obj){
    $options = $obj->options;   
    $options->query = (string)$options->query;
    $options->query = "key=xxxxxxxxxxxxxx&answers=true&body=true&comments=true";

    $fp = fsockopen("api.stackoverflow.com", 80, $errno, $errstr, 30);

    if (!$fp){ 
        echo 'Could not connect to StackOverflow'; return false; 
    }

$out = "GET /1.1/".$options->resource."?".$options->query." HTTP/1.1\r\n";

When I echo $options->query for both lines 3 and 4, they echo out as the same thing, so I would think that $obj->options->query coming in should work fine. However, stackoverflow only gives me a full response back when I have line 4 in there (manually reassigning $options->query). I get a response back stackoverflow, but I don't get any comments, and if I move the &body=true, to later, I don't get the body. But if I use line 4, I get everything I'm expecting.

So it's like line 3 is being terminated or being interpreted incorrectly.

$obj is formed from a json_decode(), so I thought that maybe somehow the decode was casting it as an integer or something bizarre so that's why you see my casting the var back as a (string)....just to make sure.

I've tried urlencode() and trim to no avail.

Are there any special characters or something you can think of that I can test to debug this?

EDIT:

When var_dumping the variables mentions there is a big difference:

string(75) "body=true&answers=true&comments开发者_JAVA百科=true&key=XXXXXXXXXXXXXXXXXXXXXX"
string(63) "key=XXXXXXXXXXXXXXXXXXXXXX&answers=true&body=true&comments=true"

So I did a trim($options->query) on the first value and go the same response.

????


Alright, I figured it out. Thanks for reminding me to var_dump.

So I did a bin2hex so I could look at the actual hex codes. It turned out the input was getting turned into html_entities from the browser.

So I did an html_entity_decode and it works.

0

精彩评论

暂无评论...
验证码 换一张
取 消