<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP | ばすにっきTips</title>
	<atom:link href="https://takabus.com/tips/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://takabus.com/tips</link>
	<description>プログラミングやサーバー、日々のTipsをメモしています。</description>
	<lastBuildDate>Fri, 22 Nov 2024 23:38:50 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://takabus.com/tips/wp-content/uploads/2022/12/cropped-tips-1-32x32.png</url>
	<title>PHP | ばすにっきTips</title>
	<link>https://takabus.com/tips</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【PHP】Slackにメッセージを送るには？（サンプルコードあり）</title>
		<link>https://takabus.com/tips/3473/</link>
					<comments>https://takabus.com/tips/3473/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Fri, 22 Nov 2024 03:55:40 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=3473</guid>

					<description><![CDATA[PHPでSlackにメッセージを送る方法についてご紹介します。サンプルコードも掲載していますので、コピペするだけでOKです。]]></description>
										<content:encoded><![CDATA[
<p>PHPでSlackにメッセージを送る方法についてご紹介します。サンプルコードも掲載していますので、コピペするだけでOKです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/09/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>LINE Notifyが終了してしまうので、今回はその対策でコードを作ってみました！</p>



<p><a href="https://takabus.com/tips/3379/">LINE Notifyが25年3月末でサービス終了するみたい！ | ばすにっきTips</a></p>



<figure class="wp-block-embed is-type-wp-embed is-provider-tips wp-block-embed-tips"><div class="wp-block-embed__wrapper">

<a href="https://takabus.com/tips/3379/" title="LINE Notifyが25年3月末でサービス終了するみたい！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://takabus.com/tips/wp-content/uploads/2024/11/image-34-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://takabus.com/tips/wp-content/uploads/2024/11/image-34-160x90.png 160w, https://takabus.com/tips/wp-content/uploads/2024/11/image-34-120x68.png 120w, https://takabus.com/tips/wp-content/uploads/2024/11/image-34-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">LINE Notifyが25年3月末でサービス終了するみたい！</div><div class="blogcard-snippet internal-blogcard-snippet">LINE公式サイトによると、2025年3月31日をもって、LINE Notifyのサービス提供が終了するとのことです。LINE Nofityはプログラムやボットなどから簡単にLINEメッセージを送ることができるサービスです。WebAPIにP...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://takabus.com/tips" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">takabus.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.10.22</div></div></div></div></a>
</div></figure>
</div></div>



<h2 class="wp-block-heading">手順1 Incoming Webhookを有効にする</h2>



<p>まずはSlack側での下準備です。APIからメッセージを送れるようにしておきます。</p>



<p><a href="https://qiita.com/vmmhypervisor/items/18c99624a84df8b31008">SlackのWebhook URL取得手順 #Slack &#8211; Qiita</a></p>



<p>上記サイトの通りやればOKです。1分でできます♪</p>



<p>Webhook URLは以降で使うので、コピーしておきましょう。</p>



<h2 class="wp-block-heading">手順2 PHPでSlackにメッセージを送る</h2>



<p>Webhookを有効にしたら、さっそくPHPでSlackを送ってみましょう。</p>



<pre class="wp-block-code"><code>&lt;?php

// SlackのWebhook URLを定義
define('SLACK_WEBHOOK_URL', 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'); // 置き換えてください

function sendSlackMessage($message, $channel = null, $username = null)
{
    // Webhook URLが定義されていない場合はエラーを返す
    if (!defined('SLACK_WEBHOOK_URL') || empty(SLACK_WEBHOOK_URL)) {
        throw new Exception('SLACK_WEBHOOK_URL is not defined.');
    }

    // メッセージデータを準備
    $payload = &#91;
        'text' => $message,
    ];

    // オプションでチャンネルやユーザー名を指定
    if ($channel) {
        $payload&#91;'channel'] = $channel;
    }
    if ($username) {
        $payload&#91;'username'] = $username;
    }

    // cURLでリクエストを送信
    $ch = curl_init(SLACK_WEBHOOK_URL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
    curl_setopt($ch, CURLOPT_HTTPHEADER, &#91;
        'Content-Type: application/json',
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    // ステータスコードを確認
    if ($httpCode == 200) {
        return true; // 成功
    } else {
        return false; // 失敗
    }
}

// 使用例
try {
    $message = 'こんにちは！Slackへのメッセージ送信テストです。';
    $channel = '#general'; // 送信先チャンネル（オプション）
    $username = 'PHP Bot'; // 送信元の表示名（オプション）

    if (sendSlackMessage($message, $channel, $username)) {
        echo "メッセージを送信しました！";
    } else {
        echo "メッセージ送信に失敗しました。";
    }
} catch (Exception $e) {
    echo 'エラー: ' . $e->getMessage();
}
</code></pre>



<p>コピペでOKです。実行するとSlackにメッセージが表示されます。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/3473/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CurlコマンドをPHPのソースコードに変換するには？</title>
		<link>https://takabus.com/tips/1819/</link>
					<comments>https://takabus.com/tips/1819/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Sat, 10 Sep 2022 03:34:11 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[curl]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=1819</guid>

					<description><![CDATA[CurlコマンドからPHPのソースコードを生成する裏技を紹介します。]]></description>
										<content:encoded><![CDATA[
<p>CurlコマンドからPHPのソースコードを生成する裏技を紹介します。</p>



<h2 class="wp-block-heading">「curl-to-PHP」が便利</h2>



<p>CurlコマンドからPHPのソースコードを生成できる「curl-to-PHP」というWebサービスが便利です。</p>




<a rel="noopener" href="https://incarnate.github.io/curl-to-php/" title="curl-to-PHP: Convert Curl commands to PHP code" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fincarnate.github.io%2Fcurl-to-php%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">curl-to-PHP: Convert Curl commands to PHP code</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://incarnate.github.io/curl-to-php/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">incarnate.github.io</div></div></div></div></a>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="688" src="https://takabus.com/tips/wp-content/uploads/2022/09/image-20-1024x688.png" alt="" class="wp-image-1820" srcset="https://takabus.com/tips/wp-content/uploads/2022/09/image-20-1024x688.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/09/image-20-300x202.png 300w, https://takabus.com/tips/wp-content/uploads/2022/09/image-20-768x516.png 768w, https://takabus.com/tips/wp-content/uploads/2022/09/image-20.png 1112w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>上のテキストエリアにCurlコマンドを入力すると、同じ処理のPHPソースコードが自動的に生成されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="779" src="https://takabus.com/tips/wp-content/uploads/2022/09/image-21-1024x779.png" alt="" class="wp-image-1821" srcset="https://takabus.com/tips/wp-content/uploads/2022/09/image-21-1024x779.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/09/image-21-300x228.png 300w, https://takabus.com/tips/wp-content/uploads/2022/09/image-21-768x584.png 768w, https://takabus.com/tips/wp-content/uploads/2022/09/image-21.png 1148w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">ぜひお試しを</h2>



<p>どのAPIでも、だいたいのドキュメントではCurlコマンドのサンプルが掲載されています。</p>



<p>curl-to-PHPを活用することにより、Curlコマンドのサンプルをコピペするだけで、PHPのコードが生成できます。大変便利ですので、ぜひお試しを♪</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-ばすにっきtips wp-block-embed-ばすにっきtips"><div class="wp-block-embed__wrapper">

<a href="https://takabus.com/tips/135/" title="CurlコマンドをC/C++のコードに変換する方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-160x90.png 160w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-300x169.png 300w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-1024x576.png 1024w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-768x432.png 768w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-1536x864.png 1536w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-120x68.png 120w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-320x180.png 320w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換-374x210.png 374w, https://takabus.com/tips/wp-content/uploads/2021/09/curlコマンドをcppに変換.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">CurlコマンドをC/C++のコードに変換する方法</div><div class="blogcard-snippet internal-blogcard-snippet">curlコマンドをつかって、C/C++のソースコードを自動生成する方法を紹介します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://takabus.com/tips" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">takabus.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2021.09.17</div></div></div></div></a>
</div></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/1819/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Composer】Your requirements could not be resolvedエラーの対処法</title>
		<link>https://takabus.com/tips/1104/</link>
					<comments>https://takabus.com/tips/1104/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Mon, 05 Sep 2022 07:13:51 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=1104</guid>

					<description><![CDATA[Composerでパッケージをインストールしようとしたところ、Your requirements could not be resolvedエラーが発生しました。]]></description>
										<content:encoded><![CDATA[
<p>Composerでパッケージをインストールしようとしたところ、</p>



<pre class="wp-block-code"><code>composer require laravel/fortify</code></pre>



<p><span class="marker-under">次のようなエラーが発生しました。</span></p>



<p><span class="red"><em><strong>Your requirements could not be resolved to an installable set of packages.</strong></em></span></p>



<pre class="wp-block-code"><code>&gt;composer require laravel/fortify
./composer.json has been updated
Running composer update laravel/fortify
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires laravel/fortify 1.11 -&gt; satisfiable by laravel/fortify&#91;v1.11.0].
    - laravel/fortify v1.11.0 requires illuminate/support ^8.82|^9.0 -&gt; found illuminate/support&#91;v8.82.0, ..., 8.x-dev, v9.0.0-beta.1, ..., 9.x-dev] but these were not loaded, likely because it conflicts with another require.


Installation failed, reverting ./composer.json and ./composer.lock to their original content.</code></pre>



<p>このエラーの対処法をメモしておきます。</p>



<h2 class="wp-block-heading" id="composer-update-で解決">”composer update”で解決</h2>



<p>このエラーはcomposerのパッケージ情報が古いことで起こることがほとんどです。</p>



<p><strong><span class="marker-under"><span class="red">composer update</span>を実行し、パッケージの情報を最新化しましょう。</span></strong></p>



<pre class="wp-block-code"><code>composer update</code></pre>



<p>これにて解決しました。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/1104/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PHP】USBカメラの画像をブラウザからチェックできるようにしてみた！</title>
		<link>https://takabus.com/tips/462/</link>
					<comments>https://takabus.com/tips/462/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Sun, 17 Oct 2021 06:32:42 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=462</guid>

					<description><![CDATA[PHPでラズベリーパイに接続してあるUSBカメラの映像をブラウザから確認できるようにしてみました。アクセスがあったときだけ画像を取得し、ブラウザで確認できるシステムを自作してみました。]]></description>
										<content:encoded><![CDATA[
<p>ラズベリーパイに接続してあるUSBカメラの映像をブラウザから確認できるようにしてみました。</p>



<p>ネット検索してみますと、mpeg-streamerを使ったものが多いです。しかし、常時カメラを起動しなくてはならないことや、メモリー消費が多いなどの問題がありました。そこで、アクセスがあったときだけ画像を取得し、ブラウザで確認できるシステムを自作してみました。</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="703" height="533" src="https://takabus.com/tips/wp-content/uploads/2021/10/image-62.png" alt="" class="wp-image-463" srcset="https://takabus.com/tips/wp-content/uploads/2021/10/image-62.png 703w, https://takabus.com/tips/wp-content/uploads/2021/10/image-62-300x227.png 300w" sizes="(max-width: 703px) 100vw, 703px" /><figcaption>ブラウザで[Capture]をタップすると、USBカメラの静止画を表示してくれます。</figcaption></figure></div>



<h2 class="wp-block-heading">ソースコード</h2>



<p>ソースはGitHubにアップしています。</p>




<a rel="noopener" href="https://github.com/takabus/live-usbcam" title="GitHub - takabus/live-usbcam: Linuxサーバーに接続されているUSBカメラの映像をブラウザから見れるようにします" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://opengraph.githubassets.com/97e6a6234edfcc625172c507c95db072bb39f64a6a6d376df4cac32f2a07e259/takabus/live-usbcam" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub - takabus/live-usbcam: Linuxサーバーに接続されているUSBカメラの映像をブラウザから見れるようにします</div><div class="blogcard-snippet external-blogcard-snippet">Linuxサーバーに接続されているUSBカメラの映像をブラウザから見れるようにします. Contribute to takabus/live-usbcam development by creating an account on GitH...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.com/takabus/live-usbcam" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.com</div></div></div></div></a>



<h2 class="wp-block-heading">USBカメラから静止画を取得するには？</h2>



<p>さまざまな方法がありますが、ffmpegから取得するのがおすすめです。</p>



<pre class="wp-block-code"><code>ffmpeg -ss 10 -f video4linux2 -s 1280x960 -i /dev/video0 -vframes 1 image.jpg</code></pre>



<p>このコマンドを実行すると、USBカメラの静止画を撮影してくれます。</p>



<p>-iにはUSBカメラのデバイスパスを指定します。</p>



<p>-ssは撮影開始までの待機時間を指定しています。USBカメラを起動してすぐ撮影してしまうと、露出があっていない画像が得られてしまうことがあるため、10秒ほどまってから撮影するようにしています。画像の取得に時間がかかりすぎるというときは、もう少し縮めてもよいかもしれませんね。</p>



<p>もちろんこれはサンプルですので、環境に合わせてパラメータを変更する必要があります。</p>



<h2 class="wp-block-heading">使い方としくみ</h2>



<p>[Capture]をクリックするごとに、USBカメラの映像が取得されます。</p>



<p>Captureボタンがクリックされると、axiosからapi.phpにアクセスが行われます。api.phpはphpのexecを使用し、上で紹介したffmpegの撮影コマンドを実行します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="602" height="185" src="https://takabus.com/tips/wp-content/uploads/2021/10/image-65.png" alt="" class="wp-image-467" srcset="https://takabus.com/tips/wp-content/uploads/2021/10/image-65.png 602w, https://takabus.com/tips/wp-content/uploads/2021/10/image-65-300x92.png 300w" sizes="(max-width: 602px) 100vw, 602px" /></figure>



<p>撮影画像ファイルをbase64エンコードし、フロントエンドに返すことで、ブラウザで撮影した画像を閲覧できるようにしました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="703" height="533" src="https://takabus.com/tips/wp-content/uploads/2021/10/image-64.png" alt="" class="wp-image-465" srcset="https://takabus.com/tips/wp-content/uploads/2021/10/image-64.png 703w, https://takabus.com/tips/wp-content/uploads/2021/10/image-64-300x227.png 300w" sizes="(max-width: 703px) 100vw, 703px" /></figure>



<p>かなりシンプルな仕組みとなっています。</p>



<p>もちろんですが、カメラデバイスにはWebサーバーの実行ユーザーから読み取りが許可されている必要があります。また、一時ファイルを生成するため、当プログラムを配置するディレクトリへの書き込み権も必要です。動作しない場合はアクセス権を確認してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/462/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PHP】ファイル一覧をJSONで返すサンプルコード（日本語のファイル名にも対応）</title>
		<link>https://takabus.com/tips/96/</link>
					<comments>https://takabus.com/tips/96/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Wed, 08 Sep 2021 02:35:11 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=96</guid>

					<description><![CDATA[、パスとファイル名をjsonにしてレスポンスするサンプルを紹介します。日本語が取得できないときの対処法も紹介。]]></description>
										<content:encoded><![CDATA[
<p>globでファイルの一覧を取得し、パスとファイル名をjsonにしてレスポンスするサンプルです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="286" src="https://takabus.com/tips/wp-content/uploads/2021/09/image-1024x286.png" alt="" class="wp-image-98" srcset="https://takabus.com/tips/wp-content/uploads/2021/09/image-1024x286.png 1024w, https://takabus.com/tips/wp-content/uploads/2021/09/image-300x84.png 300w, https://takabus.com/tips/wp-content/uploads/2021/09/image-768x214.png 768w, https://takabus.com/tips/wp-content/uploads/2021/09/image.png 1178w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>JSONとしてファイルリストを返します。</figcaption></figure>



<h2 class="wp-block-heading">サンプルコード</h2>



<pre class="wp-block-code"><code>// ファイルのリストを取得する
$files=glob("/path/*");

// リストから配列に格納
$filelist=&#91;];

foreach($files as $file){
    $item=&#91;
        "path"=>$file,//ファイルパス
        "name"=>pathinfo($file)&#91;"basename"],//ファイル名取得
    ];
    array_push($filelist,$item);
}

// JSONにしてレスポンスする
echo json_encode(&#91;"files"=>$filelist]);</code></pre>



<h2 class="wp-block-heading">日本語のファイル名が取得できない場合</h2>



<p>日本語のファイル名が正しく取得できない場合は、次の一文を先頭に追加すればOKです。</p>



<pre class="wp-block-code"><code>// 日本語のファイル名が取得できない場合は、ロケールをUTF-8に設定する
setlocale(LC_ALL,'C.UTF-8');</code></pre>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/96/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
