【问题标题】:get json from a URL in php从 php 中的 URL 获取 json
【发布时间】:2017-06-03 07:14:11
【问题描述】:

我知道这是一个常见问题。我想知道如何从 php 中的 url 获取 JSON。

以下文件是 .php 文件所在的位置:

<html>
<head>
    <?php
    // $url = "https://localhost:8666/web1/popupData/dataWeekly.php";
    // $emp = file_get_contents($url);

    $json_url = "https://localhost:8666/web1/popupData/dataWeekly.php";
    $json = file_get_contents($json_url);
    $emp = json_decode($json, TRUE);



    ?>
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>

     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css">

    <script type="text/javascript">
    $(document).ready(function(){
        var JSON = <?php echo json_encode($emp); ?>;

        $('.details').click(function(){
            var name = $(this).attr('id');

            $('#dialog').html('<p>Name : ' + name + '</p> <p>Dept : ' + JSON[name]['dept'] + '</p> <p>Age : ' + JSON[name]['age'] + '</p>');
            $('#dialog').dialog();
        });
    })
    </script>
</head>
<body>

<!-- Dialog Box -->
<div style="display: none;" id="dialog"></div>
<!-- Dialog Box -->

<?php
    foreach($emp as $key => $record)
    {
    ?>
        <ul id="<?php echo $key ?>" class="details">
            <li>Name: <?php echo $key ?></li>
            <li>Dept: <?php echo $record['dept'] ?></li>
        </ul>
    <?php
    }
?>

</body>
</html>

这是我在运行上述 php 文件时遇到的当前错误:

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol in C:\xampp\htdocs\web1\popupData\mp.php on line 8

Warning: file_get_contents(): Failed to enable crypto in C:\xampp\htdocs\web1\popupData\mp.php on line 8

Warning: file_get_contents(https://localhost:8666/web1/popupData/dataWeekly.php): failed to open stream: operation failed in C:\xampp\htdocs\web1\popupData\mp.php on line 8

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\web1\popupData\mp.php on line 39

请帮忙。

【问题讨论】:

标签: javascript php html json ajax


【解决方案1】:

您好,您可以使用 cURLfile_get_contents() 从 URL 加载数据

但如果您使用file_get_contents(),那么您必须是 在您的系统中启用 allow_url_fopen 并且非常适合简单的 GET 请求

cURL

cURL 发出 http 请求,就像在浏览器中打开 url 一样

尝试使用 cURL

$json_url = "https://localhost:8666/web1/popupData/dataWeekly.php";  
$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $json_url);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, FALSE); 
$json = curl_exec($crl);
curl_close($crl);
$emp = json_decode($json, TRUE);

【讨论】:

  • 非常感谢。 @msk
  • 是的,是……!!
  • 选择一个答案需要5分钟..耐心..!!
猜你喜欢
  • 2016-08-06
  • 2015-10-24
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
  • 1970-01-01
  • 2021-07-05
  • 2015-04-08
相关资源
最近更新 更多