{"id":677,"date":"2025-06-11T12:40:19","date_gmt":"2025-06-11T04:40:19","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/xtywj\/677.html"},"modified":"2025-06-11T12:40:20","modified_gmt":"2025-06-11T04:40:20","slug":"php%ef%bc%9a%e9%80%9a%e8%bf%87%e5%85%b3%e9%94%ae%e8%af%8d%e4%bb%8eunsplash-api%e6%9f%a5%e6%89%be%e5%b9%b6%e4%b8%8b%e8%bd%bd%e7%85%a7%e7%89%87","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/677.html","title":{"rendered":"PHP\uff1a\u901a\u8fc7\u5173\u952e\u8bcd\u4eceUnsplash API\u67e5\u627e\u5e76\u4e0b\u8f7d\u7167\u7247"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22909;&#30340;&#65292;&#19979;&#38754;&#26159;&#19968;&#20010;&#20351;&#29992;PHP&#21644;Unsplash API&#26469;&#26597;&#25214;&#24182;&#19979;&#36733;&#29031;&#29255;&#30340;&#31034;&#20363;&#20195;&#30721;&#12290;&#36825;&#20010;&#31034;&#20363;&#23558;&#23637;&#31034;&#22914;&#20309;&#33719;&#21462;&#38543;&#26426;&#29031;&#29255;&#12289;&#26174;&#31034;&#22270;&#29255;&#24182;&#20445;&#23384;&#21040;&#26412;&#22320;&#12290;<\/p>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;cURL&#24211;&#65292;&#22240;&#20026;Unsplash API&#38656;&#35201;&#36890;&#36807;HTTP&#35831;&#27714;&#35775;&#38382;&#25968;&#25454;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#21629;&#20196;&#26816;&#26597;&#26159;&#21542;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">php -m | grep curl<\/code><\/pre>\n<p>&#22914;&#26524;&#27809;&#26377;&#23433;&#35013;&#65292;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#36827;&#34892;&#23433;&#35013;&#65288;&#36866;&#29992;&#20110;Linux&#31995;&#32479;&#65289;&#65306;<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install php-curl<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#20195;&#30721;&#26469;&#23454;&#29616;&#26597;&#25214;&#24182;&#19979;&#36733;&#29031;&#29255;&#30340;&#21151;&#33021;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ Unsplash API&#30340;URL&#27169;&#26495;\n$unsplashUrl = 'https:\/\/api.unsplash.com\/photos\/random';\n\n\/\/ &#35831;&#27714;&#21442;&#25968;\n$params = [\n    'client_id' =&gt; 'YOUR_UNSPLASH_CLIENT_ID', \/\/ &#26367;&#25442;&#20026;&#20320;&#30340;Unsplash&#23458;&#25143;&#31471;ID\n    'orientation' =&gt; 'landscape',\n    'query' =&gt; 'nature' \/\/ &#26367;&#25442;&#20026;&#20320;&#24819;&#35201;&#25628;&#32034;&#30340;&#20851;&#38190;&#23383;\n];\n\n\/\/ &#26500;&#24314;&#23436;&#25972;&#30340;API URL\n$url = $unsplashUrl . '?' . http_build_query($params);\n\n\/\/ &#20351;&#29992;cURL&#21457;&#36215;&#35831;&#27714;\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$response = curl_exec($ch);\ncurl_close($ch);\n\n\/\/ &#35299;&#26512;JSON&#21709;&#24212;\n$data = json_decode($response, true);\n\n\/\/ &#26816;&#26597;&#26159;&#21542;&#25104;&#21151;&#33719;&#21462;&#21040;&#29031;&#29255;&#20449;&#24687;\nif ($data &amp;&amp; isset($data['urls']['regular'])) {\n    \/\/ &#33719;&#21462;&#22270;&#29255;URL\n    $imageUrl = $data['urls']['regular'];\n\n    \/\/ &#29983;&#25104;&#25991;&#20214;&#21517;\n    $fileName = uniqid() . '.jpg';\n\n    \/\/ &#19979;&#36733;&#22270;&#29255;\n    file_put_contents($fileName, file_get_contents($imageUrl));\n\n    echo \"&#29031;&#29255;&#24050;&#19979;&#36733;&#24182;&#20445;&#23384;&#20026;: \" . $fileName;\n} else {\n    echo \"&#26410;&#25214;&#21040;&#31526;&#21512;&#26465;&#20214;&#30340;&#29031;&#29255;\";\n}\n\n?&gt;<\/code><\/pre>\n<h3>&#31034;&#20363;&#35299;&#37322;&#65306;<\/h3>\n<ol>\n<li><strong>&#35774;&#32622;Unsplash API&#30340;URL&#27169;&#26495;<\/strong>&#65306;<code>$unsplashUrl<\/code> &#26159;Unsplash API&#30340;&#26681;URL&#12290;<\/li>\n<li><strong>&#35831;&#27714;&#21442;&#25968;<\/strong>&#65306;<code>$params<\/code> &#21253;&#21547;&#20102;&#19968;&#20123;&#24517;&#35201;&#30340;&#21442;&#25968;&#65292;&#22914; <code>client_id<\/code>&#12289;<code>orientation<\/code> &#21644; <code>query<\/code>&#12290;&#20320;&#38656;&#35201;&#26367;&#25442;&#36825;&#20123;&#20540;&#20197;&#21305;&#37197;&#20320;&#30340;Unsplash&#36134;&#25143;&#21644;&#25628;&#32034;&#38656;&#27714;&#12290;<\/li>\n<li><strong>&#26500;&#24314;&#23436;&#25972;API URL<\/strong>&#65306;&#36890;&#36807;&#23558;&#21442;&#25968;&#28155;&#21152;&#21040;URL&#26411;&#23614;&#65292;&#26500;&#24314;&#20986;&#23436;&#25972;&#30340;API&#35831;&#27714;URL&#12290;<\/li>\n<li><strong>&#20351;&#29992;cURL&#21457;&#36215;&#35831;&#27714;<\/strong>&#65306;&#20351;&#29992;<code>curl_init()<\/code>&#21021;&#22987;&#21270;cURL&#20250;&#35805;&#65292;&#35774;&#32622;<code>CURLOPT_URL<\/code>&#36873;&#39033;&#20026;&#26500;&#24314;&#22909;&#30340;URL&#65292;&#24182;&#35774;&#32622;<code>CURLOPT_RETURNTRANSFER<\/code>&#36873;&#39033;&#20026;<code>true<\/code>&#20197;&#20415;&#33719;&#21462;&#21709;&#24212;&#20869;&#23481;&#12290;<\/li>\n<li><strong>&#35299;&#26512;JSON&#21709;&#24212;<\/strong>&#65306;&#20351;&#29992;<code>json_decode()<\/code>&#20989;&#25968;&#23558;JSON&#21709;&#24212;&#35299;&#26512;&#20026;PHP&#25968;&#32452;&#12290;<\/li>\n<li><strong>&#26816;&#26597;&#26159;&#21542;&#25104;&#21151;&#33719;&#21462;&#21040;&#29031;&#29255;&#20449;&#24687;<\/strong>&#65306;&#22914;&#26524;&#21709;&#24212;&#25104;&#21151;&#19988;&#21253;&#21547;<code>urls.regular<\/code>&#23383;&#27573;&#65292;&#21017;&#34920;&#31034;&#25214;&#21040;&#20102;&#31526;&#21512;&#26465;&#20214;&#30340;&#29031;&#29255;&#12290;<\/li>\n<li><strong>&#29983;&#25104;&#25991;&#20214;&#21517;<\/strong>&#65306;&#20351;&#29992;<code>uniqid()<\/code>&#20989;&#25968;&#29983;&#25104;&#21807;&#19968;&#30340;&#25991;&#20214;&#21517;&#65292;&#36991;&#20813;&#35206;&#30422;&#29616;&#26377;&#25991;&#20214;&#12290;<\/li>\n<li><strong>&#19979;&#36733;&#22270;&#29255;<\/strong>&#65306;&#20351;&#29992;<code>file_put_contents()<\/code>&#20989;&#25968;&#23558;&#22270;&#29255;&#20869;&#23481;&#20889;&#20837;&#26412;&#22320;&#25991;&#20214;&#12290;<\/li>\n<li><strong>&#36755;&#20986;&#32467;&#26524;<\/strong>&#65306;&#26681;&#25454;&#26159;&#21542;&#25104;&#21151;&#19979;&#36733;&#29031;&#29255;&#65292;&#36755;&#20986;&#30456;&#24212;&#30340;&#28040;&#24687;&#12290;<\/li>\n<\/ol>\n<p>&#35831;&#30830;&#20445;&#23558;<code>YOUR_UNSPLASH_CLIENT_ID<\/code>&#26367;&#25442;&#20026;&#20320;&#30340;Unsplash&#23458;&#25143;&#31471;ID&#12290;&#36816;&#34892;&#36825;&#27573;&#20195;&#30721;&#21518;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#30475;&#21040;&#19968;&#20010;&#38543;&#26426;&#30340;&#33258;&#28982;&#39118;&#20809;&#29031;&#29255;&#34987;&#19979;&#36733;&#24182;&#20445;&#23384;&#21040;&#26412;&#22320;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#28145;&#20837;&#25506;&#35752;&#22914;&#20309;&#20351;&#29992;Unsplash API&#19982;PHP&#19968;&#36215;&#25628;&#32034;&#29031;&#29255;&#24182;&#19979;&#36733;&#23427;&#20204;&#12290;Unsplash&#25552;&#20379;&#20102;&#39640;&#36136;&#37327;&#30340;&#20813;&#36153;&#22270;&#29255;&#65292;&#30001;&#25668;&#24433;&#24072;&#31038;&#21306;&#20849;&#20139;&#12290;&#20182;&#20204;&#30340;API&#20801;&#35768;&#24320;&#21457;&#32773;&#35775;&#38382;&#36825;&#20123;&#22270;&#20687;&#24182;&#22312;&#39033;&#30446;&#20013;&#34701;&#20837;&#23427;&#20204;&#12290;&#36825;&#23545;&#20110;&#38656;&#35201;&#21160;&#24577;&#25110;&#29305;&#23450;&#22270;&#20687;&#30340;&#24212;&#29992;&#31243;&#24207;&#12289;&#32593;&#31449;&#25110;&#29978;&#33267;&#33050;&#26412;&#23588;&#20854;&#26377;&#29992;&#65292;&#36825;&#20123;&#24212;&#29992;&#21487;&#20197;&#26681;&#25454;&#29992;&#25143;&#36755;&#20837;&#25110;&#20854;&#20182;&#26631;&#20934;&#36827;&#34892;&#23450;&#21046;&#12290;<\/p><h2>&#20808;&#20915;&#26465;&#20214;<\/h2><p>&#19968;&#20010;Unsplash&#36134;&#25143;&#20197;&#33719;&#21462;API&#20973;&#35777;&#65288;&#20320;&#21487;&#20197;&#20813;&#36153;&#27880;&#20876;&#65289;<\/p><p>Composer&#65292;&#29992;&#20110;&#20381;&#36182;&#31649;&#29702;&#12290;<\/p><p>&#19968;&#31181;&#33021;&#22815;&#36816;&#34892;PHP&#65288;&#29256;&#26412;7.0&#25110;&#26356;&#39640;&#65289;&#30340;&#24320;&#21457;&#29615;&#22659;&#12290;<\/p><p>&#22522;&#26412;&#30340;PHP&#30693;&#35782;<\/p><h2>&#27493;&#39588;1&#65306;&#35774;&#32622;&#24744;&#30340;Unsplash API&#35775;&#38382;&#26435;&#38480;<\/h2><p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#22312;Unsplash&#19978;&#27880;&#20876;&#20320;&#30340;&#24212;&#29992;&#31243;&#24207;&#24182;&#33719;&#21462;API&#35775;&#38382;&#23494;&#38053;&#12290;&#35831;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p><p>&#19968;&#26086;&#24744;&#30340;&#30003;&#35831;&#34987;&#25209;&#20934;&#65292;&#24744;&#23558;&#33719;&#24471;&#19968;&#20010;&#35775;&#38382;&#23494;&#38053;&#21644;&#19968;&#20010;&#31192;&#23494;&#23494;&#38053;&#12290;&#36825;&#20123;&#23545;&#20110;&#22312;&#36827;&#34892;API&#35831;&#27714;&#26102;&#30340;&#36523;&#20221;&#39564;&#35777;&#26469;&#35828;&#26159;&#24517;&#35201;&#30340;&#12290;<\/p><p>&#28857;&#20987;&ldquo;&#26032;&#24314;&#24212;&#29992;&rdquo;&#65292;&#21516;&#24847;&#26465;&#27454;&#65292;&#22635;&#20889;&#30003;&#35831;&#35814;&#24773;&#12290;<\/p><p>&#21069;&#24448;Unsplash&#24320;&#21457;&#32773;&#37096;&#20998;&#24182;&#30331;&#24405;&#25110;&#21019;&#24314;&#36134;&#25143;&#12290;<\/p><h2>&#27493;&#39588; 2&#65306;&#23433;&#35013; guzzlehttp<\/h2><p>&#25105;&#20204;&#23558;&#20351;&#29992;GuzzleHttp&#65292;&#36825;&#26159;&#19968;&#20010;PHP&#30340;HTTP&#23458;&#25143;&#31471;&#65292;&#26469;&#21521;Unsplash API&#21457;&#36215;&#35831;&#27714;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;Composer&#23433;&#35013;Guzzle&#65306;&#35831;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p><pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre><p>&#35813;&#21629;&#20196;&#20250;&#19979;&#36733;GuzzleHttp&#21450;&#20854;&#20381;&#36182;&#39033;&#21040;&#20320;&#30340;&#39033;&#30446;&#25991;&#20214;&#22841;&#20013;&#12290;<\/p><h2>&#31532;3&#27493;&#65306;&#21457;&#20986;&#31532;&#19968;&#20010;API&#35831;&#27714;<\/h2><p>&#35201;&#19982;Unsplash API&#36827;&#34892;&#24037;&#20316;&#65292;&#25105;&#20204;&#38656;&#35201;&#20351;&#29992;GuzzleHttp&#26500;&#24314;&#19968;&#20010;&#23458;&#25143;&#31471;&#12290;&#36825;&#20010;&#23458;&#25143;&#31471;&#23558;&#31649;&#29702;&#25105;&#20204;&#23545;Unsplash&#30340;&#35831;&#27714;&#12290;&#20197;&#19979;&#26159;&#35774;&#32622;&#23427;&#30340;&#27493;&#39588;&#65306;<\/p><pre><code>$client = new GuzzleHttpClient();$response = $client-&gt;request('GET', 'https:\/\/api.unsplash.com\/search\/photos', [    'query' =&gt; [        'query' =&gt; 'keyword',        'client_id' =&gt; 'YOUR_ACCESS_KEY'    ]]);$data = json_decode($response-&gt;getBody(), true);<\/code><\/pre><p>&#26367;&#25442;<code>'keyword'<\/code>&#20197;&#24744;&#24863;&#20852;&#36259;&#30340;&#25628;&#32034;&#26415;&#35821;&#20026;&#20934;&#12290;<code>'YOUR_ACCESS_KEY'<\/code>&#20351;&#29992;Unsplash&#25552;&#20379;&#30340;&#23454;&#38469;&#35775;&#38382;&#23494;&#38053;&#65292;&#27492;&#35831;&#27714;&#20250;&#26681;&#25454;&#25351;&#23450;&#30340;&#20851;&#38190;&#23383;&#25628;&#32034;&#30456;&#20851;&#29031;&#29255;&#24182;&#36820;&#22238;&#19968;&#20010;&#21253;&#21547;&#32467;&#26524;&#30340;JSON&#23545;&#35937;&#12290;<\/p><h2>&#27493;&#39588; 4&#65306;&#22788;&#29702;&#32467;&#26524;&#24182;&#19979;&#36733;&#29031;&#29255;<\/h2><p>&#24403;&#20320;&#33719;&#21462;&#21040;&#25628;&#32034;&#32467;&#26524;&#21518;&#65292;&#21487;&#20197;&#24490;&#29615;&#36941;&#21382;&#25968;&#25454;&#26469;&#35775;&#38382;&#21333;&#20010;&#29031;&#29255;&#12290;&#27599;&#20010;&#29031;&#29255;&#23545;&#35937;&#21253;&#21547;&#21508;&#31181;&#35814;&#24773;&#65292;&#21253;&#25324;&#19981;&#21516;&#22270;&#20687;&#23610;&#23544;&#30340;URL&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#33719;&#21462;&#36825;&#20123;&#32454;&#33410;&#24182;&#19979;&#36733;&#20013;&#31561;&#22823;&#23567;&#22270;&#29255;&#30340;&#26041;&#27861;&#65306;<\/p><pre><code>foreach ($data['results'] as $photo) {    $photoUrl = $photo['urls']['small'];    $img = file_get_contents($photoUrl);    file_put_contents('\/path\/to\/save\/image.jpg', $img);}<\/code><\/pre><p>&#35831;&#30830;&#20445;&#26367;&#25442;<code>'\/path\/to\/save\/image.jpg'<\/code>&#22312;&#23454;&#38469;&#20445;&#23384;&#22270;&#29255;&#30340;&#20301;&#32622;&#65292;&#25552;&#20379;&#19968;&#27573;&#20195;&#30721;&#29255;&#27573;&#23637;&#31034;&#20102;&#22914;&#20309;&#33719;&#21462;&#27599;&#24352;&#29031;&#29255;&#30340;&#23567;&#23610;&#23544;URL&#65292;&#19979;&#36733;&#22270;&#29255;&#24182;&#23558;&#20854;&#20445;&#23384;&#21040;&#26381;&#21153;&#22120;&#19978;&#12290;<\/p><h2>&#22788;&#29702;API&#36895;&#29575;&#38480;&#21046;<\/h2><p>&#38656;&#35201;&#27880;&#24847;&#30340;&#26159;&#65292;Unsplash&#23454;&#26045;&#20102;&#26381;&#21153;&#36895;&#29575;&#38480;&#21046;&#20197;&#20445;&#25252;&#20854;&#26381;&#21153;&#12290;&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#36981;&#23432;&#36825;&#20123;&#38480;&#21046;&#12290;&#24744;&#21487;&#20197;&#26816;&#26597;API&#21709;&#24212;&#20013;&#30340;&#21097;&#20313;&#35831;&#27714;&#25968;&#37327;&#65306;<\/p><pre><code>$remainingRequests = $response-&gt;getHeader('X-Ratelimit-Remaining');<\/code><\/pre><p>&#32771;&#34385;&#23454;&#26045;&#32531;&#23384;&#25110;&#22312;&#26412;&#22320;&#23384;&#20648;&#29031;&#29255;&#65292;&#20197;&#20943;&#23569;&#35831;&#27714;&#30340;&#25968;&#37327;&#12290;<\/p><h2>&#24635;&#32467;\/&#24635;&#32467;&#20250;&#35758;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#24050;&#32463;&#20171;&#32461;&#20102;&#22914;&#20309;&#20351;&#29992;PHP&#19982;Unsplash API&#36827;&#34892;&#20132;&#20114;&#12290;&#25105;&#20204;&#23398;&#20064;&#20102;&#35774;&#32622;API&#35775;&#38382;&#26435;&#38480;&#12289;&#20351;&#29992;GuzzleHttp&#36827;&#34892;&#35831;&#27714;&#22788;&#29702;&#12289;&#22788;&#29702;&#32467;&#26524;&#24182;&#19979;&#36733;&#22270;&#29255;&#30340;&#26041;&#27861;&#12290;&#26080;&#35770;&#24744;&#26159;&#22312;&#26500;&#24314;&#32593;&#31449;&#12289;&#24320;&#21457;&#24212;&#29992;&#31243;&#24207;&#36824;&#26159;&#38656;&#35201;&#32534;&#20889;&#33050;&#26412;&#26469;&#33258;&#21160;&#19979;&#36733;&#22270;&#29255;&#65292;&#36825;&#20123;&#25216;&#33021;&#37117;&#23558;&#24110;&#21161;&#24744;&#22312;&#24744;&#30340;PHP&#39033;&#30446;&#20013;&#21033;&#29992;Unsplash API&#30340;&#23041;&#21147;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; PHP &#20013;&#20351;&#29992; Unsplash API &#23547;&#25214;&#24182;&#19979;&#36733;&#29031;&#29255;&#65292;&#20320;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#23433;&#35013;&#20102; PHP &#21644; CURL &#24211;&#12290;&#22914;&#26524;&#27809;&#26377;&#65292;&#35831;&#36816;&#34892; <code>sudo apt-get install php-curl<\/code> &#21629;&#20196;&#26469;&#23433;&#35013;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#28982;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; PHP &#25991;&#20214;&#65288;&#20363;&#22914; <code>fetch_photos.php<\/code>) &#24182;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">&lt;?php\n\n\/\/ &#35774;&#32622; Unsplash API URL\n$unsplash_api_url = 'https:\/\/api.unsplash.com\/photos\/random';\n\n\/\/ &#35774;&#32622;&#38543;&#26426;&#25968;&#21442;&#25968;\n$random_param = 'client_id=your_client_id&amp;client_secret=your_client_secret&amp;query=photo';\n\n\/\/ &#33719;&#21462;&#38543;&#26426;&#25968;&#21442;&#25968;\n$random_url = $unsplash_api_url . '?' . $random_param;\n\n\/\/ &#20351;&#29992; curl &#35831;&#27714;&#33719;&#21462;&#25968;&#25454;\n$response = file_get_contents($random_url);\n\n\/\/ &#35299;&#26512; JSON &#25968;&#25454;\n$data = json_decode($response, true);\n\n\/\/ &#36755;&#20986;&#22270;&#29255;&#38142;&#25509;\necho '&lt;a href=\"' . $data['urls']['raw'] . '\"&gt;' . $data['urls']['full'] . '&lt;\/a&gt;';\n\n?&gt;<\/code><\/pre>\n<p>&#35831;&#23558; <code>&lt;your_client_id&gt;<\/code> &#21644; <code>&lt;your_client_secret&gt;<\/code> &#26367;&#25442;&#20026;&#23454;&#38469;&#30340; Unsplash &#23458;&#25143;&#31471; ID &#21644;&#23458;&#25143;&#31471;&#23494;&#38053;&#12290;<\/p>\n<ol start=\"3\">\n<li>\n<p>&#23558;&#25991;&#20214;&#20445;&#23384;&#21040;&#26381;&#21153;&#22120;&#19978;&#65292;&#24182;&#37325;&#21629;&#21517;&#20026; <code>photos.php<\/code> &#25110;&#20854;&#20182;&#20320;&#21916;&#27426;&#30340;&#21517;&#23383;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#21551;&#21160;&#26381;&#21153;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">sudo php -S localhost:8000<\/code><\/pre>\n<\/li>\n<li>\n<p>&#35775;&#38382; <a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cDovL2xvY2FsaG9zdDo4MDAwLw==\" rel=\"noopener noreferrer nofollow\">http:\/\/localhost:8000\/<\/a> &#26469;&#26597;&#30475;&#32467;&#26524;&#12290;&#36825;&#24212;&#35813;&#20250;&#26174;&#31034;&#19968;&#24352;&#26469;&#33258; Unsplash &#30340;&#38543;&#26426;&#29031;&#29255;&#12290;<\/p>\n<\/li>\n<\/ol>\n<p>&#36825;&#20010;&#33050;&#26412;&#39318;&#20808;&#20174; Unsplash API &#20013;&#33719;&#21462;&#38543;&#26426;&#30340;&#29031;&#29255;&#20449;&#24687;&#65292;&#28982;&#21518;&#35299;&#26512;&#36820;&#22238;&#30340;&#25968;&#25454;&#24182;&#23558;&#22270;&#29255;&#38142;&#25509;&#36755;&#20986;&#21040;&#39029;&#38754;&#19978;&#12290;&#35831;&#27880;&#24847;&#65292;&#20320;&#38656;&#35201;&#26367;&#25442; <code>&lt;your_client_id&gt;<\/code> &#21644; <code>&lt;your_client_secret&gt;<\/code> &#20026;&#20320;&#23454;&#38469;&#30340; Unsplash &#23458;&#25143;&#31471; ID &#21644;&#23458;&#25143;&#31471;&#23494;&#38053;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22909;&#30340;&#65292;&#19979;&#38754;&#26159;&#19968;&#20010;&#20351;&#29992;PHP&#21644;Unsplash API&#26469;&#26597;&#25214;&#038;#241..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[42],"tuisongtax":[],"class_list":["post-677","my1js","type-my1js","status-publish","hentry","my1js2nav-xtywj"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/677","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=677"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=677"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=677"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=677"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}