Search code examples
phpcurlecho

How to echo the url thats being used in curl command / How to make the returned Chinese characters readable?


  1. How could I echo the url that I use to curl data from along with the data showed?

  2. My server does not display the Chinese characters properly from this curl, How can I fix it?

function mobile_number(){

        $tel = isset($_GET['tel'])?$_GET['tel']:’';

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, 'https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=' . $tel);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $resp = curl_exec($curl);


        print_r($resp); 
    }

This the result I get back:

__GetZoneResult_ = { mts:'1357465', province:'����', catName:'�й��ƶ�', telString:'13574652375', areaVid:'30514', ispVid:'3236139', carrier:'�����ƶ�’ }

Solution

  • it's a problem with whatever you're using to view the results.

    for example, if you're using a web browser to view the results, then the problem is that you're not telling the web browser to interpret it as unicode, and your browser try to interpret it as ASCII or something, in which case the fix is to add

    header("Content-Type: text/plain;charset=utf-8"); at the top of your script.

    if you're using a terminal.. idk, maybe try using a better terminal? bash maybe?

    PS, you're vulnerable to variable injection and variable corruption on line 6 (for example the number +47123123 would be converted to 47123123, the + would be lost!) the code should be

    curl_setopt($curl, CURLOPT_URL, 'https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=' . urlencode($tel));