# Qiitaのfeedを取得して表示するだけのコード非同期編？ #phpcode

おはようございます。[昨日の続きのお話です](https://zip358.com/?p=14505)コードは金曜日に書きました😗。

動画を見ていただければわかるかと思いますが即興で書いたコードです、最後の最後でエラーってる！？ところなんかも編集していない所が伝わってくるかと思います。ちなみに画質HDのフル画面で見ないとコードは見えないかなって思います。

[![YouTube Video](https://img.youtube.com/vi/oqPpfzpzDac/0.jpg)](https://www.youtube.com/watch?v=oqPpfzpzDac) 

任意のユーザーのQiita、feedを取得して表示するだけのコード😋非同期編？音声も今後入れていくかもしれません。

> 任意のユーザーのQiita、feedを取得して表示するだけのコード😋非同期編？ <https://t.co/69VMhbPyrr> [@YouTube](https://twitter.com/YouTube?ref_src=twsrc%5Etfw)より
> 
> — 田岡 寿章@taoka\_toshiaki🦌 (@taoka\_toshiaki) [November 4, 2022](https://twitter.com/taoka_toshiaki/status/1588346713794019329?ref_src=twsrc%5Etfw)



任意のユーザーのQiita、feedを取得して表示するだけのコード😋非同期編？任意のユーザーを増やしたい場合はmain.jsの先頭行（２行目？）のqiitaIDに任意のIDを追加するだけで取得可能です。解説はなしですけど一応、何をやっているのかそれなりに、わかるように心がけたつもりです。あとは盗んで覚えてください😂。

ソースコードはこちらになります。

```
<?php
session_start();
$toke_byte = openssl_random_pseudo_bytes(16);
$csrf_token = bin2hex($toke_byte);
$_SESSION['csrf_token'] = $csrf_token;
?>

<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
    <style>
        .qiita_feed-list>li {
            /* font-weight: bold; */
            color: aliceblue;
        }

        .qiita_feed-list>li>a {
            color: aliceblue;
        }

        body {
            background-color: #60b111;
        }

        .shadow-lg {
            box-shadow: 0 1rem 3rem rgba(255, 255, 255, .195) !important;
        }
    </style>
    <title>Qiita-feed</title>
    <?php
    require $_SERVER['DOCUMENT_ROOT'] . "/header_script.php";
    ?>
</head>

<body>
    <input type="hidden" id="csrf_token" value="<?= $csrf_token ?>">
    <div class="container">
        <div class="row">
            <div class="col-12">
                <h1 class="text-light">Qiita-feed</h1>
            </div>
        </div>
    </div>
    <div class="container mt-2">
        <span id="view"></span>
        Copyright <?= date("Y") ?>  <a href="https://358tool.com">358tool.com</a>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
    <script src="./js/main.js?<?= time() ?>"></script>
</body>

</html>
```



```
//qiita feed
["taoka-toshiaki","mpyw","suin"].forEach(id=>{
    let data = {
        csrf_token:document.getElementById("csrf_token").value,
        feedid:[id]
    };
    let url = "./qiita-feed.php";
    qiita_feed(url,data);
});

async function qiita_feed(url, data) {
    const options = {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        },
        body: JSON.stringify(data)
    }
    await fetch(url, options).then(response =>
        response.json()
    ).then(resultdata => {
        document.getElementById("view").insertAdjacentHTML("beforeend",resultdata.reshtmlcode)
    }
    ).catch(error => {
        console.log(error);
    }
    );
}
```



```
<?php
session_start();
$obj = json_decode(strip_tags(@file_get_contents("php://input")));

if (isset($obj)) {

    if (isset($obj->csrf_token)  && $_SESSION["csrf_token"] === $obj->csrf_token) {
        $str ="";
        foreach ($obj->feedid as $key => $id) {
            $str.= '
        <div class="row shadow-lg p-3 mb-5 bg-body rounded">
            <div class="col-12">
            🌿<span class="text-light">://qiita.com/' . xss_d($id) . '/feed :[引用]</span>';
            $str .= get_Qiitafeed("https://qiita.com/" . xss_d($id) . "/feed");
            $str .= '
             </div>
        </div>      ';
        }
        $res["reshtmlcode"] = $str;
        print json_encode($res);
    }
}


function xss_d(mixed $val): mixed
{
    if (is_array($val)) {
        foreach ($val as $key => $value) {
            $val[$key] = htmlentities($value, ENT_QUOTES);
        }
    } else {
        $val = htmlentities($val, ENT_QUOTES);
    }
    return $val;
}

function get_Qiitafeed(string $feedUrl): string
{
    $xml = @simplexml_load_file($feedUrl);
    if (isset($xml->entry)) {
        $str = "<ul class='qiita_feed-list'>";
        foreach ($xml->entry as $key => $val) {
            $str .= "<li><a href='{$val->url}'>" . $val->title . "</a></li>";
        }
        $str .= "</ul>";
    }
    return $str;
}

```



 [ ![](https://zip358.com/wp-content/uploads/2025/11/2015-05-18-10.43.43.jpg) IQが中央値以下は身近にいるだよね…知らんけんど.

 ](https://zip358.com/2025/11/10/iq%e3%81%8c%e4%b8%ad%e5%a4%ae%e5%80%a4%e4%bb%a5%e4%b8%8b%e3%81%af%e8%ba%ab%e8%bf%91%e3%81%ab%e3%81%84%e3%82%8b%e3%81%a0%e3%82%88%e3%81%ad-%e7%9f%a5%e3%82%89%e3%82%93%e3%81%91%e3%82%93%e3%81%a9.html) 

 [ ![aerial view of a city and island](https://zip358.com/wp-content/uploads/2022/04/pexels-photo-3566139-300x300.jpeg) 観ずになりそうな映画、その壱その弐

 ](https://zip358.com/2025/11/09/%e8%a6%b3%e3%81%9a%e3%81%ab%e3%81%aa%e3%82%8a%e3%81%9d%e3%81%86%e3%81%aa%e6%98%a0%e7%94%bb%e3%80%81%e3%81%9d%e3%81%ae%e5%a3%b1%e3%81%9d%e3%81%ae%e5%bc%90.html) 

 [ ![low angle photography of cherry blossoms](https://zip358.com/wp-content/uploads/2022/09/pexels-photo-2058853-300x300.jpeg) 求職者マイページホーム（ハローワーク）のバーコードは何の種類を使用しているの？

 ](https://zip358.com/2025/11/08/%e6%b1%82%e8%81%b7%e8%80%85%e3%83%9e%e3%82%a4%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%9b%e3%83%bc%e3%83%a0%ef%bc%88%e3%83%8f%e3%83%ad%e3%83%bc%e3%83%af%e3%83%bc%e3%82%af%ef%bc%89%e3%81%ae%e3%83%90%e3%83%bc.html) 

 [ ![](https://zip358.com/wp-content/uploads/2025/05/image-2.png) みんな働いているから偉いなとかお金の話とか人生とか馬鹿みたいに考えた

 ](https://zip358.com/2025/11/07/%e3%81%bf%e3%82%93%e3%81%aa%e5%83%8d%e3%81%84%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e3%82%89%e5%81%89%e3%81%84%e3%81%aa%e3%81%a8%e3%81%8b%e3%81%8a%e9%87%91%e3%81%ae%e8%a9%b1%e3%81%a8%e3%81%8b%e4%ba%ba.html) 

 [ ![](https://zip358.com/wp-content/uploads/2025/11/so-so.png) so-soさんが良い感じの曲を作り出しています、それと日常.

 ](https://zip358.com/2025/11/06/so-so%e3%81%95%e3%82%93%e3%81%8c%e8%89%af%e3%81%84%e6%84%9f%e3%81%98%e3%81%ae%e6%9b%b2%e3%82%92%e4%bd%9c%e3%82%8a%e5%87%ba%e3%81%97%e3%81%a6%e3%81%84%e3%81%be%e3%81%99%e3%80%81%e3%81%9d%e3%82%8c.html) 

 

[](https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fzip358.com%2F2022%2F11%2F06%2Fqiita%25e3%2581%25aefeed%25e3%2582%2592%25e5%258f%2596%25e5%25be%2597%25e3%2581%2597%25e3%2581%25a6%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2599%25e3%2582%258b%25e3%2581%25a0%25e3%2581%2591%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e9%259d%259e%25e5%2590%258c%25e6%259c%259f%25e7%25b7%25a8%25ef%25bc%259f.html&linkname=Qiita%E3%81%AEfeed%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E9%9D%9E%E5%90%8C%E6%9C%9F%E7%B7%A8%EF%BC%9F%20%23phpcode "Facebook")[](https://www.addtoany.com/add_to/x?linkurl=https%3A%2F%2Fzip358.com%2F2022%2F11%2F06%2Fqiita%25e3%2581%25aefeed%25e3%2582%2592%25e5%258f%2596%25e5%25be%2597%25e3%2581%2597%25e3%2581%25a6%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2599%25e3%2582%258b%25e3%2581%25a0%25e3%2581%2591%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e9%259d%259e%25e5%2590%258c%25e6%259c%259f%25e7%25b7%25a8%25ef%25bc%259f.html&linkname=Qiita%E3%81%AEfeed%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E9%9D%9E%E5%90%8C%E6%9C%9F%E7%B7%A8%EF%BC%9F%20%23phpcode "X")[](https://www.addtoany.com/add_to/bluesky?linkurl=https%3A%2F%2Fzip358.com%2F2022%2F11%2F06%2Fqiita%25e3%2581%25aefeed%25e3%2582%2592%25e5%258f%2596%25e5%25be%2597%25e3%2581%2597%25e3%2581%25a6%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2599%25e3%2582%258b%25e3%2581%25a0%25e3%2581%2591%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e9%259d%259e%25e5%2590%258c%25e6%259c%259f%25e7%25b7%25a8%25ef%25bc%259f.html&linkname=Qiita%E3%81%AEfeed%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E9%9D%9E%E5%90%8C%E6%9C%9F%E7%B7%A8%EF%BC%9F%20%23phpcode "Bluesky")[](https://www.addtoany.com/add_to/line?linkurl=https%3A%2F%2Fzip358.com%2F2022%2F11%2F06%2Fqiita%25e3%2581%25aefeed%25e3%2582%2592%25e5%258f%2596%25e5%25be%2597%25e3%2581%2597%25e3%2581%25a6%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2599%25e3%2582%258b%25e3%2581%25a0%25e3%2581%2591%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e9%259d%259e%25e5%2590%258c%25e6%259c%259f%25e7%25b7%25a8%25ef%25bc%259f.html&linkname=Qiita%E3%81%AEfeed%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E9%9D%9E%E5%90%8C%E6%9C%9F%E7%B7%A8%EF%BC%9F%20%23phpcode "Line")[](https://www.addtoany.com/add_to/threads?linkurl=https%3A%2F%2Fzip358.com%2F2022%2F11%2F06%2Fqiita%25e3%2581%25aefeed%25e3%2582%2592%25e5%258f%2596%25e5%25be%2597%25e3%2581%2597%25e3%2581%25a6%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2599%25e3%2582%258b%25e3%2581%25a0%25e3%2581%2591%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e9%259d%259e%25e5%2590%258c%25e6%259c%259f%25e7%25b7%25a8%25ef%25bc%259f.html&linkname=Qiita%E3%81%AEfeed%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E9%9D%9E%E5%90%8C%E6%9C%9F%E7%B7%A8%EF%BC%9F%20%23phpcode "Threads")[](https://www.addtoany.com/add_to/copy_link?linkurl=https%3A%2F%2Fzip358.com%2F2022%2F11%2F06%2Fqiita%25e3%2581%25aefeed%25e3%2582%2592%25e5%258f%2596%25e5%25be%2597%25e3%2581%2597%25e3%2581%25a6%25e8%25a1%25a8%25e7%25a4%25ba%25e3%2581%2599%25e3%2582%258b%25e3%2581%25a0%25e3%2581%2591%25e3%2581%25ae%25e3%2582%25b3%25e3%2583%25bc%25e3%2583%2589%25e9%259d%259e%25e5%2590%258c%25e6%259c%259f%25e7%25b7%25a8%25ef%25bc%259f.html&linkname=Qiita%E3%81%AEfeed%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E3%81%A0%E3%81%91%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E9%9D%9E%E5%90%8C%E6%9C%9F%E7%B7%A8%EF%BC%9F%20%23phpcode "Copy Link")[](https://www.addtoany.com/share)
