PHPでは、 subst関数は、文字列の一部を傍受するために非常に一般的に使用される文字列処理関数です。 substrは、配列内の文字列要素から指定された部分を抽出する必要がある場合に役立ちます。この記事では、例を使用して、 substr関数を使用して、配列内の文字列要素の指定されたコンテンツを傍受する方法を説明します。
substr関数は、文字列の一部を返すために使用されます。基本的な構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$start</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
$文字列:元の文字列が入力されました。
$ start :インターセプトが開始される位置は、負の数であり、文字列の端から始まることを示します。
$ length :インターセプトされた長さ(オプション)。指定されていない場合、文字列の端が傍受されます。負の数の場合は、後ろから正面へ計算します。
配列内の各要素が文字列である配列があり、特定の要素からコンテンツの一部をカットしたいとします。以下の手順に従ってこれを行うことができます。
次の配列があると仮定します。各要素はDateTimeを含む文字列であり、各要素から日付部分を抽出する必要があります。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 日付と時刻の文字列を含む配列を定義します</span></span><span>
</span><span><span class="hljs-variable">$dateArray</span></span><span> = [
</span><span><span class="hljs-string">'2025-06-18 14:30:00'</span></span><span>,
</span><span><span class="hljs-string">'2023-09-12 09:45:00'</span></span><span>,
</span><span><span class="hljs-string">'2021-12-25 17:00:00'</span></span><span>
];
</span><span><span class="hljs-comment">// 配列を繰り返します,使用 substr インターセプトされた日付一部</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dateArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>) {
</span><span><span class="hljs-comment">// インターセプトの前 10 文字,今すぐ“YYYY-MM-DD”一部</span></span><span>
</span><span><span class="hljs-variable">$datePart</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"日期一部: <span class="hljs-subst">$datePart</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span><span class="hljs-section">日期一部: 2025-06-18</span></span><span>
</span><span><span class="hljs-section">日期一部: 2023-09-12</span></span><span>
</span><span><span class="hljs-section">日期一部: 2021-12-25</span></span><span>
</span></span>
この例では、各日付時間文字列から最初の10文字(つまり、「yyyy-mm-dd」形式の日付部分)を抽出します($ date、0、10) 。
文字列内の特定の場所からコンテンツを傍受する必要がある場合は、 Subststrを使用してそれを見つけることができます。たとえば、日付時間の文字列(つまり、 "HH:MM:SS")から時間の部分を傍受する必要がある場合、次のようにsubstのパラメーターを変更できます。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$dateArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>) {
</span><span><span class="hljs-comment">// から傍受されます 11 文字开始的后 8 文字,今すぐ时间一部 "HH:MM:SS"</span></span><span>
</span><span><span class="hljs-variable">$timePart</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$date</span></span><span>, </span><span><span class="hljs-number">11</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"时间一部: <span class="hljs-subst">$timePart</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span><span class="hljs-section">时间一部: 14:30:00</span></span><span>
</span><span><span class="hljs-section">时间一部: 09:45:00</span></span><span>
</span><span><span class="hljs-section">时间一部: 17:00:00</span></span><span>
</span></span>
subst関数は、 $ startパラメーターとして負の数値をサポートします。つまり、計算は文字列の最後から始まります。たとえば、 substr($ string、-5)は、文字列の最後の5文字を返します。
URLを含む配列があり、URLのファイル拡張子( .php 、 .htmlなど)のファイル拡張機能を傍受するとします。
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$urls</span></span><span> = [
</span><span><span class="hljs-string">'https://example.com/index.php'</span></span><span>,
</span><span><span class="hljs-string">'https://example.com/about.html'</span></span><span>,
</span><span><span class="hljs-string">'https://example.com/contact.php'</span></span><span>
];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$urls</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$url</span></span><span>) {
</span><span><span class="hljs-comment">// 文字列の端からシールします 4 文字,ファイル拡張子を取得します</span></span><span>
</span><span><span class="hljs-variable">$extension</span></span><span> = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>, -</span><span><span class="hljs-number">4</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ファイル拡張子: <span class="hljs-subst">$extension</span></span></span><span>\n";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
<span><span><span class="hljs-section">ファイル拡張子: .php</span></span><span>
</span><span><span class="hljs-section">ファイル拡張子: .html</span></span><span>
</span><span><span class="hljs-section">ファイル拡張子: .php</span></span><span>
</span></span>
副関数を介して、PHPは強力な文字列傍受関数を提供します。配列内の文字列要素から特定の部分を抽出する場合でも、ネガティブインデックスを使用して文字列の端からコンテンツを削減する場合でも、 subsstrはタスクを効率的に完了できます。実際のニーズに応じて、必要な文字列コンテンツを正確にインターセプトするために、 $ startおよび$ lengthパラメーターを柔軟に調整できます。