dongsu1951 2017-10-03 18:08 采纳率: 0%
浏览 169
已采纳

php curl获取json并解码然后显示,失败显示任何内容

hello my teacher has given me this weeks work and i need to get my json data from a url and display it as php using json_decode, the php json file which i access with the url displays the songs as an json array and works fine, and i copied my teachers curl example to access the url, but it fails to display anything what have i done wrong ?

Edit: i do need to enter a password and username to access the url so i changed the code as told, but still nothing displays, i changed the password and username for security but the format and length are the same

<?php
$username = "2foobar90";
$password = "123456";
// Initialise the cURL connection
$connection = curl_init();

curl_setopt($connection, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($connection, CURLOPT_USERPWD, $username . ":" . $password);  
// Specify the URL to connect to - DOUBLE CLICK link to test 
curl_setopt($connection, CURLOPT_URL, "https://edward2.solent.ac.uk/~martine/year3/hits.php?artist=David+Bowie");


// This option ensures that the HTTP response is *returned* from curl_exec(),
// (see below) rather than being output to screen.  
curl_setopt($connection,CURLOPT_RETURNTRANSFER,1);

// Do not include the HTTP header in the response.
curl_setopt($connection,CURLOPT_HEADER, 0);

// Actually connect to the remote URL. The response is 
// returned from curl_exec() and placed in $response.
$response = curl_exec($connection);

// Close the connection.
curl_close($connection);

$data = json_decode($response, true);

for($i=0; $i<count($data); $i++)
{
    echo "Song id " . $data[$i]["songid"] . " " .
         "Title " . $data[$i]["title"] . " " .
         "Artist " . $data[$i]["artist"] . " " .
         "Chart position " . $data[$i]["chart"] . "<br/>";
}
?>
  • 写回答

1条回答 默认 最新

  • doujugu1722 2017-10-03 18:20
    关注

    The link requires basic authentication. Your browser remembers your username/password when you click the link. You can see request headers with chrome inspector.

    1. Click link
    2. Open your browser inspector
    3. Click Network section
    4. Find document
    5. You can see Authorization data under the Request Headers

    enter image description here

    If you want to use authorization with curl add this:

    curl_setopt($connection, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($connection, CURLOPT_USERPWD, $username . ":" . $password);  
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM