前天,我在写后端的时候,需要获取到最新的github个人仓库,然后我去搜索了一下,发现github有提供api,格式为https://api.github.com/users/$username/repos?page=1&per_page=6&sort=updated; 后面的参数根据自己需要可以修改,包括数量和时间。返回的是一个json,通过php解析,里面是几个数组,数组里面又是数组。那么我们可以把每个链接对应项目名字提取出来。把他构造成以下形式:
1<a href="url" target="_blank"> repo name</a>
Copy
首先造一个方法,用于获取github api的返回值。
1$repo_name = array();
2$repo_url = array();
3function get_data($username)
4{
5    $url = "https://api.github.com/users/" . $username . "/repos?page=1&per_page=6&sort=updated";
6    $ch = curl_init();
7// 设置URL和相应的选项
8    curl_setopt($ch, CURLOPT_URL, $url);
9    curl_setopt($ch, CURLOPT_HEADER, 0);
10    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');
11//return the transfer as a string
12    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
13    $json_string = curl_exec($ch);
14    curl_close($ch);
15    $data = json_decode($json_string, true);
16    foreach ($data as $each) {
17        global $repo_name, $repo_url;
18        $repo_name[] = $each['name'];
19        $repo_url[] = $each['html_url'];
20    }
21}
Copy
再用其他两个方法来回调repo name和repo url的数组。
1function get_repo()
2{
3    global $repo_name;
4    return $repo_name;
5}
6function get_url()
7{
8    global $repo_url;
9    return $repo_url;
10}
Copy
调用方法
1<?php get_data($this->options->g_name);
2$repo_name = get_repo();
3$repo_url = get_url();
4$all = array();
5$all = array_map(function($i1,$i2){
6	return '<a href="'.$i1.'" target="_blank">'.$i2.'</a>';
7}, $repo_url,$repo_name);
8foreach ($all as $item){
9   echo '<li>'.$item.'</li>';
10}
11?>
Copy

亲亲留个评论再走呗

正在加载评论区...