現在の位置: ホーム> 最新記事一覧> strrevを使用して文字列ミラーリング出力を実装:strrevによって文字列順序を逆にする方法は?

strrevを使用して文字列ミラーリング出力を実装:strrevによって文字列順序を逆にする方法は?

gitbox 2025-08-26

<span><span><span class="hljs-comment">// 完全なコードのサンプル</span></span><span>
</span><span><span class="hljs-variable">$example</span></span><span> = </span><span><span class="hljs-string">"PHPストリングミラー"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"オリジナル: "</span></span><span> . </span><span><span class="hljs-variable">$example</span></span><span> . PHP_EOL;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"反転: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">strrev</span></span><span>(</span><span><span class="hljs-variable">$example</span></span><span>) . PHP_EOL; </span><span><span class="hljs-comment">// マルチバイト文字に問題があることに注意してください</span></span><span>
</span></span>

実際のプロジェクトでは、マルチバイト文字列が関与している場合、マルチバイト文字列関数を使用して、反転が正しいことを確認することをお勧めします。

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">mb_strrev</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-string">'UTF-8'</span></span><span>) {
    </span><span><span class="hljs-variable">$length</span></span><span>   = </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
    </span><span><span class="hljs-variable">$reversed</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
    </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$length</span></span><span>-- &gt; </span><span><span class="hljs-number">0</span></span><span>) {
        </span><span><span class="hljs-variable">$reversed</span></span><span> .= </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
    }
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$reversed</span></span><span>;
}

</span><span><span class="hljs-variable">$mbExample</span></span><span> = </span><span><span class="hljs-string">"PHPストリングミラー"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"多字节反転: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mb_strrev</span></span><span>(</span><span><span class="hljs-variable">$mbExample</span></span><span>) . PHP_EOL;
</span></span>

このようにして、真のミラー出力を実現するために、中国などのマルチバイト文字を含む文字列を正しく逆転させることができます。