{"id":3704,"date":"2025-04-14T13:33:55","date_gmt":"2025-04-14T04:33:55","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=3704"},"modified":"2025-04-14T13:33:58","modified_gmt":"2025-04-14T04:33:58","slug":"%e3%80%902025%e5%b9%b4%e6%9c%80%e6%96%b0%e3%80%91php%e3%81%a7%e6%96%87%e5%ad%97%e5%88%97%e3%81%ab%e7%89%b9%e5%ae%9a%e3%81%ae%e6%96%87%e5%ad%97%e5%88%97%e3%81%8c%e5%90%ab%e3%81%be%e3%82%8c%e3%81%a6","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=3704","title":{"rendered":"\u30102025\u5e74\u6700\u65b0\u3011PHP\u3067\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3059\u308b7\u3064\u306e\u65b9\u6cd5\u3068\u5b9f\u8df5\u4f8b"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">\u306f\u3058\u3081\u306b<\/a>  <\/li>  <li>    <a href=\"#i-1\">PHP\u3067\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u57fa\u672c\u6982\u5ff5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-2\">PHP\u306b\u304a\u3051\u308b\u6587\u5b57\u5217\u306e\u57fa\u672c\u3068\u91cd\u8981\u6027<\/a>      <\/li>      <li>        <a href=\"#i-3\">\u6587\u5b57\u5217\u691c\u7d22\u306e\u4e3b\u8981\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-4\">\u6587\u5b57\u5217\u691c\u7d22\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8003\u616e\u4e8b\u9805<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-5\">\u65b9\u6cd51\uff1astrpos()\u3092\u4f7f\u7528\u3057\u305f\u6587\u5b57\u5217\u691c\u7d22<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-6\">strpos()\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3068\u6ce8\u610f\u70b9<\/a>      <\/li>      <li>        <a href=\"#i-7\">strpos()\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-8\">\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u4f8b\u3068\u30a8\u30c3\u30b8\u30b1\u30fc\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-14\">\u65b9\u6cd52\uff1aPHP 8\u306estr_contains()\u306b\u3088\u308b\u7c21\u6f54\u306a\u6587\u5b57\u5217\u691c\u7d22<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-15\">str_contains()\u306e\u5c0e\u5165\u80cc\u666f\u3068strpos()\u3068\u306e\u9055\u3044<\/a>      <\/li>      <li>        <a href=\"#i-16\">\u30b7\u30f3\u30d7\u30eb\u3067\u8aad\u307f\u3084\u3059\u3044\u30b3\u30fc\u30c9\u306e\u5b9f\u73fe\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-21\">\u4e0b\u4f4d\u4e92\u63db\u6027\u3068\u4ee3\u66ff\u624b\u6bb5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-23\">str_contains()\u306e\u5b9f\u7528\u4f8b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-26\">\u65b9\u6cd53\uff1astripos()\u3092\u4f7f\u3063\u305f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-27\">\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044\u30b1\u30fc\u30b9<\/a>      <\/li>      <li>        <a href=\"#i-28\">stripos()\u306e\u52b9\u679c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-31\">str_contains()\u3068\u7d44\u307f\u5408\u308f\u305b\u305f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-33\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30a8\u30c3\u30b8\u30b1\u30fc\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-34\">\u65b9\u6cd54\uff1astrstr()\u306b\u3088\u308b\u90e8\u5206\u6587\u5b57\u5217\u306e\u62bd\u51fa\u3068\u78ba\u8a8d<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-35\">strstr()\u306e\u7279\u6027\u3068\u4f7f\u7528\u30b7\u30ca\u30ea\u30aa<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-36\">\u90e8\u5206\u6587\u5b57\u5217\u306e\u4f4d\u7f6e\u3068\u5185\u5bb9\u306e\u4e21\u65b9\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-37\">\u65b9\u6cd55\uff1a\u6b63\u898f\u8868\u73fe\u3092\u4f7f\u3063\u305f\u9ad8\u5ea6\u306a\u6587\u5b57\u5217\u30d1\u30bf\u30fc\u30f3\u691c\u7d22<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-38\">preg_match()\u3092\u4f7f\u3063\u305f\u67d4\u8edf\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0<\/a>      <\/li>      <li>        <a href=\"#i-39\">\u8907\u96d1\u306a\u6761\u4ef6\u3067\u306e\u6587\u5b57\u5217\u691c\u7d22\u30d1\u30bf\u30fc\u30f3<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-45\">\u6b63\u898f\u8868\u73fe\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-50\">\u65b9\u6cd56\uff1amb_strpos()\u3092\u4f7f\u3063\u305f\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u306e\u691c\u7d22<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-51\">\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u51e6\u7406\u306e\u91cd\u8981\u6027<\/a>      <\/li>      <li>        <a href=\"#i-52\">mb_strpos()\u306e\u6b63\u3057\u3044\u4f7f\u3044\u65b9<\/a>      <\/li>      <li>        <a href=\"#i-57\">PHP 8\u4ee5\u964d\u3067\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u691c\u7d22\u306e\u6700\u9069\u5316<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-58\">\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u51e6\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-59\">\u65b9\u6cd57\uff1asubstr_count()\u3067\u6587\u5b57\u5217\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3059\u308b\u65b9\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-60\">substr_count()\u306e\u57fa\u672c\u3068\u5fdc\u7528<\/a>      <\/li>      <li>        <a href=\"#i-62\">\u8907\u6570\u56de\u51fa\u73fe\u3059\u308b\u6587\u5b57\u5217\u306e\u691c\u51fa\u3068\u51e6\u7406<\/a>      <\/li>      <li>        <a href=\"#i-65\">\u958b\u59cb\u4f4d\u7f6e\u3068\u9577\u3055\u306e\u6307\u5b9a\u306b\u3088\u308b\u30ab\u30b9\u30bf\u30e0\u691c\u7d22\u7bc4\u56f2<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-66\">\u5b9f\u7528\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-69\">\u5b9f\u8df5\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u30b3\u30fc\u30c9\u4f8b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-70\">\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u6587\u5b57\u5217\u691c\u7d22\u306e\u6d3b\u7528<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-73\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u524d\u306e\u6587\u5b57\u5217\u691c\u67fb\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-75\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\uff1a7\u3064\u306e\u65b9\u6cd5\u306e\u901f\u5ea6\u3068\u52b9\u7387\u6027<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-76\">\u6587\u5b57\u5217\u9577\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u95a2\u4fc2<\/a>      <\/li>      <li>        <a href=\"#i-77\">\u691c\u7d22\u30d1\u30bf\u30fc\u30f3\u3068\u30de\u30c3\u30c1\u30f3\u30b0\u52b9\u7387\u306e\u5f71\u97ff<\/a>      <\/li>      <li>        <a href=\"#i-80\">\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u5b9f\u7528\u7684\u306a\u52b9\u7387\u6bd4\u8f03\u8868<\/a>      <\/li>      <li>        <a href=\"#i-81\">\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u6700\u9069\u5316\u63a8\u5968\u4e8b\u9805<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-82\">\u7d50\u8ad6<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-83\">\u307e\u3068\u3081<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-84\">7\u3064\u306e\u65b9\u6cd5\u306e\u8981\u70b9<\/a>      <\/li>      <li>        <a href=\"#i-85\">\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u5225\u306e\u6700\u9069\u306a\u9078\u629e<\/a>      <\/li>      <li>        <a href=\"#i-86\">\u4eca\u5f8c\u306e\u5c55\u671b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-87\">\u6700\u5f8c\u306b<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">\u306f\u3058\u3081\u306b<\/h2>\n\n\n\n<p>PHP\u306b\u3088\u308bWeb\u958b\u767a\u306b\u304a\u3044\u3066\u3001\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u6700\u3082\u983b\u7e41\u306b\u884c\u308f\u308c\u308b\u51e6\u7406\u306e\u4e00\u3064\u3067\u3059\u3002\u7279\u306b\u3001\u3042\u308b\u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u51e6\u7406\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u5165\u529b\u306e\u691c\u8a3c\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u306e\u69cb\u7bc9\u3001\u30c6\u30ad\u30b9\u30c8\u5206\u6790\u306a\u3069\u3001\u3042\u3089\u3086\u308b\u5834\u9762\u3067\u5fc5\u8981\u3068\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>2025\u5e74\u306e\u73fe\u5728\u3001PHP\u306f8.4\u307e\u3067\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7\u3057\u3001\u3088\u308a\u7c21\u6f54\u3067\u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u64cd\u4f5c\u30e1\u30bd\u30c3\u30c9\u304c\u5c0e\u5165\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u4e00\u65b9\u3067\u3001\u5f8c\u65b9\u4e92\u63db\u6027\u306e\u305f\u3081\u306b\u5f93\u6765\u306e\u30e1\u30bd\u30c3\u30c9\u3082\u5f15\u304d\u7d9a\u304d\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u304a\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8981\u4ef6\u3084\u5b9f\u884c\u74b0\u5883\u306b\u3088\u3063\u3066\u3001\u6700\u9069\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001PHP\u3067\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e7\u3064\u306e\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002\u305d\u308c\u305e\u308c\u306e\u624b\u6cd5\u306e\u7279\u5fb4\u3001\u4f7f\u3044\u65b9\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027\u3001\u305d\u3057\u3066\u9069\u5207\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u3064\u3044\u3066\u3001\u5177\u4f53\u7684\u306a\u30b3\u30fc\u30c9\u4f8b\u3068\u3068\u3082\u306b\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u7d39\u4ecb\u3059\u308b7\u3064\u306e\u65b9\u6cd5\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>strpos()<\/strong> \u2013 \u6700\u3082\u57fa\u672c\u7684\u3067\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u308b\u6587\u5b57\u5217\u691c\u7d22\u95a2\u6570<\/li>\n\n\n\n<li><strong>str_contains()<\/strong> \u2013 PHP 8.0\u3067\u5c0e\u5165\u3055\u308c\u305f\u3001\u3088\u308a\u76f4\u611f\u7684\u306a\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\u95a2\u6570<\/li>\n\n\n\n<li><strong>stripos()<\/strong> \u2013 \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u691c\u7d22\u3059\u308b\u95a2\u6570<\/li>\n\n\n\n<li><strong>strstr()<\/strong> \u2013 \u90e8\u5206\u6587\u5b57\u5217\u3092\u691c\u7d22\u3057\u3066\u8fd4\u3059\u95a2\u6570<\/li>\n\n\n\n<li><strong>\u6b63\u898f\u8868\u73fe<\/strong> \u2013 \u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u53ef\u80fd\u306b\u3059\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb<\/li>\n\n\n\n<li><strong>mb_strpos()<\/strong> \u2013 \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\uff08\u65e5\u672c\u8a9e\u306a\u3069\uff09\u306b\u5bfe\u5fdc\u3057\u305f\u691c\u7d22\u95a2\u6570<\/li>\n\n\n\n<li><strong>substr_count()<\/strong> \u2013 \u7279\u5b9a\u306e\u90e8\u5206\u6587\u5b57\u5217\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3059\u308b\u95a2\u6570<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u65b9\u6cd5\u306f\u305d\u308c\u305e\u308c\u9577\u6240\u3068\u77ed\u6240\u304c\u3042\u308a\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u6700\u9069\u306a\u9078\u629e\u304c\u5909\u308f\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u30c1\u30a7\u30c3\u30af\u306a\u3089str_contains()\u304c\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3092\u9ad8\u3081\u307e\u3059\u304c\u3001\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u6b63\u898f\u8868\u73fe\u304c\u9069\u3057\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6271\u3046\u5834\u5408\u306fmb_strpos()\u304c\u5fc5\u9808\u3068\u306a\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>2025\u5e74\u6642\u70b9\u3067\u306f\u3001PHP 8.x\u30b7\u30ea\u30fc\u30ba\u306e\u63a1\u7528\u304c\u9032\u307f\u3001\u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306fstr_contains()\u306e\u3088\u3046\u306a\u76f4\u611f\u7684\u306aAPI\u3092\u5229\u7528\u3067\u304d\u308b\u74b0\u5883\u304c\u6574\u3063\u3066\u304d\u3066\u3044\u307e\u3059\u3002\u4e00\u65b9\u3067\u3001\u30ec\u30ac\u30b7\u30fc\u30b7\u30b9\u30c6\u30e0\u306e\u4fdd\u5b88\u3084\u4e92\u63db\u6027\u306e\u89b3\u70b9\u304b\u3089\u3001\u5f93\u6765\u306e\u95a2\u6570\u306e\u77e5\u8b58\u3082\u4f9d\u7136\u3068\u3057\u3066\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3092\u901a\u3058\u3066\u3001\u3042\u306a\u305f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u6700\u9069\u306a\u6587\u5b57\u5217\u691c\u7d22\u624b\u6cd5\u3092\u898b\u3064\u3051\u3001\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u305f\u3081\u306e\u77e5\u8b58\u3092\u5f97\u3066\u3044\u305f\u3060\u3051\u308c\u3070\u5e78\u3044\u3067\u3059\u3002\u305d\u308c\u3067\u306f\u3001\u307e\u305a\u6587\u5b57\u5217\u691c\u7d22\u306e\u57fa\u672c\u6982\u5ff5\u304b\u3089\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-1\">PHP\u3067\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u57fa\u672c\u6982\u5ff5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">PHP\u306b\u304a\u3051\u308b\u6587\u5b57\u5217\u306e\u57fa\u672c\u3068\u91cd\u8981\u6027<\/h3>\n\n\n\n<p>PHP\u306b\u304a\u3044\u3066\u3001\u6587\u5b57\u5217\u306f\u30b7\u30f3\u30b0\u30eb\u30af\u30a9\u30fc\u30c8(<code>'<\/code>)\u307e\u305f\u306f\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c8(<code>\"<\/code>)\u3067\u56f2\u307e\u308c\u305f\u6587\u5b57\u306e\u96c6\u5408\u3068\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002PHP\u306f\u52d5\u7684\u578b\u4ed8\u3051\u8a00\u8a9e\u3067\u3042\u308b\u305f\u3081\u3001\u5909\u6570\u306e\u578b\u5ba3\u8a00\u306a\u3057\u306b\u6587\u5b57\u5217\u3092\u7c21\u5358\u306b\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u6587\u5b57\u5217\u306e\u5b9a\u7fa9\n$single_quoted = '\u3053\u3093\u306b\u3061\u306f\u3001\u4e16\u754c\uff01';  \/\/ \u30b7\u30f3\u30b0\u30eb\u30af\u30a9\u30fc\u30c8\n$double_quoted = \"Hello, World!\";      \/\/ \u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c8\n\n\/\/ \u5909\u6570\u5c55\u958b\uff08\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c8\u306e\u307f\u53ef\u80fd\uff09\n$name = \"PHP\";\n$greeting = \"Hello, $name!\";  \/\/ \"Hello, PHP!\" \u3068\u306a\u308b\n<\/pre>\n\n\n\n<p>PHP\u3067\u306e\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u4e2d\u5fc3\u7684\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u307e\u3059\u3002\u7279\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5834\u9762\u3067\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306e\u51e6\u7406\u3068\u691c\u8a3c<\/strong> \u2013 \u30d5\u30a9\u30fc\u30e0\u304b\u3089\u9001\u4fe1\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li><strong>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u64cd\u4f5c<\/strong> \u2013 SQL\u30af\u30a8\u30ea\u306e\u69cb\u7bc9\u3084\u7d50\u679c\u306e\u51e6\u7406<\/li>\n\n\n\n<li><strong>API\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u51e6\u7406<\/strong> \u2013 JSON\u3084XML\u304b\u3089\u306e\u7279\u5b9a\u30c7\u30fc\u30bf\u306e\u62bd\u51fa<\/li>\n\n\n\n<li><strong>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3<\/strong> \u2013 \u52d5\u7684\u306aHTML\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u751f\u6210<\/li>\n\n\n\n<li><strong>\u30ed\u30b0\u89e3\u6790<\/strong> \u2013 \u30a8\u30e9\u30fc\u30ed\u30b0\u3084\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u304b\u3089\u306e\u60c5\u5831\u62bd\u51fa<\/li>\n<\/ul>\n\n\n\n<p>PHP\u8a00\u8a9e\u81ea\u4f53\u304c\u5143\u3005Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u7279\u5316\u3057\u3066\u8a2d\u8a08\u3055\u308c\u305f\u305f\u3081\u3001\u6587\u5b57\u5217\u51e6\u7406\u306e\u305f\u3081\u306e\u8c4a\u5bcc\u306a\u7d44\u307f\u8fbc\u307f\u95a2\u6570\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u30022025\u5e74\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u6a5f\u80fd\u304c\u3055\u3089\u306b\u62e1\u5f35\u3055\u308c\u3001\u3088\u308a\u7c21\u6f54\u3067\u52b9\u7387\u7684\u306a\u30b3\u30fc\u30c9\u304c\u66f8\u3051\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-3\">\u6587\u5b57\u5217\u691c\u7d22\u306e\u4e3b\u8981\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/h3>\n\n\n\n<p>\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u51e6\u7406\u306f\u3001\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3067\u983b\u7e41\u306b\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059\u3002\u5177\u4f53\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u3057\u3066\u306f\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306b<code>@<\/code>\u8a18\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u7279\u5b9a\u306e\u6587\u5b57\uff08\u8a18\u53f7\u3001\u6570\u5b57\u306a\u3069\uff09\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b<\/li>\n\n\n\n<li>\u7981\u6b62\u30ef\u30fc\u30c9\u304c\u30c6\u30ad\u30b9\u30c8\u5185\u306b\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u304b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3068\u5206\u985e<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u7279\u5b9a\u306e\u30bf\u30b0\u3092\u542b\u3080\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u30ad\u30fc\u30ef\u30fc\u30c9\u306b\u57fa\u3065\u304f\u81ea\u52d5\u30ab\u30c6\u30b4\u30ea\u5206\u985e<\/li>\n\n\n\n<li>\u30b9\u30d1\u30e0\u691c\u51fa\uff08\u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u306e\u5b58\u5728\u78ba\u8a8d\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c7\u30fc\u30bf\u62bd\u51fa<\/strong>\n<ul class=\"wp-block-list\">\n<li>HTML\u304b\u3089\u306e\u7279\u5b9a\u8981\u7d20\u306e\u62bd\u51fa<\/li>\n\n\n\n<li>\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u62bd\u51fa<\/li>\n\n\n\n<li>\u9577\u3044\u30c6\u30ad\u30b9\u30c8\u304b\u3089\u7279\u5b9a\u306e\u60c5\u5831\u3092\u898b\u3064\u3051\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u6761\u4ef6\u4ed8\u304d\u30ed\u30b8\u30c3\u30af<\/strong>\n<ul class=\"wp-block-list\">\n<li>URL\u30d1\u30b9\u306b\u57fa\u3065\u3044\u305f\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u57fa\u3065\u3044\u305f\u30b3\u30f3\u30c6\u30f3\u30c4\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u8a00\u8a9e\u3084\u5730\u57df\u306e\u691c\u51fa\u3068\u5bfe\u5fdc<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u306f\u3001\u5358\u7d14\u306a\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\u304b\u3089\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u307e\u3067\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u6700\u9069\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u6587\u5b57\u5217\u691c\u7d22\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8003\u616e\u4e8b\u9805<\/h3>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u6271\u3046\u5834\u5408\u3001\u6587\u5b57\u5217\u691c\u7d22\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u91cd\u8981\u306a\u8ab2\u984c\u3068\u306a\u308a\u307e\u3059\u3002\u52b9\u7387\u7684\u306a\u6587\u5b57\u5217\u691c\u7d22\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u8981\u7d20\u3092\u8003\u616e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u691c\u7d22\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u9078\u629e<\/strong>\n<ul class=\"wp-block-list\">\n<li>PHP\u306e\u5404\u6587\u5b57\u5217\u691c\u7d22\u95a2\u6570\u306f\u5185\u90e8\u7684\u306b\u7570\u306a\u308b\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u5358\u7d14\u306a\u5305\u542b\u30c1\u30a7\u30c3\u30af\u306a\u3089strpos()\u3084str_contains()\u304c\u9ad8\u901f<\/li>\n\n\n\n<li>\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u306b\u306f\u6b63\u898f\u8868\u73fe\u304c\u5fc5\u8981\u3060\u304c\u3001\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u5927\u304d\u3044<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u6587\u5b57\u5217\u306e\u9577\u3055\u3068\u691c\u7d22\u983b\u5ea6<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u77ed\u3044\u6587\u5b57\u5217\u5185\u3067\u306e\u691c\u7d22\u306f\u4e00\u822c\u7684\u306b\u9ad8\u901f<\/li>\n\n\n\n<li>\u9577\u3044\u30c6\u30ad\u30b9\u30c8\uff08\u6570MB\u4ee5\u4e0a\uff09\u3067\u306f\u691c\u7d22\u901f\u5ea6\u304c\u4f4e\u4e0b<\/li>\n\n\n\n<li>\u540c\u3058\u6587\u5b57\u5217\u306b\u5bfe\u3057\u3066\u7e70\u308a\u8fd4\u3057\u691c\u7d22\u3059\u308b\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u304c\u6709\u52b9<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u5f71\u97ff<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\uff08UTF-8\u306a\u3069\uff09\u3092\u542b\u3080\u6587\u5b57\u5217\u3067\u306f\u901a\u5e38\u306e\u95a2\u6570\u304c\u8aa4\u52d5\u4f5c\u3059\u308b\u53ef\u80fd\u6027<\/li>\n\n\n\n<li>\u65e5\u672c\u8a9e\u3084\u4e2d\u56fd\u8a9e\u306a\u3069\u3092\u6271\u3046\u5834\u5408\u306fmb_*\u7cfb\u306e\u95a2\u6570\u304c\u5fc5\u9808<\/li>\n\n\n\n<li>\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u5909\u63db\u306f\u91cd\u3044\u30aa\u30da\u30ec\u30fc\u30b7\u30e7\u30f3\u306a\u306e\u3067\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5927\u304d\u306a\u6587\u5b57\u5217\u3092\u64cd\u4f5c\u3059\u308b\u5834\u5408\u3001\u30e1\u30e2\u30ea\u6d88\u8cbb\u91cf\u306b\u6ce8\u610f\u304c\u5fc5\u8981<\/li>\n\n\n\n<li>\u6587\u5b57\u5217\u64cd\u4f5c\u306f\u30b3\u30d4\u30fc\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u304c\u3042\u308a\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u304c\u5897\u52a0\u3059\u308b\u53ef\u80fd\u6027<\/li>\n\n\n\n<li>\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\u3084\u5206\u5272\u51e6\u7406\u306a\u3069\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3067\u30e1\u30e2\u30ea\u52b9\u7387\u3092\u6539\u5584\u3067\u304d\u308b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u57fa\u672c\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u306e\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n<div id=\"id-e575d039-2529-493f-a9aa-24d0b1525248\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u624b\u6cd5<\/th><th>\u5358\u7d14\u3055<\/th><th>\u901f\u5ea6<\/th><th>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/th><th>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u5bfe\u5fdc<\/th><\/tr><\/thead><tbody><tr><td>strpos()<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u00d7\uff08\u8981mb_*\u95a2\u6570\uff09<\/td><\/tr><tr><td>str_contains()<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u00d7\uff08\u8981mb_*\u95a2\u6570\uff09<\/td><\/tr><tr><td>\u6b63\u898f\u8868\u73fe<\/td><td>\u2605\u2605\u2606\u2606\u2606<\/td><td>\u2605\u2605\u2606\u2606\u2606<\/td><td>\u2605\u2605\u2605\u2606\u2606<\/td><td>\u25b3\uff08\u30d1\u30bf\u30fc\u30f3\u4f9d\u5b58\uff09<\/td><\/tr><tr><td>mb_strpos()<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u2605\u2605\u2605\u2606\u2606<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u25cb<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5927\u898f\u6a21\u306a\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027\u3092\u7406\u89e3\u3057\u3001\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u6642\u9593\u3068\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u304b\u3089\u306f\u3001\u5404\u624b\u6cd5\u306b\u3064\u3044\u3066\u8a73\u7d30\u306b\u89e3\u8aac\u3057\u3001\u5b9f\u969b\u306e\u30b3\u30fc\u30c9\u4f8b\u3067\u305d\u306e\u4f7f\u3044\u65b9\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-5\">\u65b9\u6cd51\uff1astrpos()\u3092\u4f7f\u7528\u3057\u305f\u6587\u5b57\u5217\u691c\u7d22<\/h2>\n\n\n\n<p>PHP\u3067\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u6700\u3082\u57fa\u672c\u7684\u304b\u3064\u53e4\u5178\u7684\u306a\u65b9\u6cd5\u306f<code>strpos()<\/code>\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u95a2\u6570\u306fPHP\u306e\u521d\u671f\u30d0\u30fc\u30b8\u30e7\u30f3\u304b\u3089\u5b58\u5728\u3059\u308b\u57fa\u672c\u7684\u306a\u6587\u5b57\u5217\u64cd\u4f5c\u95a2\u6570\u306e\u4e00\u3064\u3067\u3001\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">strpos()\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3068\u6ce8\u610f\u70b9<\/h3>\n\n\n\n<p><code>strpos()<\/code>\u95a2\u6570\u306f\u3001\u3042\u308b\u6587\u5b57\u5217\uff08\u30d8\u30a4\u30b9\u30bf\u30c3\u30af\/haystack\uff09\u306e\u4e2d\u3067\u3001\u5225\u306e\u6587\u5b57\u5217\uff08\u30cb\u30fc\u30c9\u30eb\/needle\uff09\u304c\u6700\u521d\u306b\u73fe\u308c\u308b\u4f4d\u7f6e\u3092\u8fd4\u3057\u307e\u3059\u3002\u6587\u5b57\u5217\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306f<code>false<\/code>\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u69cb\u6587\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int|false strpos(string $haystack, string $needle, int $offset = 0)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$needle<\/code> \u2013 \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$offset<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u3092\u958b\u59cb\u3059\u308b\u4f4d\u7f6e<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$needle<\/code>\u304c<code>$haystack<\/code>\u5185\u3067\u898b\u3064\u304b\u3063\u305f\u5834\u5408\u3001\u305d\u306e\u958b\u59cb\u4f4d\u7f6e\uff080\u304b\u3089\u59cb\u307e\u308b\uff09<\/li>\n\n\n\n<li>\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u5834\u5408\u306f<code>false<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP\u306f\u5f37\u529b\u306a\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\u3002\";\n$search = \"\u30b5\u30fc\u30d0\u30fc\";\n\n$position = strpos($text, $search);\n\nif ($position !== false) {\n    echo \"\u300c{$search}\u300d\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\uff08\u4f4d\u7f6e: {$position}\uff09\";\n} else {\n    echo \"\u300c{$search}\u300d\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\";\n}\n\/\/ \u51fa\u529b: \u300c\u30b5\u30fc\u30d0\u30fc\u300d\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f\uff08\u4f4d\u7f6e: 8\uff09\n<\/pre>\n\n\n\n<p><strong>\u91cd\u8981\u306a\u6ce8\u610f\u70b9<\/strong>: <code>strpos()<\/code>\u306e\u623b\u308a\u5024\u3092\u78ba\u8a8d\u3059\u308b\u969b\u306b\u306f\u3001\u5fc5\u305a<code>!==<\/code>\uff08\u53b3\u5bc6\u306a\u4e0d\u7b49\u4fa1\u6f14\u7b97\u5b50\uff09\u3092\u4f7f\u7528\u3057\u3066<code>false<\/code>\u3068\u6bd4\u8f03\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u3001\u6587\u5b57\u5217\u306e\u5148\u982d\uff08\u4f4d\u7f6e0\uff09\u3067\u4e00\u81f4\u304c\u898b\u3064\u304b\u3063\u305f\u5834\u5408\u3001<code>if ($position)<\/code>\u306e\u3088\u3046\u306a\u6761\u4ef6\u5f0f\u3067\u306f\u8aa4\u3063\u3066\u300c\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u300d\u3068\u5224\u65ad\u3055\u308c\u3066\u3057\u307e\u3046\u305f\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP is a popular scripting language\";\n$search = \"PHP\";\n\n$position = strpos($text, $search); \/\/ 0\u3092\u8fd4\u3059\uff08\u5148\u982d\u3067\u4e00\u81f4\uff09\n\n\/\/ \u9593\u9055\u3063\u305f\u6bd4\u8f03\u65b9\u6cd5\nif ($position) {\n    echo \"\u898b\u3064\u304b\u308a\u307e\u3057\u305f\"; \/\/ \u3053\u306e\u30d6\u30ed\u30c3\u30af\u306f\u5b9f\u884c\u3055\u308c\u306a\u3044\uff01\n} else {\n    echo \"\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\"; \/\/ 0\u306ffalse\u3068\u8a55\u4fa1\u3055\u308c\u308b\u305f\u3081\u3001\u3053\u306e\u30d6\u30ed\u30c3\u30af\u304c\u5b9f\u884c\u3055\u308c\u308b\n}\n\n\/\/ \u6b63\u3057\u3044\u6bd4\u8f03\u65b9\u6cd5\nif ($position !== false) {\n    echo \"\u898b\u3064\u304b\u308a\u307e\u3057\u305f\"; \/\/ \u6b63\u3057\u304f\u5b9f\u884c\u3055\u308c\u308b\n} else {\n    echo \"\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\";\n}\n<\/pre>\n\n\n\n<p>\u307e\u305f\u3001<code>$needle<\/code>\u304c\u7a7a\u6587\u5b57\u5217\u306e\u5834\u5408\u3001PHP 8.0\u672a\u6e80\u3067\u306fwarning\u304c\u767a\u751f\u3057\u3001PHP 8.0\u4ee5\u964d\u3067\u306fEmptyNeedleException\u304c\u6295\u3052\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-7\">strpos()\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027<\/h3>\n\n\n\n<p><code>strpos()<\/code>\u306fC\u3067\u5b9f\u88c5\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u3001PHP\u306e\u30cd\u30a4\u30c6\u30a3\u30d6\u95a2\u6570\u3068\u3057\u3066\u975e\u5e38\u306b\u9ad8\u901f\u3067\u3059\u3002\u5185\u90e8\u7684\u306b\u306fBoyer-Moore\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u5909\u7a2e\u3092\u4f7f\u7528\u3057\u3066\u304a\u308a\u3001\u5927\u304d\u306a\u30c6\u30ad\u30b9\u30c8\u5185\u3067\u306e\u691c\u7d22\u3067\u3082\u52b9\u7387\u7684\u306b\u52d5\u4f5c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u9762\u3067\u306e\u7279\u5fb4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6642\u9593\u8907\u96d1\u5ea6<\/strong>: \u5e73\u5747\u7684\u306b\u306f\u3001\u30d8\u30a4\u30b9\u30bf\u30c3\u30af\u306e\u9577\u3055\u306b\u6bd4\u4f8b\u3059\u308b O(n) \u3067\u3059\u304c\u3001\u6700\u9069\u5316\u306b\u3088\u308a\u591a\u304f\u306e\u5834\u5408\u306f\u30b5\u30d6\u30ea\u30cb\u30a2\u306b\u52d5\u4f5c\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/strong>: \u8ffd\u52a0\u306e\u30e1\u30e2\u30ea\u3092\u307b\u3068\u3093\u3069\u4f7f\u7528\u305b\u305a\u3001\u975e\u5e38\u306b\u52b9\u7387\u7684\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u5927\u6587\u5b57\/\u5c0f\u6587\u5b57\u306e\u533a\u5225<\/strong>: \u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u307e\u3059\u3002\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\u306b\u306f<code>stripos()<\/code>\u3092\u4f7f\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57<\/strong>: \u6a19\u6e96\u306e<code>strpos()<\/code>\u306f\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\uff08\u65e5\u672c\u8a9e\u306a\u3069\uff09\u306b\u5bfe\u3057\u3066\u306f\u9069\u5207\u306b\u52d5\u4f5c\u3057\u307e\u305b\u3093\u3002\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6271\u3046\u5834\u5408\u306f<code>mb_strpos()<\/code>\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u30b7\u30f3\u30d7\u30eb\u306a\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u9577\u3044\u30c6\u30ad\u30b9\u30c8\u5185\u3067\u306e\u5358\u4e00\u306estrpos()\u547c\u3073\u51fa\u3057\n$start = microtime(true);\n$haystack = str_repeat(\"a\", 1000000) . \"needle\" . str_repeat(\"a\", 1000000);\n$result = strpos($haystack, \"needle\");\n$end = microtime(true);\necho \"\u5b9f\u884c\u6642\u9593: \" . ($end - $start) . \" \u79d2\\n\";\n\/\/ \u5b9f\u884c\u6642\u9593: 0.00123 \u79d2 (\u7d50\u679c\u306f\u74b0\u5883\u306b\u3088\u3063\u3066\u7570\u306a\u308a\u307e\u3059)\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u5177\u4f53\u7684\u306a\u5b9f\u88c5\u4f8b\u3068\u30a8\u30c3\u30b8\u30b1\u30fc\u30b9<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-9\">1. \u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\u306e\u57fa\u672c\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<p>\u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u6a19\u6e96\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @return bool \u542b\u307e\u308c\u3066\u3044\u308c\u3070true\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070false\n *\/\nfunction contains($haystack, $needle) {\n    return strpos($haystack, $needle) !== false;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"PHP8\u3067\u306f\u591a\u304f\u306e\u65b0\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\";\necho contains($text, \"PHP8\") ? \"\u542b\u307e\u308c\u3066\u3044\u307e\u3059\" : \"\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\"; \/\/ \u542b\u307e\u308c\u3066\u3044\u307e\u3059\necho contains($text, \"Ruby\") ? \"\u542b\u307e\u308c\u3066\u3044\u307e\u3059\" : \"\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\"; \/\/ \u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-10\">2. \u7279\u5b9a\u306e\u4f4d\u7f6e\u304b\u3089\u306e\u691c\u7d22<\/h4>\n\n\n\n<p><code>strpos()<\/code>\u306e\u7b2c3\u5f15\u6570\u3092\u4f7f\u3063\u3066\u3001\u7279\u5b9a\u306e\u4f4d\u7f6e\u304b\u3089\u691c\u7d22\u3092\u958b\u59cb\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP\u306fWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u9069\u3057\u305fPHP\u3068\u3044\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\";\n$search = \"PHP\";\n\n\/\/ \u6700\u521d\u306e\u51fa\u73fe\u4f4d\u7f6e\n$first = strpos($text, $search); \/\/ 0\u304c\u8fd4\u3055\u308c\u308b\n\n\/\/ 2\u756a\u76ee\u306e\u51fa\u73fe\u4f4d\u7f6e\u3092\u63a2\u3059\n$second = strpos($text, $search, $first + 1); \/\/ 23\u304c\u8fd4\u3055\u308c\u308b\n\necho \"1\u756a\u76ee\u306e\u4f4d\u7f6e: {$first}, 2\u756a\u76ee\u306e\u4f4d\u7f6e: {$second}\";\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-11\">3. \u3059\u3079\u3066\u306e\u51fa\u73fe\u4f4d\u7f6e\u3092\u898b\u3064\u3051\u308b<\/h4>\n\n\n\n<p>\u6587\u5b57\u5217\u5185\u306e\u3059\u3079\u3066\u306e\u51fa\u73fe\u4f4d\u7f6e\u3092\u898b\u3064\u3051\u305f\u3044\u5834\u5408\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u6587\u5b57\u5217\u5185\u306e\u7279\u5b9a\u306e\u90e8\u5206\u6587\u5b57\u5217\u306e\u3059\u3079\u3066\u306e\u51fa\u73fe\u4f4d\u7f6e\u3092\u898b\u3064\u3051\u308b\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @return array \u898b\u3064\u304b\u3063\u305f\u4f4d\u7f6e\u306e\u914d\u5217\n *\/\nfunction findAllPositions($haystack, $needle) {\n    $positions = [];\n    $pos = 0;\n    \n    while (($pos = strpos($haystack, $needle, $pos)) !== false) {\n        $positions[] = $pos;\n        $pos += strlen($needle); \/\/ \u6b21\u306e\u691c\u7d22\u958b\u59cb\u4f4d\u7f6e\u3092\u8a2d\u5b9a\n    }\n    \n    return $positions;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"PHP\u306fWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u9069\u3057\u305fPHP\u3068\u3044\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\";\n$positions = findAllPositions($text, \"PHP\");\nprint_r($positions); \/\/ [0, 23]\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-12\">4. \u30a8\u30c3\u30b8\u30b1\u30fc\u30b9: \u7a7a\u306e\u6587\u5b57\u5217\u3068\u6570\u5024\u51e6\u7406<\/h4>\n\n\n\n<p><code>strpos()<\/code>\u3092\u4f7f\u3046\u969b\u306e\u4e00\u822c\u7684\u306a\u30a8\u30c3\u30b8\u30b1\u30fc\u30b9\u3068\u305d\u306e\u5bfe\u51e6\u6cd5\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30a8\u30c3\u30b8\u30b1\u30fc\u30b91: \u7a7a\u306e\u6587\u5b57\u5217\u3092\u691c\u7d22\ntry {\n    $result = strpos(\"hello\", \"\"); \/\/ PHP 8.0\u4ee5\u964d\u3067\u306fEmptyNeedleException\u304c\u767a\u751f\n} catch (ValueError $e) {\n    echo \"\u30a8\u30e9\u30fc: \" . $e-&gt;getMessage() . \"\\n\";\n}\n\n\/\/ \u30a8\u30c3\u30b8\u30b1\u30fc\u30b92: \u6570\u5024\u3068\u6587\u5b57\u5217\u306e\u81ea\u52d5\u5909\u63db\n$text = \"123456\";\n$pos = strpos($text, 34); \/\/ \u6570\u502434\u306f\u6587\u5b57\u5217\"34\"\u306b\u5909\u63db\u3055\u308c\u308b\necho \"\u4f4d\u7f6e: \" . $pos . \"\\n\"; \/\/ \u4f4d\u7f6e: 2\n\n\/\/ \u30a8\u30c3\u30b8\u30b1\u30fc\u30b93: null\u3068\u306e\u6bd4\u8f03\n$pos = strpos(\"hello\", \"z\"); \/\/ false\u304c\u8fd4\u3055\u308c\u308b\nvar_dump($pos == null); \/\/ bool(true) - \u3053\u308c\u306f\u8aa4\u691c\u51fa\nvar_dump($pos === null); \/\/ bool(false) - \u6b63\u78ba\nvar_dump($pos === false); \/\/ bool(true) - \u6b63\u78ba\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-13\">5. \u5b9f\u7528\u7684\u306a\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u4f8b<\/h4>\n\n\n\n<p>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306b<code>@<\/code>\u8a18\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u306e\u7c21\u6613\u30c1\u30a7\u30c3\u30af\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function isValidEmailFormat($email) {\n    \/\/ @\u8a18\u53f7\u304c\u542b\u307e\u308c\u3001\u5148\u982d\u3067\u3082\u672b\u5c3e\u3067\u3082\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\n    $atPosition = strpos($email, '@');\n    return $atPosition !== false &amp;&amp; $atPosition &gt; 0 &amp;&amp; $atPosition &lt; strlen($email) - 1;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\necho isValidEmailFormat(\"user@example.com\") ? \"\u6709\u52b9\" : \"\u7121\u52b9\"; \/\/ \u6709\u52b9\necho isValidEmailFormat(\"invalid-email\") ? \"\u6709\u52b9\" : \"\u7121\u52b9\"; \/\/ \u7121\u52b9\n<\/pre>\n\n\n\n<p><code>strpos()<\/code>\u306f\u5358\u7d14\u306a\u6587\u5b57\u5217\u691c\u7d22\u306e\u57fa\u672c\u30c4\u30fc\u30eb\u3067\u3059\u304c\u3001PHP 8.0\u304b\u3089\u306f\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u7d39\u4ecb\u3059\u308b<code>str_contains()<\/code>\u3068\u3044\u3046\u3001\u3088\u308a\u76f4\u611f\u7684\u306a\u95a2\u6570\u304c\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u3002\u53e4\u3044PHP\u30b3\u30fc\u30c9\u3068\u306e\u4e92\u63db\u6027\u3084\u3001\u4f4d\u7f6e\u60c5\u5831\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u306f\u5f15\u304d\u7d9a\u304d<code>strpos()<\/code>\u306f\u91cd\u8981\u306a\u95a2\u6570\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001PHP 8.0\u3067\u5c0e\u5165\u3055\u308c\u305f\u3088\u308a\u76f4\u611f\u7684\u306astr_contains()\u95a2\u6570\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-14\">\u65b9\u6cd52\uff1aPHP 8\u306estr_contains()\u306b\u3088\u308b\u7c21\u6f54\u306a\u6587\u5b57\u5217\u691c\u7d22<\/h2>\n\n\n\n<p>PHP 8.0\uff082020\u5e7411\u6708\u30ea\u30ea\u30fc\u30b9\uff09\u3067\u5c0e\u5165\u3055\u308c\u305f<code>str_contains()<\/code>\u95a2\u6570\u306f\u3001\u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u3092\u542b\u3093\u3067\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u6700\u3082\u76f4\u611f\u7684\u306a\u65b9\u6cd5\u3067\u3059\u30022025\u5e74\u306e\u73fe\u5728\u3001\u591a\u304f\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304cPHP 8\u7cfb\u306b\u79fb\u884c\u3057\u3066\u304a\u308a\u3001\u3053\u306e\u95a2\u6570\u3092\u6d3b\u7528\u3067\u304d\u308b\u74b0\u5883\u304c\u6574\u3063\u3066\u304d\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-15\">str_contains()\u306e\u5c0e\u5165\u80cc\u666f\u3068strpos()\u3068\u306e\u9055\u3044<\/h3>\n\n\n\n<p><code>str_contains()<\/code>\u95a2\u6570\u306f\u3001PHP\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u304b\u3089\u306e\u9577\u5e74\u306e\u8981\u671b\u3092\u53d7\u3051\u3066\u5c0e\u5165\u3055\u308c\u307e\u3057\u305f\u3002\u958b\u767a\u8005\u304c\u5358\u306b\u6587\u5b57\u5217\u5305\u542b\u3092\u30c1\u30a7\u30c3\u30af\u3057\u305f\u3044\u5834\u5408\u3001<code>strpos() !== false<\/code>\u3068\u3044\u3046\u66f8\u304d\u65b9\u306f\u76f4\u611f\u7684\u3067\u306f\u306a\u304f\u3001\u7279\u306b\u521d\u5fc3\u8005\u306b\u3068\u3063\u3066\u306f\u6df7\u4e71\u306e\u539f\u56e0\u3068\u306a\u3063\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p><code>str_contains()<\/code>\u306e\u69cb\u6587\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">bool str_contains(string $haystack, string $needle)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$needle<\/code> \u2013 \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code>\u304c<code>$needle<\/code>\u3092\u542b\u3093\u3067\u3044\u308b\u5834\u5408\u306f<code>true<\/code><\/li>\n\n\n\n<li>\u305d\u3046\u3067\u306a\u3044\u5834\u5408\u306f<code>false<\/code><\/li>\n<\/ul>\n\n\n\n<p><code>strpos()<\/code>\u3068\u306e\u4e3b\u306a\u9055\u3044\u306f\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u76f4\u611f\u7684\u306a\u771f\u507d\u5024\u306e\u8fd4\u5374<\/strong>: \u4f4d\u7f6e\u3092\u8fd4\u3059\u306e\u3067\u306f\u306a\u304f\u3001\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u306e\u771f\u507d\u5024\u3092\u8fd4\u3057\u307e\u3059<\/li>\n\n\n\n<li><strong>\u7c21\u6f54\u306a\u69cb\u6587<\/strong>: <code>strpos($haystack, $needle) !== false<\/code>\u3067\u306f\u306a\u304f<code>str_contains($haystack, $needle)<\/code>\u3068\u66f8\u3051\u307e\u3059<\/li>\n\n\n\n<li><strong>\u30a8\u30e9\u30fc\u51e6\u7406\u306e\u6539\u5584<\/strong>: \u7a7a\u6587\u5b57\u5217\u306e<code>$needle<\/code>\u304c\u8a31\u5bb9\u3055\u308c\u3066\u3044\u307e\u3059\uff08\u5e38\u306b<code>true<\/code>\u3092\u8fd4\u3057\u307e\u3059\uff09<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ strpos()\u3092\u4f7f\u3063\u305f\u5f93\u6765\u306e\u65b9\u6cd5\n$contains = strpos(\"Hello World\", \"World\") !== false;\n\n\/\/ str_contains()\u3092\u4f7f\u3063\u305f\u65b0\u3057\u3044\u65b9\u6cd5\n$contains = str_contains(\"Hello World\", \"World\");\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u30b7\u30f3\u30d7\u30eb\u3067\u8aad\u307f\u3084\u3059\u3044\u30b3\u30fc\u30c9\u306e\u5b9f\u73fe\u65b9\u6cd5<\/h3>\n\n\n\n<p><code>str_contains()<\/code>\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u304c\u5927\u5e45\u306b\u5411\u4e0a\u3057\u307e\u3059\u3002\u5b9f\u969b\u306e\u4f7f\u7528\u4f8b\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-17\">1. \u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP\u306f2025\u5e74\u3082\u4eba\u6c17\u306e\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u8a00\u8a9e\u3067\u3059\";\n\n\/\/ \u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u306e\u30c1\u30a7\u30c3\u30af\nif (str_contains($text, \"\u4eba\u6c17\")) {\n    echo \"\u3053\u306e\u6587\u7ae0\u306f\u300c\u4eba\u6c17\u300d\u3068\u3044\u3046\u5358\u8a9e\u3092\u542b\u3093\u3067\u3044\u307e\u3059\";\n}\n\n\/\/ \u5426\u5b9a\u5f62\u306e\u30c1\u30a7\u30c3\u30af\nif (!str_contains($text, \"Java\")) {\n    echo \"\u3053\u306e\u6587\u7ae0\u306f\u300cJava\u300d\u3068\u3044\u3046\u5358\u8a9e\u3092\u542b\u3093\u3067\u3044\u307e\u305b\u3093\";\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-18\">2. \u914d\u5217\u5185\u306e\u6587\u5b57\u5217\u691c\u7d22<\/h4>\n\n\n\n<p>\u914d\u5217\u5185\u306e\u6587\u5b57\u5217\u3092\u691c\u7d22\u3059\u308b\u5834\u5408\u3001<code>array_filter()<\/code>\u3068\u7d44\u307f\u5408\u308f\u305b\u3066\u4f7f\u3046\u3068\u52b9\u679c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$articles = [\n    \"PHP\u306e\u57fa\u672c\u69cb\u6587\u306b\u3064\u3044\u3066\",\n    \"JavaScript\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u6bd4\u8f03\",\n    \"PHP\u3068MySQL\u306e\u9023\u643a\u65b9\u6cd5\",\n    \"Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\"\n];\n\n\/\/ PHP\u306b\u95a2\u3059\u308b\u8a18\u4e8b\u3092\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\n$phpArticles = array_filter($articles, function($article) {\n    return str_contains($article, \"PHP\");\n});\n\nprint_r($phpArticles);\n\/\/ \u51fa\u529b:\n\/\/ Array (\n\/\/     [0] =&gt; PHP\u306e\u57fa\u672c\u69cb\u6587\u306b\u3064\u3044\u3066\n\/\/     [2] =&gt; PHP\u3068MySQL\u306e\u9023\u643a\u65b9\u6cd5\n\/\/ )\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-19\">3. \u8907\u6570\u6761\u4ef6\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/h4>\n\n\n\n<p><code>str_contains()<\/code>\u306f\u6761\u4ef6\u5f0f\u5185\u3067\u4ed6\u306e\u6761\u4ef6\u3068\u7d44\u307f\u5408\u308f\u305b\u3084\u3059\u3044\u3068\u3044\u3046\u5229\u70b9\u3082\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function categorizeContent($content) {\n    $categories = [];\n    \n    if (str_contains($content, \"PHP\") || str_contains($content, \"Laravel\")) {\n        $categories[] = \"PHP\u958b\u767a\";\n    }\n    \n    if (str_contains($content, \"\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\") &amp;&amp; !str_contains($content, \"\u521d\u5fc3\u8005\")) {\n        $categories[] = \"\u4e0a\u7d1a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\";\n    }\n    \n    if (str_contains(strtolower($content), \"database\") || \n        str_contains($content, \"SQL\") || \n        str_contains($content, \"MySQL\")) {\n        $categories[] = \"\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\";\n    }\n    \n    return $categories;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$article = \"PHP\u3068MySQL\u3092\u4f7f\u3063\u305f\u5b89\u5168\u306aWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\";\n$categories = categorizeContent($article);\nprint_r($categories);\n\/\/ \u51fa\u529b: Array ( [0] =&gt; PHP\u958b\u767a [1] =&gt; \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 )\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-20\">4. \u7a7a\u6587\u5b57\u5217\u306e\u51e6\u7406<\/h4>\n\n\n\n<p><code>str_contains()<\/code>\u306f\u7a7a\u6587\u5b57\u5217\u306e\u53d6\u308a\u6271\u3044\u3067<code>strpos()<\/code>\u3068\u7570\u306a\u308b\u6319\u52d5\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u7a7a\u306e\u6587\u5b57\u5217\u3092\u691c\u7d22\nvar_dump(str_contains(\"Hello\", \"\")); \/\/ bool(true) - \u7a7a\u6587\u5b57\u5217\u306f\u5e38\u306b\u542b\u307e\u308c\u3066\u3044\u308b\u3068\u5224\u65ad\n\n\/\/ strpos()\u3067\u306f\u3001PHP 8.0\u4ee5\u964d\u306fValueError\u304c\u767a\u751f\ntry {\n    $result = strpos(\"Hello\", \"\");\n} catch (ValueError $e) {\n    echo $e-&gt;getMessage(); \/\/ strpos(): Argument #2 ($needle) must not be empty\n}\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-21\">\u4e0b\u4f4d\u4e92\u63db\u6027\u3068\u4ee3\u66ff\u624b\u6bb5<\/h3>\n\n\n\n<p>PHP 8.0\u672a\u6e80\u306e\u74b0\u5883\u3067\u306f<code>str_contains()<\/code>\u95a2\u6570\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u3057\u304b\u3057\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30dd\u30ea\u30d5\u30a3\u30eb\uff08\u4ee3\u66ff\u5b9f\u88c5\uff09\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u540c\u69d8\u306e\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">if (!function_exists('str_contains')) {\n    \/**\n     * str_contains()\u306e\u30dd\u30ea\u30d5\u30a3\u30eb\u5b9f\u88c5\n     * PHP 8.0\u672a\u6e80\u306e\u74b0\u5883\u3067\u4f7f\u7528\n     *\/\n    function str_contains($haystack, $needle) {\n        \/\/ \u7a7a\u6587\u5b57\u5217\u306e\u5834\u5408\u306f\u5e38\u306btrue\n        if ($needle === '') {\n            return true;\n        }\n        \/\/ strpos\u306e\u7d50\u679c\u3092\u771f\u507d\u5024\u306b\u5909\u63db\n        return strpos($haystack, $needle) !== false;\n    }\n}\n\n\/\/ \u3053\u308c\u3067\u74b0\u5883\u306b\u95a2\u308f\u3089\u305astr_contains()\u304c\u4f7f\u7528\u53ef\u80fd\n$result = str_contains(\"PHP 7.4\u3067\u3082\u52d5\u4f5c\u3057\u307e\u3059\", \"7.4\");\nvar_dump($result); \/\/ bool(true)\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30dd\u30ea\u30d5\u30a3\u30eb\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4ed6\u306e\u90e8\u5206\u3067PHP 8.0\u306e\u6a5f\u80fd\u3092\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306b\u7279\u306b\u6709\u7528\u3067\u3059\u3002\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u3001\u591a\u304f\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\uff08Laravel\u3001Symfony\u306a\u3069\uff09\u3067\u306f\u65e2\u306b\u3053\u306e\u3088\u3046\u306a\u30dd\u30ea\u30d5\u30a3\u30eb\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u305f\u3081\u3001\u8ffd\u52a0\u306e\u5b9f\u88c5\u306f\u4e0d\u8981\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-22\">Composer\u7d4c\u7531\u3067\u306e\u30dd\u30ea\u30d5\u30a3\u30eb<\/h4>\n\n\n\n<p>\u8907\u6570\u306ePHP 8.0\u6a5f\u80fd\u3092\u4e0b\u4f4d\u4e92\u63db\u6027\u3092\u6301\u305f\u305b\u305f\u3044\u5834\u5408\u306f\u3001Composer\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3082\u4e00\u3064\u306e\u9078\u629e\u80a2\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">composer require symfony\/polyfill-php80\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u3067\u3001<code>str_contains()<\/code>\u3092\u542b\u3080PHP 8.0\u306e\u69d8\u3005\u306a\u6a5f\u80fd\u304c\u53e4\u3044PHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3082\u5229\u7528\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-23\">str_contains()\u306e\u5b9f\u7528\u4f8b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">1. URL\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * URL\u304c\u7279\u5b9a\u306e\u30c9\u30e1\u30a4\u30f3\u3092\u6301\u3064\u304b\u78ba\u8a8d\u3059\u308b\n *\/\nfunction isValidDomain($url, $allowedDomains) {\n    foreach ($allowedDomains as $domain) {\n        if (str_contains($url, $domain)) {\n            return true;\n        }\n    }\n    return false;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$url = \"https:\/\/example.com\/page\";\n$allowedDomains = [\"example.com\", \"test.org\"];\necho isValidDomain($url, $allowedDomains) ? \"\u6709\u52b9\u306a\u30c9\u30e1\u30a4\u30f3\" : \"\u7121\u52b9\u306a\u30c9\u30e1\u30a4\u30f3\";\n\/\/ \u51fa\u529b: \u6709\u52b9\u306a\u30c9\u30e1\u30a4\u30f3\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-25\">2. \u8a00\u8a9e\u691c\u51fa\u306e\u7c21\u6613\u5b9f\u88c5<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30c6\u30ad\u30b9\u30c8\u306e\u8a00\u8a9e\u3092\u7c21\u6613\u7684\u306b\u63a8\u5b9a\u3059\u308b\n *\/\nfunction detectLanguage($text) {\n    \/\/ \u65e5\u672c\u8a9e\u306e\u7279\u5fb4\u7684\u306a\u6587\u5b57\u3092\u542b\u3080\u304b\n    if (str_contains($text, '\u306f') || str_contains($text, '\u3067\u3059') || \n        str_contains($text, '\u307e\u3059') || str_contains($text, '\u306e')) {\n        return 'ja';\n    }\n    \n    \/\/ \u82f1\u8a9e\u306e\u3088\u304f\u3042\u308b\u5358\u8a9e\u3084\u7279\u5fb4\u3092\u78ba\u8a8d\n    if (str_contains($text, 'the') || str_contains($text, 'and') || \n        str_contains($text, 'is') || str_contains($text, 'are')) {\n        return 'en';\n    }\n    \n    \/\/ \u305d\u306e\u4ed6\u306e\u8a00\u8a9e...\n    return 'unknown';\n}\n\n\/\/ \u4f7f\u7528\u4f8b\necho detectLanguage(\"PHP\u306f\u7d20\u6674\u3089\u3057\u3044\u8a00\u8a9e\u3067\u3059\"); \/\/ ja\necho detectLanguage(\"PHP is a great language\"); \/\/ en\n<\/pre>\n\n\n\n<p><code>str_contains()<\/code>\u95a2\u6570\u306f\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\u3092\u884c\u3046\u969b\u306e\u6700\u9069\u306a\u9078\u629e\u80a2\u3067\u3059\u3002\u30b3\u30fc\u30c9\u304c\u8aad\u307f\u3084\u3059\u304f\u306a\u308a\u3001\u30a8\u30e9\u30fc\u306e\u30ea\u30b9\u30af\u3082\u6e1b\u5c11\u3057\u307e\u3059\u3002PHP 8.0\u4ee5\u4e0a\u306e\u74b0\u5883\u3067\u3042\u308c\u3070\u3001<code>strpos() !== false<\/code>\u306e\u4ee3\u308f\u308a\u306b<code>str_contains()<\/code>\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u5f37\u304f\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u6587\u5b57\u5217\u691c\u7d22\u3092\u884c\u3046<code>stripos()<\/code>\u95a2\u6570\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-26\">\u65b9\u6cd53\uff1astripos()\u3092\u4f7f\u3063\u305f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22<\/h2>\n\n\n\n<p>Web\u958b\u767a\u3067\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u3084\u5916\u90e8\u30c7\u30fc\u30bf\u3092\u6271\u3046\u969b\u306b\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u6587\u5b57\u5217\u691c\u7d22\u3092\u884c\u3044\u305f\u3044\u30b1\u30fc\u30b9\u304c\u591a\u304f\u3042\u308a\u307e\u3059\u3002<code>stripos()<\/code>\u95a2\u6570\u306f\u3001<code>strpos()<\/code>\u306e\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u3001\u3053\u308c\u3092\u7c21\u5358\u306b\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-27\">\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b\u5fc5\u8981\u304c\u306a\u3044\u30b1\u30fc\u30b9<\/h3>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b7\u30ca\u30ea\u30aa\u3067\u306f\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\u304c\u6709\u7528\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e6\u30fc\u30b6\u30fc\u691c\u7d22\u6a5f\u80fd<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u306f\u300cPHP\u300d\u3092\u691c\u7d22\u3059\u308b\u3064\u3082\u308a\u3067\u3082\u300cphp\u300d\u3068\u5165\u529b\u3059\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u691c\u8a3c<\/strong>\n<ul class=\"wp-block-list\">\n<li>RFC 5321\u306b\u3088\u308b\u3068\u3001\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u90e8\u5206\uff08@\u306e\u524d\uff09\u306f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u307e\u3059\u304c\u3001\u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u306f\u533a\u5225\u3057\u307e\u305b\u3093<\/li>\n\n\n\n<li>\u3057\u304b\u3057\u5b9f\u969b\u306e\u51e6\u7406\u3067\u306f\u3001\u5168\u4f53\u3092\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u533a\u5225\u306a\u3057\u3067\u6271\u3046\u3053\u3068\u304c\u4e00\u822c\u7684\u3067\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c9\u30e1\u30a4\u30f3\u540d\u306e\u6bd4\u8f03<\/strong>\n<ul class=\"wp-block-list\">\n<li>URL\u306e\u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u3082\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u307e\u305b\u3093\uff08example.com\u3068EXAMPLE.COM\u306f\u540c\u3058\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u81ea\u7136\u8a00\u8a9e\u51e6\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u8a18\u4e8b\u5185\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22\u3067\u306f\u901a\u5e38\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306f\u610f\u5473\u7684\u306a\u9055\u3044\u3092\u3082\u305f\u3089\u3057\u307e\u305b\u3093\uff08\u300cPHP\u300d\u3068\u300cphp\u300d\u306f\u540c\u3058\u6280\u8853\u3092\u6307\u3057\u307e\u3059\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u591a\u8a00\u8a9e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u69d8\u3005\u306a\u8a00\u8a9e\u3084\u6587\u5316\u306b\u5bfe\u5fdc\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u30eb\u30fc\u30eb\u304c\u7570\u306a\u308b\u8a00\u8a9e\u306b\u5bfe\u5fdc\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-28\">stripos()\u306e\u52b9\u679c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<p><code>stripos()<\/code>\u306e\u69cb\u6587\u306f<code>strpos()<\/code>\u3068\u307b\u307c\u540c\u3058\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int|false stripos(string $haystack, string $needle, int $offset = 0)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$needle<\/code> \u2013 \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$offset<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u3092\u958b\u59cb\u3059\u308b\u4f4d\u7f6e<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$needle<\/code>\u304c<code>$haystack<\/code>\u5185\u3067\u898b\u3064\u304b\u3063\u305f\u5834\u5408\u3001\u305d\u306e\u958b\u59cb\u4f4d\u7f6e\uff080\u304b\u3089\u59cb\u307e\u308b\uff09<\/li>\n\n\n\n<li>\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u5834\u5408\u306f<code>false<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP\u306f\u4eba\u6c17\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\u3002php\u3067\u958b\u767a\u3092\u59cb\u3081\u307e\u3057\u3087\u3046\u3002\";\n$search = \"php\";\n\n\/\/ \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b\u691c\u7d22\n$pos1 = strpos($text, $search);\necho \"strpos: \" . ($pos1 !== false ? \"\u4f4d\u7f6e {$pos1} \u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\" : \"\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\") . \"\\n\";\n\/\/ \u51fa\u529b: strpos: \u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\n\n\/\/ \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\n$pos2 = stripos($text, $search);\necho \"stripos: \" . ($pos2 !== false ? \"\u4f4d\u7f6e {$pos2} \u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\" : \"\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\") . \"\\n\";\n\/\/ \u51fa\u529b: stripos: \u4f4d\u7f6e 0 \u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\n\n\/\/ 2\u756a\u76ee\u306e\u51fa\u73fe\u4f4d\u7f6e\u3092\u691c\u7d22\n$pos3 = stripos($text, $search, $pos2 + 1);\necho \"2\u56de\u76ee\u306estripos: \" . ($pos3 !== false ? \"\u4f4d\u7f6e {$pos3} \u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\" : \"\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\");\n\/\/ \u51fa\u529b: 2\u56de\u76ee\u306estripos: \u4f4d\u7f6e 20 \u3067\u898b\u3064\u304b\u308a\u307e\u3057\u305f\n<\/pre>\n\n\n\n<p><code>stripos()<\/code>\u3092\u4f7f\u7528\u3059\u308b\u969b\u3082\u3001<code>strpos()<\/code>\u3068\u540c\u69d8\u306b\u623b\u308a\u5024\u306e\u78ba\u8a8d\u306f\u5fc5\u305a<code>!== false<\/code>\u3067\u884c\u3046\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-29\">\u52b9\u679c\u7684\u306a\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<p>\u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u3092\u542b\u3080\u304b\u3069\u3046\u304b\u3092\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u78ba\u8a8d\u3059\u308b\u95a2\u6570\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u3092\u542b\u3080\u304b\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u78ba\u8a8d\u3059\u308b\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @return bool \u542b\u307e\u308c\u3066\u3044\u308c\u3070true\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070false\n *\/\nfunction containsIgnoreCase($haystack, $needle) {\n    return stripos($haystack, $needle) !== false;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$article = \"Web\u958b\u767a\u306b\u304a\u3044\u3066\u3001PHP\u306f\u91cd\u8981\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u3066\u3044\u307e\u3059\u3002\";\necho containsIgnoreCase($article, \"php\") ? \"PHP\u306b\u3064\u3044\u3066\u8a00\u53ca\u3055\u308c\u3066\u3044\u307e\u3059\" : \"PHP\u306b\u3064\u3044\u3066\u306f\u8a00\u53ca\u3055\u308c\u3066\u3044\u307e\u305b\u3093\";\n\/\/ \u51fa\u529b: PHP\u306b\u3064\u3044\u3066\u8a00\u53ca\u3055\u308c\u3066\u3044\u307e\u3059\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-30\">\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u691c\u7d22\u306e\u5b9f\u88c5\u4f8b<\/h4>\n\n\n\n<p>\u5b9f\u969b\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u304a\u3051\u308b\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306b\u57fa\u3065\u304f\u691c\u7d22\u306e\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u8a18\u4e8b\u30ea\u30b9\u30c8\u304b\u3089\u6307\u5b9a\u3057\u305f\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u542b\u3080\u8a18\u4e8b\u3092\u691c\u7d22\n * \n * @param array $articles \u8a18\u4e8b\u306e\u914d\u5217\n * @param string $keyword \u691c\u7d22\u30ad\u30fc\u30ef\u30fc\u30c9\n * @return array \u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u542b\u3080\u8a18\u4e8b\u306e\u914d\u5217\n *\/\nfunction searchArticles($articles, $keyword) {\n    return array_filter($articles, function($article) use ($keyword) {\n        return stripos($article['title'], $keyword) !== false || \n               stripos($article['content'], $keyword) !== false;\n    });\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$articles = [\n    ['id' =&gt; 1, 'title' =&gt; 'PHP\u306e\u57fa\u790e', 'content' =&gt; 'PHP\u306e\u57fa\u672c\u69cb\u6587\u306b\u3064\u3044\u3066\u5b66\u3073\u307e\u3059'],\n    ['id' =&gt; 2, 'title' =&gt; 'JavaScript\u306e\u5fdc\u7528', 'content' =&gt; '\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u958b\u767a\u306e\u30c6\u30af\u30cb\u30c3\u30af'],\n    ['id' =&gt; 3, 'title' =&gt; '\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5165\u9580', 'content' =&gt; 'php\u304b\u3089\u59cb\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0'],\n];\n\n$results = searchArticles($articles, 'php');\nforeach ($results as $article) {\n    echo $article['title'] . \"\\n\";\n}\n\/\/ \u51fa\u529b:\n\/\/ PHP\u306e\u57fa\u790e\n\/\/ \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u5165\u9580\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-31\">str_contains()\u3068\u7d44\u307f\u5408\u308f\u305b\u305f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\u65b9\u6cd5<\/h3>\n\n\n\n<p>PHP 8\u74b0\u5883\u3067\u306f\u3001<code>stripos() !== false<\/code>\u306e\u30d1\u30bf\u30fc\u30f3\u306b\u4ee3\u308f\u308b\u3001\u3088\u308a\u76f4\u611f\u7684\u306a\u65b9\u6cd5\u304c\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<code>str_contains()<\/code>\u3092\u4f7f\u3063\u305f\u5834\u5408\u306e\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\u306f\u3001<code>strtolower()<\/code>\u3084<code>mb_strtolower()<\/code>\u3068\u7d44\u307f\u5408\u308f\u305b\u3066\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9f\u88c5\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u6587\u5b57\u5217\u304c\u5225\u306e\u6587\u5b57\u5217\u3092\u542b\u3080\u304b\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u78ba\u8a8d\u3059\u308b\uff08PHP 8\uff09\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @return bool \u542b\u307e\u308c\u3066\u3044\u308c\u3070true\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070false\n *\/\nfunction str_contains_i($haystack, $needle) {\n    return str_contains(strtolower($haystack), strtolower($needle));\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"PHP\u306f\u69d8\u3005\u306aOS\u3067\u52d5\u4f5c\u3057\u307e\u3059\";\necho str_contains_i($text, \"php\") ? \"\u542b\u307e\u308c\u3066\u3044\u307e\u3059\" : \"\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\";\n\/\/ \u51fa\u529b: \u542b\u307e\u308c\u3066\u3044\u307e\u3059\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-32\">\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5bfe\u5fdc\u7248<\/h4>\n\n\n\n<p>\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6271\u3046\u5834\u5408\u306f\u3001<code>mb_strtolower()<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5bfe\u5fdc\u306e\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @param string $encoding \u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\n * @return bool \u542b\u307e\u308c\u3066\u3044\u308c\u3070true\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070false\n *\/\nfunction mb_str_contains_i($haystack, $needle, $encoding = 'UTF-8') {\n    return str_contains(\n        mb_strtolower($haystack, $encoding),\n        mb_strtolower($needle, $encoding)\n    );\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"\uff30\uff28\uff30\u306f\u7d20\u6674\u3089\u3057\u3044\u8a00\u8a9e\u3067\u3059\";  \/\/ \u5168\u89d2\u6587\u5b57\u306ePHP\necho mb_str_contains_i($text, \"\uff30\uff28\uff30\") ? \"\u542b\u307e\u308c\u3066\u3044\u307e\u3059\" : \"\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\";\n\/\/ \u51fa\u529b: \u542b\u307e\u308c\u3066\u3044\u307e\u3059\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-33\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30a8\u30c3\u30b8\u30b1\u30fc\u30b9<\/h3>\n\n\n\n<p><code>stripos()<\/code>\u306f<code>strpos()<\/code>\u3088\u308a\u3082\u3084\u3084\u51e6\u7406\u304c\u9045\u3044\u3053\u3068\u3092\u7406\u89e3\u3057\u3066\u304a\u304f\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u3053\u308c\u306f\u3001\u5185\u90e8\u3067\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u5909\u63db\u51e6\u7406\u304c\u884c\u308f\u308c\u308b\u305f\u3081\u3067\u3059\u3002\u7279\u306b\u5927\u91cf\u306e\u30c6\u30ad\u30b9\u30c8\u3084\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u5f71\u97ff\u3092\u8003\u616e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\n$haystack = str_repeat(\"a\", 1000000) . \"NEEDLE\" . str_repeat(\"a\", 1000000);\n$needle = \"needle\";\n\n$start = microtime(true);\n$result1 = strpos($haystack, $needle);\n$end = microtime(true);\necho \"strpos: \" . ($end - $start) . \" \u79d2\\n\";\n\n$start = microtime(true);\n$result2 = stripos($haystack, $needle);\n$end = microtime(true);\necho \"stripos: \" . ($end - $start) . \" \u79d2\\n\";\n\n\/\/ \u51fa\u529b\u4f8b:\n\/\/ strpos: 0.00098 \u79d2\n\/\/ stripos: 0.00245 \u79d2\n\/\/ (\u5b9f\u969b\u306e\u5024\u306f\u74b0\u5883\u306b\u3088\u3063\u3066\u7570\u306a\u308a\u307e\u3059)\n<\/pre>\n\n\n\n<p>\u307e\u305f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a8\u30c3\u30b8\u30b1\u30fc\u30b9\u306b\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7a7a\u6587\u5b57\u5217<\/strong>: <code>stripos()<\/code>\u3082<code>strpos()<\/code>\u3068\u540c\u69d8\u306b\u3001PHP 8.0\u4ee5\u964d\u3067\u7a7a\u306e<code>$needle<\/code>\u304c\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u56fd\u969b\u5316\uff08i18n\uff09\u3068\u5730\u57df\u5316\uff08l10n\uff09<\/strong>: \u7279\u5b9a\u306e\u8a00\u8a9e\u3067\u306f\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u5909\u63db\u306b\u7279\u6b8a\u306a\u30eb\u30fc\u30eb\u304c\u3042\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u30c9\u30a4\u30c4\u8a9e\u306e\u300c\u00df\u300d\uff08\u30a8\u30b9\u30c4\u30a7\u30c3\u30c8\uff09\u306f\u5927\u6587\u5b57\u306b\u3059\u308b\u3068\u300cSS\u300d\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u82f1\u8a9e\u4ee5\u5916\u306e\u7167\u5408\u9806\u5e8f<\/strong>: \u8a00\u8a9e\u306b\u3088\u3063\u3066\u306f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u95a2\u4fc2\u304c\u82f1\u8a9e\u3068\u7570\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30b1\u30fc\u30b9\u3067\u6b63\u78ba\u306a\u6bd4\u8f03\u3092\u884c\u3044\u305f\u3044\u5834\u5408\u306f\u3001PHP\u306e<code>Collator<\/code>\u30af\u30e9\u30b9\uff08Intl\u62e1\u5f35\uff09\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u5730\u57df\u306b\u4f9d\u5b58\u3057\u305f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\n *\/\nfunction locale_contains_i($haystack, $needle, $locale = 'en_US') {\n    $collator = new Collator($locale);\n    $collator-&gt;setStrength(Collator::SECONDARY); \/\/ \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\n    \n    \/\/ \u6587\u5b57\u5217\u3092\u5206\u5272\u3057\u3066\u6bd4\u8f03\n    $haystackLength = mb_strlen($haystack);\n    $needleLength = mb_strlen($needle);\n    \n    for ($i = 0; $i &lt;= $haystackLength - $needleLength; $i++) {\n        $substr = mb_substr($haystack, $i, $needleLength);\n        if ($collator-&gt;compare($substr, $needle) === 0) {\n            return true;\n        }\n    }\n    \n    return false;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\uff08Intl\u62e1\u5f35\u304c\u5fc5\u8981\uff09\nif (class_exists('Collator')) {\n    $text = \"Stra\u00dfe in Deutschland\";\n    echo locale_contains_i($text, \"STRASSE\", \"de_DE\") ? \"\u542b\u307e\u308c\u3066\u3044\u307e\u3059\" : \"\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\";\n    \/\/ \u51fa\u529b: \u542b\u307e\u308c\u3066\u3044\u307e\u3059\n}\n<\/pre>\n\n\n\n<p><code>stripos()<\/code>\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306e\u51e6\u7406\u3084\u691c\u7d22\u6a5f\u80fd\u306e\u5b9f\u88c5\u306a\u3069\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u533a\u5225\u304c\u91cd\u8981\u3067\u306a\u3044\u30b1\u30fc\u30b9\u3067\u975e\u5e38\u306b\u6709\u7528\u3067\u3059\u3002\u3057\u304b\u3057\u3001\u591a\u8a00\u8a9e\u5bfe\u5fdc\u3084\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u91cd\u8981\u306a\u5834\u5408\u306f\u3001\u9069\u5207\u306a\u4ee3\u66ff\u624b\u6bb5\u3084\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u3092\u691c\u8a0e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u90e8\u5206\u6587\u5b57\u5217\u306e\u62bd\u51fa\u3068\u78ba\u8a8d\u3092\u540c\u6642\u306b\u884c\u3048\u308b<code>strstr()<\/code>\u95a2\u6570\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-34\">\u65b9\u6cd54\uff1astrstr()\u306b\u3088\u308b\u90e8\u5206\u6587\u5b57\u5217\u306e\u62bd\u51fa\u3068\u78ba\u8a8d<\/h2>\n\n\n\n<p><code>strstr()<\/code>\u95a2\u6570\u306f\u3001\u5358\u306b\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u305d\u306e\u90e8\u5206\u6587\u5b57\u5217\u304b\u3089\u6587\u5b57\u5217\u306e\u672b\u5c3e\u307e\u3067\u3092\u8fd4\u3059\u7279\u5fb4\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u6587\u5b57\u5217\u306e\u691c\u7d22\u3068\u62bd\u51fa\u3092\u4e00\u5ea6\u306e\u64cd\u4f5c\u3067\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-35\">strstr()\u306e\u7279\u6027\u3068\u4f7f\u7528\u30b7\u30ca\u30ea\u30aa<\/h3>\n\n\n\n<p><code>strstr()<\/code>\u306e\u57fa\u672c\u7684\u306a\u69cb\u6587\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">string|false strstr(string $haystack, string $needle, bool $before_needle = false)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$needle<\/code> \u2013 \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$before_needle<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09true\u306e\u5834\u5408\u3001<code>$needle<\/code>\u3088\u308a\u524d\u306e\u90e8\u5206\u3092\u8fd4\u3057\u307e\u3059\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u306ffalse\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$needle<\/code>\u304c<code>$haystack<\/code>\u306b\u542b\u307e\u308c\u308b\u5834\u5408\u3001<code>$needle<\/code>\u304b\u3089<code>$haystack<\/code>\u306e\u672b\u5c3e\u307e\u3067\u306e\u90e8\u5206\u6587\u5b57\u5217\uff08\u307e\u305f\u306f<code>$before_needle<\/code>\u304ctrue\u306e\u5834\u5408\u306f\u3001<code>$haystack<\/code>\u306e\u5148\u982d\u304b\u3089<code>$needle<\/code>\u306e\u76f4\u524d\u307e\u3067\u306e\u90e8\u5206\u6587\u5b57\u5217\uff09<\/li>\n\n\n\n<li>\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u5834\u5408\u306f<code>false<\/code><\/li>\n<\/ul>\n\n\n\n<p><code>strstr()<\/code>\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3067\u7279\u306b\u5f79\u7acb\u3061\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6587\u5b57\u5217\u306e\u5206\u5272<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u306e\u307f\u3092\u53d6\u5f97\u3059\u308b<\/li>\n\n\n\n<li>URL\u304b\u3089\u30d1\u30b9\u3084\u30af\u30a8\u30ea\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u62bd\u51fa\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c6\u30ad\u30b9\u30c8\u51e6\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u7279\u5b9a\u306e\u30de\u30fc\u30ab\u30fc\u4ee5\u964d\u306e\u30c6\u30ad\u30b9\u30c8\u3092\u62bd\u51fa\u3059\u308b<\/li>\n\n\n\n<li>\u30c6\u30ad\u30b9\u30c8\u3092\u7279\u5b9a\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u524d\u5f8c\u3067\u5206\u5272\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d1\u30fc\u30b9\u51e6\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30f3\u30d7\u30eb\u306a\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u30c7\u30fc\u30bf\u3092\u89e3\u6790\u3059\u308b<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u5024\u3092\u53d6\u308a\u51fa\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$email = \"user@example.com\";\n\n\/\/ @\u4ee5\u964d\u306e\u90e8\u5206\uff08\u30c9\u30e1\u30a4\u30f3\uff09\u3092\u53d6\u5f97\n$domain = strstr($email, '@');\necho \"\u30c9\u30e1\u30a4\u30f3\u90e8\u5206: {$domain}\\n\"; \/\/ \u51fa\u529b: @example.com\n\n\/\/ @\u3088\u308a\u524d\u306e\u90e8\u5206\uff08\u30e6\u30fc\u30b6\u30fc\u540d\uff09\u3092\u53d6\u5f97\n$username = strstr($email, '@', true);\necho \"\u30e6\u30fc\u30b6\u30fc\u540d\u90e8\u5206: {$username}\\n\"; \/\/ \u51fa\u529b: user\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-36\">\u90e8\u5206\u6587\u5b57\u5217\u306e\u4f4d\u7f6e\u3068\u5185\u5bb9\u306e\u4e21\u65b9\u3092\u53d6\u5f97\u3059\u308b\u65b9\u6cd5<\/h3>\n\n\n\n<p><code>strstr()<\/code>\u3068<code>strpos()<\/code>\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u90e8\u5206\u6587\u5b57\u5217\u306e\u4f4d\u7f6e\u3068\u5185\u5bb9\u306e\u4e21\u65b9\u3092\u52b9\u7387\u7684\u306b\u53d6\u5f97\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u90e8\u5206\u6587\u5b57\u5217\u306e\u4f4d\u7f6e\u3068\u5185\u5bb9\u3092\u53d6\u5f97\u3059\u308b\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @return array|false [\u4f4d\u7f6e, \u5185\u5bb9] \u306e\u914d\u5217\u307e\u305f\u306f\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306ffalse\n *\/\nfunction findSubstring($haystack, $needle) {\n    $position = strpos($haystack, $needle);\n    \n    if ($position === false) {\n        return false;\n    }\n    \n    return [\n        'position' =&gt; $position,\n        'content' =&gt; substr($haystack, $position),\n        'length' =&gt; strlen($needle)\n    ];\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"\u91cd\u8981\u306a\u60c5\u5831: PHP\u306f\u7d20\u6674\u3089\u3057\u3044\u8a00\u8a9e\u3067\u3059\";\n$result = findSubstring($text, \"PHP\");\n\nif ($result) {\n    echo \"\u4f4d\u7f6e: {$result['position']}, \u5185\u5bb9: {$result['content']}, \u9577\u3055: {$result['length']}\";\n    \/\/ \u51fa\u529b: \u4f4d\u7f6e: 8, \u5185\u5bb9: PHP\u306f\u7d20\u6674\u3089\u3057\u3044\u8a00\u8a9e\u3067\u3059, \u9577\u3055: 3\n}\n\n\/\/ \u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u4ee5\u964d\u306e\u6587\u5b57\u5217\u3092\u51e6\u7406\u3059\u308b\u4f8b\nfunction extractContentAfterHeading($text) {\n    $parts = [];\n    \n    \/\/ \u5404\u898b\u51fa\u3057\u3054\u3068\u306e\u5185\u5bb9\u3092\u62bd\u51fa\n    if (strstr($text, '## ') !== false) {\n        $sections = explode('## ', $text);\n        array_shift($sections); \/\/ \u6700\u521d\u306e\u7a7a\u8981\u7d20\u3092\u524a\u9664\n        \n        foreach ($sections as $section) {\n            $title = strtok($section, \"\\n\");\n            $content = strstr($section, \"\\n\");\n            $parts[$title] = trim($content);\n        }\n    }\n    \n    return $parts;\n}\n\n\/\/ Markdown\u30c6\u30ad\u30b9\u30c8\u306e\u4f8b\n$markdown = \"# \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\\n\\n## \u306f\u3058\u3081\u306b\\n\u3053\u308c\u306f\u5c0e\u5165\u90e8\u5206\u3067\u3059\u3002\\n\\n## \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\\n\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\\n\\n## \u4f7f\u3044\u65b9\\n\u57fa\u672c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002\";\n\n$sections = extractContentAfterHeading($markdown);\nprint_r($sections);\n\/\/ \u51fa\u529b:\n\/\/ Array (\n\/\/     [\u306f\u3058\u3081\u306b] =&gt; \u3053\u308c\u306f\u5c0e\u5165\u90e8\u5206\u3067\u3059\u3002\n\/\/     [\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5] =&gt; \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806\u3092\u8aac\u660e\u3057\u307e\u3059\u3002\n\/\/     [\u4f7f\u3044\u65b9] =&gt; \u57fa\u672c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002\n\/\/ )\n\n\/**\n * URL\u304b\u3089\u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u3068\u30d1\u30b9\u90e8\u5206\u3092\u62bd\u51fa\u3059\u308b\n *\/\nfunction parseUrl($url) {\n    $result = [];\n    \n    \/\/ \u30d7\u30ed\u30c8\u30b3\u30eb\u90e8\u5206\u3092\u524a\u9664\n    $withoutProtocol = strstr($url, ':\/\/');\n    if ($withoutProtocol !== false) {\n        $withoutProtocol = substr($withoutProtocol, 3); \/\/ ':\/\/' \u306e\u9577\u3055(3)\u3092\u524a\u9664\n    } else {\n        $withoutProtocol = $url; \/\/ \u30d7\u30ed\u30c8\u30b3\u30eb\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u5834\u5408\n    }\n    \n    \/\/ \u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u3068\u30d1\u30b9\u90e8\u5206\u3092\u5206\u96e2\n    $domain = strstr($withoutProtocol, '\/', true);\n    $path = strstr($withoutProtocol, '\/');\n    \n    return [\n        'domain' =&gt; $domain ?: $withoutProtocol, \/\/ \u30d1\u30b9\u304c\u306a\u3044\u5834\u5408\n        'path' =&gt; $path ?: '\/' \/\/ \u30d1\u30b9\u304c\u306a\u3044\u5834\u5408\u306f\u30eb\u30fc\u30c8\u30d1\u30b9\n    ];\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$url = \"https:\/\/example.com\/path\/to\/page?query=value\";\n$parts = parseUrl($url);\necho \"\u30c9\u30e1\u30a4\u30f3: {$parts['domain']}, \u30d1\u30b9: {$parts['path']}\";\n\/\/ \u51fa\u529b: \u30c9\u30e1\u30a4\u30f3: example.com, \u30d1\u30b9: \/path\/to\/page?query=value\n\n### \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044stristr()\u306e\u6d3b\u7528\u6cd5\n\n\/\/strstr()`\u306b\u306f\u3001\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u691c\u7d22\u3092\u884c\u3046`stristr()`\u3068\u3044\u3046\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u3082\u3042\u308a\u307e\u3059\u3002\u69cb\u6587\u306f`strstr()`\u3068\u540c\u3058\u3067\u3059\u304c\u3001\u691c\u7d22\u6642\u306b\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u307e\u305b\u3093\u3002\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306f\u7279\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u5834\u9762\u3067\u5f79\u7acb\u3061\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306b\u57fa\u3065\u304f\u691c\u7d22<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u691c\u7d22\u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u6c17\u306b\u3057\u306a\u3044\u30b3\u30f3\u30c6\u30f3\u30c4\u691c\u7d22<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3084\u30c9\u30e1\u30a4\u30f3\u51e6\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u30ed\u30fc\u30ab\u30eb\u90e8\u5206\u3068\u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u306e\u62bd\u51fa\uff08\u30e1\u30fc\u30eb\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u306f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u304c\u533a\u5225\u3055\u308c\u306a\u3044\u90e8\u5206\u304c\u3042\u308b\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>HTTP\u30d8\u30c3\u30c0\u30fc\u306e\u89e3\u6790<\/strong>\n<ul class=\"wp-block-list\">\n<li>HTTP\u30d8\u30c3\u30c0\u30fc\u540d\u306f\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * HTTP\u30d8\u30c3\u30c0\u30fc\u304b\u3089Content-Type\u3092\u53d6\u5f97\u3059\u308b\uff08\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\uff09\n *\/\nfunction getContentType($headers) {\n    foreach ($headers as $header) {\n        $contentType = stristr($header, 'content-type:');\n        if ($contentType !== false) {\n            \/\/ 'content-type:' \u3088\u308a\u5f8c\u308d\u306e\u90e8\u5206\u3092\u53d6\u5f97\u3057\u3001\u4f59\u5206\u306a\u7a7a\u767d\u3092\u524a\u9664\n            return trim(substr($contentType, strlen('content-type:')));\n        }\n    }\n    return null;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$headers = [\n    'Host: example.com',\n    'Content-Type: application\/json',\n    'Accept: *\/*'\n];\n\necho \"Content-Type: \" . getContentType($headers);\n\/\/ \u51fa\u529b: Content-Type: application\/json\n<\/pre>\n\n\n\n<p><code>stristr()<\/code>\u306f<code>strstr()<\/code>\u3068\u540c\u69d8\u306bfalse\u3092\u8fd4\u3059\u53ef\u80fd\u6027\u304c\u3042\u308b\u305f\u3081\u3001\u623b\u308a\u5024\u306e\u30c1\u30a7\u30c3\u30af\u306f\u53b3\u5bc6\u306b\u884c\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$result = stristr($text, $search);\nif ($result !== false) {\n    \/\/ \u6587\u5b57\u5217\u304c\u898b\u3064\u304b\u3063\u305f\u5834\u5408\u306e\u51e6\u7406\n} else {\n    \/\/ \u6587\u5b57\u5217\u304c\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u5834\u5408\u306e\u51e6\u7406\n}\n<\/pre>\n\n\n\n<p><code>strstr()<\/code>\u3068<code>stristr()<\/code>\u306f\u3001\u5358\u306a\u308b\u691c\u7d22\u3060\u3051\u3067\u306a\u304f\u691c\u7d22\u7d50\u679c\u306e\u62bd\u51fa\u3082\u5fc5\u8981\u306a\u5834\u5408\u306b\u7279\u306b\u4fbf\u5229\u3067\u3059\u3002\u6587\u5b57\u5217\u64cd\u4f5c\u3068\u691c\u7d22\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u3044\u5834\u5408\u306b\u306f\u3001\u3053\u308c\u3089\u306e\u95a2\u6570\u304c\u6700\u9069\u306a\u9078\u629e\u3068\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u308a\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u305f\u3081\u306e\u6b63\u898f\u8868\u73fe\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-37\">\u65b9\u6cd55\uff1a\u6b63\u898f\u8868\u73fe\u3092\u4f7f\u3063\u305f\u9ad8\u5ea6\u306a\u6587\u5b57\u5217\u30d1\u30bf\u30fc\u30f3\u691c\u7d22<\/h2>\n\n\n\n<p>\u5358\u7d14\u306a\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\u3067\u306f\u5bfe\u5fdc\u3067\u304d\u306a\u3044\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u304c\u5fc5\u8981\u306a\u5834\u5408\u3001PHP\u306e\u6b63\u898f\u8868\u73fe\u95a2\u6570\u304c\u5f37\u529b\u306a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3068\u306a\u308a\u307e\u3059\u3002\u7279\u306b<code>preg_match()<\/code>\u95a2\u6570\u3092\u4f7f\u3046\u3053\u3068\u3067\u3001\u9ad8\u5ea6\u306a\u6761\u4ef6\u306b\u57fa\u3065\u3044\u305f\u6587\u5b57\u5217\u691c\u7d22\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-38\">preg_match()\u3092\u4f7f\u3063\u305f\u67d4\u8edf\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0<\/h3>\n\n\n\n<p><code>preg_match()<\/code>\u306e\u57fa\u672c\u69cb\u6587\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int preg_match(string $pattern, string $subject, array &amp;$matches = null, int $flags = 0, int $offset = 0)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$pattern<\/code> \u2013 \u691c\u7d22\u3059\u308b\u30d1\u30bf\u30fc\u30f3\uff08\u6b63\u898f\u8868\u73fe\uff09<\/li>\n\n\n\n<li><code>$subject<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$matches<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u30de\u30c3\u30c1\u3057\u305f\u7d50\u679c\u3092\u683c\u7d0d\u3059\u308b\u914d\u5217<\/li>\n\n\n\n<li><code>$flags<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u306e\u30d5\u30e9\u30b0<\/li>\n\n\n\n<li><code>$offset<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u3092\u958b\u59cb\u3059\u308b\u4f4d\u7f6e<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30de\u30c3\u30c1\u3057\u305f\u5834\u5408\u306f1<\/li>\n\n\n\n<li>\u30de\u30c3\u30c1\u3057\u306a\u304b\u3063\u305f\u5834\u5408\u306f0<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306ffalse<\/li>\n<\/ul>\n\n\n\n<p>\u6b63\u898f\u8868\u73fe\u306e\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"\u304a\u554f\u3044\u5408\u308f\u305b\u306finfo@example.com\u307e\u3067\u304a\u9858\u3044\u3057\u307e\u3059\u3002\";\n\n\/\/ \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3092\u691c\u7d22\u3059\u308b\u6b63\u898f\u8868\u73fe\u30d1\u30bf\u30fc\u30f3\n$pattern = '\/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\/';\n\nif (preg_match($pattern, $text, $matches)) {\n    echo \"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f: \" . $matches[0];\n} else {\n    echo \"\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\";\n}\n\/\/ \u51fa\u529b: \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f: info@example.com\n<\/pre>\n\n\n\n<p>\u6b63\u898f\u8868\u73fe\u3067\u306f\u3001\u30d1\u30bf\u30fc\u30f3\u3092\u30c7\u30ea\u30df\u30bf\uff08\u901a\u5e38\u306f<code>\/<\/code>\uff09\u3067\u56f2\u307f\u3001\u305d\u306e\u5f8c\u306b\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30e2\u30c7\u30a3\u30d5\u30a1\u30a4\u30a2\u3092\u4ed8\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4e3b\u306a\u30e2\u30c7\u30a3\u30d5\u30a1\u30a4\u30a2\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3082\u306e\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>i<\/code> \u2013 \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044<\/li>\n\n\n\n<li><code>m<\/code> \u2013 \u8907\u6570\u884c\u30e2\u30fc\u30c9<\/li>\n\n\n\n<li><code>s<\/code> \u2013 \u30c9\u30c3\u30c8\uff08.\uff09\u304c\u6539\u884c\u306b\u3082\u30de\u30c3\u30c1<\/li>\n\n\n\n<li><code>u<\/code> \u2013 UTF-8\u30e2\u30fc\u30c9\uff08\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u306b\u5bfe\u5fdc\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u4f8b\u3048\u3070\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u300cphp\u300d\u3092\u691c\u7d22\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$pattern = '\/php\/i';\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-39\">\u8907\u96d1\u306a\u6761\u4ef6\u3067\u306e\u6587\u5b57\u5217\u691c\u7d22\u30d1\u30bf\u30fc\u30f3<\/h3>\n\n\n\n<p>\u6b63\u898f\u8868\u73fe\u306e\u771f\u4fa1\u306f\u3001\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u767a\u63ee\u3055\u308c\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u5b9f\u7528\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-40\">1. \u65e5\u672c\u306e\u90f5\u4fbf\u756a\u53f7\u3092\u691c\u7d22\u3059\u308b\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"\u79c1\u306e\u90f5\u4fbf\u756a\u53f7\u306f123-4567\u3067\u3059\u3002\u4ee5\u524d\u306f987-6543\u3067\u3057\u305f\u3002\";\n$pattern = '\/\\d{3}-\\d{4}\/'; \/\/ \u6570\u5b573\u6841-\u6570\u5b574\u6841\u306e\u30d1\u30bf\u30fc\u30f3\n\npreg_match_all($pattern, $text, $matches);\necho \"\u898b\u3064\u304b\u3063\u305f\u90f5\u4fbf\u756a\u53f7: \";\nprint_r($matches[0]);\n\/\/ \u51fa\u529b: \u898b\u3064\u304b\u3063\u305f\u90f5\u4fbf\u756a\u53f7: Array ( [0] =&gt; 123-4567 [1] =&gt; 987-6543 )\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-41\">2. HTML\u30bf\u30b0\u3092\u62bd\u51fa\u3059\u308b\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$html = \"&lt;div class=\\\"container\\\"&gt;&lt;p&gt;\u3053\u308c\u306f&lt;strong&gt;\u91cd\u8981\u306a&lt;\/strong&gt;\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3059&lt;\/p&gt;&lt;\/div&gt;\";\n$pattern = '\/&lt;([a-z][a-z0-9]*)\\b[^&gt;]*&gt;(.*?)&lt;\\\/\\1&gt;\/is';\n\nif (preg_match_all($pattern, $html, $matches)) {\n    echo \"\u898b\u3064\u304b\u3063\u305f\u30bf\u30b0:\\n\";\n    foreach ($matches[1] as $i =&gt; $tag) {\n        echo $tag . \": \" . strip_tags($matches[0][$i]) . \"\\n\";\n    }\n}\n\/\/ \u51fa\u529b:\n\/\/ \u898b\u3064\u304b\u3063\u305f\u30bf\u30b0:\n\/\/ div: \u3053\u308c\u306f\u91cd\u8981\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3059\n\/\/ p: \u3053\u308c\u306f\u91cd\u8981\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3059\n\/\/ strong: \u91cd\u8981\u306a\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">3. \u6307\u5b9a\u306e\u6761\u4ef6\u306b\u5408\u3046PHP\u306e\u5909\u6570\u540d\u3092\u691c\u51fa\u3059\u308b\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$code = '$user_id = 1; $userName = \"John\"; $_temp123 = true; $invalidName! = false;';\n$pattern = '\/\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*\/';\n\npreg_match_all($pattern, $code, $matches);\necho \"\u6709\u52b9\u306aPHP\u5909\u6570\u540d:\\n\";\nprint_r($matches[0]);\n\/\/ \u51fa\u529b:\n\/\/ \u6709\u52b9\u306aPHP\u5909\u6570\u540d:\n\/\/ Array ( [0] =&gt; $user_id [1] =&gt; $userName [2] =&gt; $_temp123 [3] =&gt; $invalidName )\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-43\">4. URL\u3092\u691c\u51fa\u3057\u3066\u69cb\u6210\u8981\u7d20\u306b\u5206\u89e3\u3059\u308b\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"\u8a73\u7d30\u306fhttps:\/\/example.com\/path\/to\/page?id=123&amp;sort=date\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\";\n$pattern = '\/(https?):\\\/\\\/([\\w\\.-]+)\\\/([^\\?]*)\\??([^#]*)\/';\n\nif (preg_match($pattern, $text, $matches)) {\n    echo \"\u30d7\u30ed\u30c8\u30b3\u30eb: \" . $matches[1] . \"\\n\";\n    echo \"\u30c9\u30e1\u30a4\u30f3: \" . $matches[2] . \"\\n\";\n    echo \"\u30d1\u30b9: \" . $matches[3] . \"\\n\";\n    echo \"\u30af\u30a8\u30ea\u30d1\u30e9\u30e1\u30fc\u30bf: \" . $matches[4] . \"\\n\";\n}\n\/\/ \u51fa\u529b:\n\/\/ \u30d7\u30ed\u30c8\u30b3\u30eb: https\n\/\/ \u30c9\u30e1\u30a4\u30f3: example.com\n\/\/ \u30d1\u30b9: path\/to\/page\n\/\/ \u30af\u30a8\u30ea\u30d1\u30e9\u30e1\u30fc\u30bf: id=123&amp;sort=date\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-44\">5. \u5909\u6570\u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u3063\u305f\u52d5\u7684\u306a\u691c\u7d22<\/h4>\n\n\n\n<p>\u5b9f\u884c\u6642\u306b\u691c\u7d22\u30d1\u30bf\u30fc\u30f3\u3092\u52d5\u7684\u306b\u751f\u6210\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30e6\u30fc\u30b6\u30fc\u5165\u529b\u304b\u3089\u5b89\u5168\u306a\u6b63\u898f\u8868\u73fe\u30d1\u30bf\u30fc\u30f3\u3092\u751f\u6210\n * \n * @param string $keyword \u691c\u7d22\u30ad\u30fc\u30ef\u30fc\u30c9\n * @param bool $wholeWord \u5358\u8a9e\u5168\u4f53\u3067\u30de\u30c3\u30c1\u3059\u308b\u304b\u3069\u3046\u304b\n * @param bool $caseInsensitive \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b\u304b\u3069\u3046\u304b\n * @return string \u6b63\u898f\u8868\u73fe\u30d1\u30bf\u30fc\u30f3\n *\/\nfunction buildSearchPattern($keyword, $wholeWord = false, $caseInsensitive = true) {\n    \/\/ \u6b63\u898f\u8868\u73fe\u306e\u30e1\u30bf\u6587\u5b57\u3092\u30a8\u30b9\u30b1\u30fc\u30d7\n    $escaped = preg_quote($keyword, '\/');\n    \n    \/\/ \u5358\u8a9e\u5883\u754c\u3092\u8ffd\u52a0\u3059\u308b\u304b\u3069\u3046\u304b\n    $pattern = $wholeWord ? '\\b' . $escaped . '\\b' : $escaped;\n    \n    \/\/ \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b\u304b\u3069\u3046\u304b\n    $modifier = $caseInsensitive ? 'i' : '';\n    \n    \/\/ UTF-8\u30e2\u30c7\u30a3\u30d5\u30a1\u30a4\u30a2\u3092\u8ffd\u52a0\n    $modifier .= 'u';\n    \n    return '\/' . $pattern . '\/' . $modifier;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"PHP\u306f\u30a6\u30a7\u30d6\u958b\u767a\u306b\u6700\u9069\u306a\u8a00\u8a9e\u3067\u3059\u3002php\u5b66\u7fd2\u30b5\u30a4\u30c8\u3082\u591a\u6570\u3042\u308a\u307e\u3059\u3002\";\n$keyword = \"php\";\n\n\/\/ \u5b8c\u5168\u4e00\u81f4\uff08\u5358\u8a9e\u5168\u4f53\uff09\n$pattern1 = buildSearchPattern($keyword, true);\n$count1 = preg_match_all($pattern1, $text, $matches1);\n\n\/\/ \u90e8\u5206\u4e00\u81f4\n$pattern2 = buildSearchPattern($keyword, false);\n$count2 = preg_match_all($pattern2, $text, $matches2);\n\necho \"\u5b8c\u5168\u4e00\u81f4: {$count1}\u500b - \" . implode(', ', $matches1[0]) . \"\\n\";\necho \"\u90e8\u5206\u4e00\u81f4: {$count2}\u500b - \" . implode(', ', $matches2[0]) . \"\\n\";\n\n\/\/ \u51fa\u529b:\n\/\/ \u5b8c\u5168\u4e00\u81f4: 2\u500b - PHP, php\n\/\/ \u90e8\u5206\u4e00\u81f4: 2\u500b - PHP, php\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-45\">\u6b63\u898f\u8868\u73fe\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u4f7f\u7528\u6642\u306e\u6ce8\u610f\u70b9<\/h3>\n\n\n\n<p>\u6b63\u898f\u8868\u73fe\u306f\u975e\u5e38\u306b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u304c\u3001\u8aa4\u3063\u305f\u4f7f\u3044\u65b9\u3092\u3059\u308b\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c\u3084\u4e88\u671f\u3057\u306a\u3044\u7d50\u679c\u3092\u62db\u304f\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u4e3b\u306a\u6ce8\u610f\u70b9\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-46\">1. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>\u6b63\u898f\u8868\u73fe\u306e\u51e6\u7406\u306f\u3001\u901a\u5e38\u306e\u6587\u5b57\u5217\u95a2\u6570\u3068\u6bd4\u3079\u3066CPU\u8ca0\u8377\u304c\u9ad8\u304f\u306a\u308a\u307e\u3059\u3002\u7279\u306b\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b1\u30fc\u30b9\u3067\u306f\u6ce8\u610f\u304c\u5fc5\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30d0\u30c3\u30af\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u306e\u904e\u5270\u767a\u751f<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>.*<\/code>\u3084<code>(.+)+<\/code>\u306a\u3069\u306e\u8d2a\u6b32\u306a\u91cf\u6307\u5b9a\u5b50\u3068\u53cd\u5fa9\u306e\u7d44\u307f\u5408\u308f\u305b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u591a\u6570\u306e\u9078\u629e\u80a2\uff08<code>|<\/code>\uff09\u3084\u5165\u308c\u5b50\u306b\u306a\u3063\u305f\u30b0\u30eb\u30fc\u30d7<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5927\u304d\u306a\u30c6\u30ad\u30b9\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u6570MB\u4ee5\u4e0a\u306e\u30c6\u30ad\u30b9\u30c8\u306b\u5bfe\u3059\u308b\u6b63\u898f\u8868\u73fe\u306e\u9069\u7528<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>\u30b7\u30f3\u30d7\u30eb\u306a\u691c\u7d22\u3067\u3042\u308c\u3070\u3001\u6b63\u898f\u8868\u73fe\u3088\u308a\u3082\u6a19\u6e96\u306e\u6587\u5b57\u5217\u95a2\u6570\uff08<code>strpos()<\/code>\u306a\u3069\uff09\u3092\u4f7f\u7528\u3057\u305f\u65b9\u304c\u52b9\u7387\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\n$text = str_repeat(\"abc def ghi jkl mno pqr stu vwx yz \", 100000);\n$search = \"mno\";\n\n\/\/ strpos()\u3092\u4f7f\u7528\n$start = microtime(true);\n$result1 = strpos($text, $search) !== false;\n$time1 = microtime(true) - $start;\necho \"strpos(): \" . $time1 . \" \u79d2\\n\";\n\n\/\/ preg_match()\u3092\u4f7f\u7528\n$start = microtime(true);\n$result2 = preg_match('\/' . preg_quote($search, '\/') . '\/', $text);\n$time2 = microtime(true) - $start;\necho \"preg_match(): \" . $time2 . \" \u79d2\\n\";\n\n\/\/ \u51fa\u529b\u4f8b:\n\/\/ strpos(): 0.00021 \u79d2\n\/\/ preg_match(): 0.00312 \u79d2\n\/\/ (\u5b9f\u969b\u306e\u5024\u306f\u74b0\u5883\u306b\u3088\u3063\u3066\u7570\u306a\u308a\u307e\u3059)\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-47\">2. \u5b89\u5168\u5bfe\u7b56<\/h4>\n\n\n\n<p>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u304b\u3089\u6b63\u898f\u8868\u73fe\u30d1\u30bf\u30fc\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u5834\u5408\u306f\u3001\u5fc5\u305a<code>preg_quote()<\/code>\u3092\u4f7f\u7528\u3057\u3066\u30e1\u30bf\u6587\u5b57\u3092\u30a8\u30b9\u30b1\u30fc\u30d7\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$userInput = \"foo+bar[0-9]\"; \/\/ \u6b63\u898f\u8868\u73fe\u306e\u30e1\u30bf\u6587\u5b57\u3092\u542b\u3080\u5165\u529b\n$safePattern = '\/'. preg_quote($userInput, '\/') .'\/';\necho $safePattern; \/\/ \/foo\\+bar\\[0\\-9\\]\/\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-48\">3. \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5bfe\u5fdc<\/h4>\n\n\n\n<p>\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6271\u3046\u5834\u5408\u306f\u3001\u5fc5\u305aUTF-8\u30e2\u30c7\u30a3\u30d5\u30a1\u30a4\u30a2\uff08<code>u<\/code>\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u9593\u9055\u3063\u305f\u4f8b\uff08\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u8003\u616e\u3057\u3066\u3044\u306a\u3044\uff09\npreg_match('\/[\u3042-\u3093]+\/', '\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u3067\u3059');\n\n\/\/ \u6b63\u3057\u3044\u4f8b\uff08\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u8003\u616e\uff09\npreg_match('\/[\u3042-\u3093]+\/u', '\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u3067\u3059');\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-49\">4. \u5b9f\u7528\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u8a2d\u8a08<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u53ef\u8aad\u6027\u3092\u91cd\u8996\u3059\u308b<\/strong>: \u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u306f<code>x<\/code>\u30e2\u30c7\u30a3\u30d5\u30a1\u30a4\u30a2\u3092\u4f7f\u7528\u3057\u3066\u7a7a\u767d\u3068\u30b3\u30e1\u30f3\u30c8\u3092\u8ffd\u52a0\u3057\u3001\u53ef\u8aad\u6027\u3092\u9ad8\u3081\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$pattern = '\/\n    (\\d{3})  # \u5e02\u5916\u5c40\u756a\n    -        # \u533a\u5207\u308a\n    (\\d{4})  # \u5e02\u5185\u5c40\u756a\n    -        # \u533a\u5207\u308a\n    (\\d{4})  # \u52a0\u5165\u8005\u756a\u53f7\n\/x';\n<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30ad\u30e3\u30d7\u30c1\u30e3\u30b0\u30eb\u30fc\u30d7\u3092\u6700\u5c0f\u9650\u306b<\/strong>: \u4e0d\u8981\u306a\u30ad\u30e3\u30d7\u30c1\u30e3\u30b0\u30eb\u30fc\u30d7\u306f<code>(?:...)<\/code>\u69cb\u6587\u3092\u4f7f\u7528\u3057\u3066\u975e\u30ad\u30e3\u30d7\u30c1\u30e3\u30b0\u30eb\u30fc\u30d7\u306b\u3057\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u904e\u5270\u306a\u30ad\u30e3\u30d7\u30c1\u30e3\n$pattern1 = '\/(https?):\\\/\\\/([\\w\\.-]+)\\\/(.*)\/';\n\n\/\/ \u6700\u5c0f\u9650\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\n$pattern2 = '\/(?:https?):\\\/\\\/([\\w\\.-]+)\\\/(?:.*)\/';\n<\/pre>\n\n\n\n<p>\u6b63\u898f\u8868\u73fe\u306f\u3001\u9069\u5207\u306b\u4f7f\u7528\u3059\u308c\u3070\u4e00\u822c\u7684\u306a\u6587\u5b57\u5217\u95a2\u6570\u3067\u306f\u96e3\u3057\u3044\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u3092\u53ef\u80fd\u306b\u3059\u308b\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u3002\u305f\u3060\u3057\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u691c\u7d22\u3067\u3042\u308c\u3070<code>strpos()<\/code>\u3084<code>str_contains()<\/code>\u3092\u4f7f\u7528\u3059\u308b\u65b9\u304c\u52b9\u7387\u7684\u3067\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3082\u5411\u4e0a\u3057\u307e\u3059\u3002\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u304c\u5fc5\u8981\u306a\u5834\u5408\u306e\u307f\u3001\u6b63\u898f\u8868\u73fe\u306e\u4f7f\u7528\u3092\u691c\u8a0e\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u3092\u9069\u5207\u306b\u51e6\u7406\u3059\u308b\u305f\u3081\u306e<code>mb_strpos()<\/code>\u95a2\u6570\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-50\">\u65b9\u6cd56\uff1amb_strpos()\u3092\u4f7f\u3063\u305f\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u306e\u691c\u7d22<\/h2>\n\n\n\n<p>\u65e5\u672c\u8a9e\u3001\u4e2d\u56fd\u8a9e\u3001\u97d3\u56fd\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u542b\u3080\u6587\u5b57\u5217\u3092\u6271\u3046\u5834\u5408\u3001\u901a\u5e38\u306e\u6587\u5b57\u5217\u95a2\u6570\uff08<code>strpos()<\/code>\u306a\u3069\uff09\u3067\u306f\u6b63\u78ba\u306b\u51e6\u7406\u3067\u304d\u307e\u305b\u3093\u3002PHP\u306e<code>mb_*<\/code>\u95a2\u6570\u7fa4\u306f\u3001\u3053\u308c\u3089\u306e\u8a00\u8a9e\u3092\u9069\u5207\u306b\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-51\">\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u51e6\u7406\u306e\u91cd\u8981\u6027<\/h3>\n\n\n\n<p>\u901a\u5e38\u306eASCII\u6587\u5b57\uff08\u82f1\u6570\u5b57\u306a\u3069\uff09\u306f1\u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3055\u308c\u307e\u3059\u304c\u3001\u65e5\u672c\u8a9e\u306a\u3069\u306e\u591a\u304f\u306e\u6587\u5b57\u306f\u8907\u6570\u30d0\u30a4\u30c8\uff08UTF-8\u3067\u306f1\u6587\u5b57\u3042\u305f\u308a\u6700\u59276\u30d0\u30a4\u30c8\uff09\u3067\u8868\u73fe\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4f8b\u3048\u3070\u3001\u300c\u3042\u300d\u3068\u3044\u3046\u6587\u5b57\u306fUTF-8\u3067\u306f3\u30d0\u30a4\u30c8\u3067\u8868\u73fe\u3055\u308c\u307e\u3059\u3002\u901a\u5e38\u306e\u6587\u5b57\u5217\u95a2\u6570\u306f\u6587\u5b57\u5217\u3092\u30d0\u30a4\u30c8\u5358\u4f4d\u3067\u51e6\u7406\u3059\u308b\u305f\u3081\u3001\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u306e\u9014\u4e2d\u3067\u30ab\u30a6\u30f3\u30c8\u3084\u5207\u308a\u53d6\u308a\u304c\u884c\u308f\u308c\u308b\u3068\u3001\u6587\u5b57\u5316\u3051\u3084\u8aa4\u3063\u305f\u7d50\u679c\u3092\u62db\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u4f8b\u3067\u3001\u901a\u5e38\u306e<code>strpos()<\/code>\u3068\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u5bfe\u5fdc\u306e<code>mb_strpos()<\/code>\u306e\u9055\u3044\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"\u3053\u3093\u306b\u3061\u306f\u3001PHP\u306e\u4e16\u754c\uff01\";\n\n\/\/ \u300cPHP\u300d\u306e\u4f4d\u7f6e\u3092\u691c\u7d22\n$pos1 = strpos($text, \"PHP\");\n$pos2 = mb_strpos($text, \"PHP\", 0, 'UTF-8');\n\necho \"strpos(): {$pos1}\u30d0\u30a4\u30c8\u76ee\\n\"; \/\/ \u51fa\u529b: strpos(): 15\u30d0\u30a4\u30c8\u76ee\necho \"mb_strpos(): {$pos2}\u6587\u5b57\u76ee\\n\"; \/\/ \u51fa\u529b: mb_strpos(): 5\u6587\u5b57\u76ee\n<\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u300c\u3053\u3093\u306b\u3061\u306f\u3001\u300d\u304c15\u30d0\u30a4\u30c8\u3092\u5360\u3081\u307e\u3059\u304c\u3001\u5b9f\u969b\u306b\u306f5\u6587\u5b57\u3067\u3059\u3002\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6271\u3046\u5834\u5408\u306b\u306f\u3001\u6587\u5b57\u6570\u3068\u30d0\u30a4\u30c8\u6570\u3092\u6df7\u540c\u3057\u306a\u3044\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u51e6\u7406\u304c\u7279\u306b\u91cd\u8981\u3068\u306a\u308b\u30b1\u30fc\u30b9\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306e\u51e6\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u65e5\u672c\u8a9e\u306e\u30d5\u30a9\u30fc\u30e0\u5165\u529b\u3001\u691c\u7d22\u30ad\u30fc\u30ef\u30fc\u30c9\u306a\u3069<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u56fd\u969b\u5316\uff08i18n\uff09\u5bfe\u5fdc\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u8907\u6570\u8a00\u8a9e\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308bWeb\u30b5\u30a4\u30c8\u3084\u30a2\u30d7\u30ea<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c6\u30ad\u30b9\u30c8\u89e3\u6790<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u65e5\u672c\u8a9e\u30c6\u30ad\u30b9\u30c8\u306e\u30c8\u30fc\u30af\u30f3\u5316\u3084\u5f62\u614b\u7d20\u89e3\u6790<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u64cd\u4f5c<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u542b\u3080\u30c7\u30fc\u30bf\u306e\u691c\u7d22\u3084\u4fdd\u5b58<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-52\">mb_strpos()\u306e\u6b63\u3057\u3044\u4f7f\u3044\u65b9<\/h3>\n\n\n\n<p><code>mb_strpos()<\/code>\u306e\u57fa\u672c\u69cb\u6587\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int|false mb_strpos(string $haystack, string $needle, int $offset = 0, string $encoding = null)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$needle<\/code> \u2013 \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$offset<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u3092\u958b\u59cb\u3059\u308b\u6587\u5b57\u4f4d\u7f6e\uff08\u30d0\u30a4\u30c8\u4f4d\u7f6e\u3067\u306f\u306a\u3044\uff09<\/li>\n\n\n\n<li><code>$encoding<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\uff08\u6307\u5b9a\u3057\u306a\u3044\u5834\u5408\u306f<code>mb_internal_encoding()<\/code>\u306e\u5024\u304c\u4f7f\u7528\u3055\u308c\u308b\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$needle<\/code>\u304c<code>$haystack<\/code>\u5185\u3067\u898b\u3064\u304b\u3063\u305f\u5834\u5408\u3001\u305d\u306e\u6587\u5b57\u4f4d\u7f6e\uff080\u304b\u3089\u59cb\u307e\u308b\uff09<\/li>\n\n\n\n<li>\u898b\u3064\u304b\u3089\u306a\u304b\u3063\u305f\u5834\u5408\u306f<code>false<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"\u65e5\u672c\u8a9e\u3067PHP\u3092\u52c9\u5f37\u3057\u3066\u3044\u307e\u3059\u3002\";\n$search = \"PHP\";\n\n\/\/ \u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\n$position = mb_strpos($text, $search, 0, 'UTF-8');\n\nif ($position !== false) {\n    echo \"\u300c{$search}\u300d\u306f {$position} \u6587\u5b57\u76ee\u306b\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\";\n} else {\n    echo \"\u300c{$search}\u300d\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\";\n}\n\/\/ \u51fa\u529b: \u300cPHP\u300d\u306f 4 \u6587\u5b57\u76ee\u306b\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\n<\/pre>\n\n\n\n<p><code>mb_strpos()<\/code>\u3082<code>strpos()<\/code>\u3068\u540c\u69d8\u306b\u30010\u3092\u8fd4\u3059\u5834\u5408\u3068<code>false<\/code>\u3092\u8fd4\u3059\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u3001\u623b\u308a\u5024\u306e\u30c1\u30a7\u30c3\u30af\u306b\u306f\u5fc5\u305a<code>!== false<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-53\">\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u6307\u5b9a<\/h4>\n\n\n\n<p><code>mb_*<\/code>\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u969b\u306f\u3001\u9069\u5207\u306a\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u4e00\u822c\u7684\u306a\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>UTF-8<\/strong> \u2013 \u6700\u3082\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u56fd\u969b\u7684\u306a\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0<\/li>\n\n\n\n<li><strong>UTF-16<\/strong> \u2013 Windows\u3067\u4f7f\u7528\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308b<\/li>\n\n\n\n<li><strong>SJIS<\/strong> \u2013 \u65e5\u672c\u306e\u53e4\u3044\u30b7\u30b9\u30c6\u30e0\u3067\u4f7f\u7528\u3055\u308c\u308b<\/li>\n\n\n\n<li><strong>EUC-JP<\/strong> \u2013 \u65e5\u672c\u306e\u53e4\u3044UNIX\u30b7\u30b9\u30c6\u30e0\u3067\u4f7f\u7528\u3055\u308c\u308b<\/li>\n<\/ul>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4e00\u8cab\u3057\u3066\u540c\u3058\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u5148\u982d\u3067<code>mb_internal_encoding()<\/code>\u3092\u8a2d\u5b9a\u3057\u3066\u304a\u304f\u3068\u4fbf\u5229\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u30b9\u30af\u30ea\u30d7\u30c8\u5168\u4f53\u3067UTF-8\u3092\u4f7f\u7528\nmb_internal_encoding('UTF-8');\n\n\/\/ \u3053\u308c\u4ee5\u964d\u306emb_*\u95a2\u6570\u3067\u306f\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u7701\u7565\u53ef\u80fd\n$pos = mb_strpos($text, $search); \/\/ UTF-8\u3068\u3057\u3066\u51e6\u7406\u3055\u308c\u308b\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-54\">\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u5bfe\u5fdc\u306e\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\u95a2\u6570<\/h4>\n\n\n\n<p><code>str_contains()<\/code>\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u7248\u306f\u63d0\u4f9b\u3055\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u81ea\u4f5c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5bfe\u5fdc\u306e\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @param string $encoding \u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\n * @return bool \u542b\u307e\u308c\u3066\u3044\u308c\u3070true\u3001\u305d\u3046\u3067\u306a\u3051\u308c\u3070false\n *\/\nfunction mb_str_contains($haystack, $needle, $encoding = 'UTF-8') {\n    return mb_strpos($haystack, $needle, 0, $encoding) !== false;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"\u3053\u3093\u306b\u3061\u306f\u3001\u4e16\u754c\uff01\";\necho mb_str_contains($text, \"\u4e16\u754c\") ? \"\u542b\u307e\u308c\u3066\u3044\u307e\u3059\" : \"\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\";\n\/\/ \u51fa\u529b: \u542b\u307e\u308c\u3066\u3044\u307e\u3059\n\n### \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u64cd\u4f5c\u306e\u5b9f\u7528\u4f8b\n\n#### 1. \u65e5\u672c\u8a9e\u30c6\u30ad\u30b9\u30c8\u306e\u6587\u5b57\u6570\u5236\u9650\u30c1\u30a7\u30c3\u30af\n\n\/**\n * \u6307\u5b9a\u3055\u308c\u305f\u6700\u5927\u6587\u5b57\u6570\u3092\u8d85\u3048\u3066\u3044\u308b\u304b\u30c1\u30a7\u30c3\u30af\n *\/\nfunction isOverMaxLength($text, $maxLength, $encoding = 'UTF-8') {\n    return mb_strlen($text, $encoding) &gt; $maxLength;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$comment = \"\u3053\u308c\u306f\u65e5\u672c\u8a9e\u306e\u30b3\u30e1\u30f3\u30c8\u3067\u3059\u3002\";\n$maxLength = 10;\n\nif (isOverMaxLength($comment, $maxLength)) {\n    echo \"\u30b3\u30e1\u30f3\u30c8\u306f{$maxLength}\u6587\u5b57\u4ee5\u5185\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n} else {\n    echo \"\u30b3\u30e1\u30f3\u30c8\u306f\u6709\u52b9\u3067\u3059\u3002\";\n}\n\/\/ \u51fa\u529b: \u30b3\u30e1\u30f3\u30c8\u306f10\u6587\u5b57\u4ee5\u5185\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-55\">2. \u65e5\u672c\u8a9e\u30c6\u30ad\u30b9\u30c8\u306e\u8981\u7d04\u4f5c\u6210<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30c6\u30ad\u30b9\u30c8\u3092\u6307\u5b9a\u3055\u308c\u305f\u6587\u5b57\u6570\u3067\u5207\u308a\u53d6\u308a\u3001\u7701\u7565\u8a18\u53f7\u3092\u8ffd\u52a0\u3059\u308b\n *\/\nfunction createSummary($text, $length = 100, $encoding = 'UTF-8') {\n    if (mb_strlen($text, $encoding) &lt;= $length) {\n        return $text;\n    }\n    \n    return mb_substr($text, 0, $length, $encoding) . '...';\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$article = \"PHP\u306f\u52d5\u7684\u578b\u4ed8\u3051\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3001\u7279\u306bWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u30021995\u5e74\u306b\u521d\u3081\u3066\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u3001\u4ee5\u6765\u3001\u7d99\u7d9a\u7684\u306b\u6539\u826f\u304c\u91cd\u306d\u3089\u308c\u3066\u3044\u307e\u3059\u3002PHP\u306f\u521d\u5fc3\u8005\u306b\u3068\u3063\u3066\u5b66\u3073\u3084\u3059\u304f\u3001\u307e\u305f\u7d4c\u9a13\u8c4a\u5bcc\u306a\u958b\u767a\u8005\u306b\u3068\u3063\u3066\u3082\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\u3002\";\necho createSummary($article, 30);\n\/\/ \u51fa\u529b: PHP\u306f\u52d5\u7684\u578b\u4ed8\u3051\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3001\u7279\u306bWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3...\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-56\">3. \u65e5\u672c\u8a9e\u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u5f37\u8abf\u8868\u793a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30c6\u30ad\u30b9\u30c8\u5185\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u3092HTML\u30bf\u30b0\u3067\u5f37\u8abf\u8868\u793a\u3059\u308b\n *\/\nfunction highlightKeyword($text, $keyword, $encoding = 'UTF-8') {\n    if (empty($keyword) || !mb_str_contains($text, $keyword, $encoding)) {\n        return $text;\n    }\n    \n    $pos = mb_strpos($text, $keyword, 0, $encoding);\n    $keywordLength = mb_strlen($keyword, $encoding);\n    \n    $before = mb_substr($text, 0, $pos, $encoding);\n    $highlighted = \"&lt;strong&gt;\" . mb_substr($text, $pos, $keywordLength, $encoding) . \"&lt;\/strong&gt;\";\n    $after = mb_substr($text, $pos + $keywordLength, null, $encoding);\n    \n    return $before . $highlighted . $after;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"PHP\u3067\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u3092\u51e6\u7406\u3059\u308b\u306b\u306fmb_strpos\u95a2\u6570\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\";\necho highlightKeyword($text, \"\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\");\n\/\/ \u51fa\u529b: PHP\u3067&lt;strong&gt;\u30de\u30eb\u30c1\u30d0\u30a4\u30c8&lt;\/strong&gt;\u6587\u5b57\u5217\u3092\u51e6\u7406\u3059\u308b\u306b\u306fmb_strpos\u95a2\u6570\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-57\">PHP 8\u4ee5\u964d\u3067\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u691c\u7d22\u306e\u6700\u9069\u5316<\/h3>\n\n\n\n<p>PHP 8.0\u4ee5\u964d\u3001\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5927\u5e45\u306b\u5411\u4e0a\u3057\u307e\u3057\u305f\u3002\u307e\u305f\u3001\u3044\u304f\u3064\u304b\u306e\u65b0\u6a5f\u80fd\u3068\u6700\u9069\u5316\u304c\u5c0e\u5165\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u5411\u4e0a<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5185\u90e8\u5b9f\u88c5\u306e\u6700\u9069\u5316\u306b\u3088\u308b\u51e6\u7406\u901f\u5ea6\u306e\u5411\u4e0a<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u524a\u6e1b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u6587\u5b57\u5217\u64cd\u4f5c\u306e\u4e00\u8cab\u6027<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u3059\u3079\u3066\u306e<code>mb_*<\/code>\u95a2\u6570\u3067UTF-8\u306e\u30b5\u30dd\u30fc\u30c8\u304c\u5f37\u5316\u3055\u308c\u3001\u7279\u6b8a\u306a\u30b1\u30fc\u30b9\u3067\u306e\u6319\u52d5\u304c\u6539\u5584<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u65b0\u3057\u3044\u95a2\u6570<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>mb_str_pad()<\/code> \u2013 \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u5bfe\u5fdc\u306e\u6587\u5b57\u5217\u30d1\u30c7\u30a3\u30f3\u30b0\uff08PHP 8.2\u4ee5\u964d\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u65e2\u5b58\u95a2\u6570\u306e\u6539\u5584<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u8ca0\u306e\u958b\u59cb\u4f4d\u7f6e\u3068\u9577\u3055\u306e\u3088\u308a\u4e00\u8cab\u3057\u305f\u30b5\u30dd\u30fc\u30c8<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>PHP 8.3\u4ee5\u964d\u3067\u306f\u3001\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u3055\u3089\u306b\u5411\u4e0a\u3057\u3001\u7279\u306b\u5927\u304d\u306a\u30c6\u30ad\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u51e6\u7406\u901f\u5ea6\u304c\u6539\u5584\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 8.3\u4ee5\u964d\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u4f8b\n$largeText = str_repeat(\"\u3042\u3044\u3046\u3048\u304a\", 100000);\n$search = \"\u3046\u3048\";\n\n$start = microtime(true);\n$pos1 = strpos($largeText, $search); \/\/ \u30d0\u30a4\u30c8\u5358\u4f4d\u3067\u8aa4\u3063\u305f\u7d50\u679c\n$time1 = microtime(true) - $start;\n\n$start = microtime(true);\n$pos2 = mb_strpos($largeText, $search, 0, 'UTF-8');\n$time2 = microtime(true) - $start;\n\necho \"strpos: \" . $time1 . \" \u79d2 (\u4f4d\u7f6e: \" . $pos1 . \")\\n\";\necho \"mb_strpos: \" . $time2 . \" \u79d2 (\u4f4d\u7f6e: \" . $pos2 . \")\\n\";\n\/\/ \u51fa\u529b\u4f8b\uff08PHP 8.3\uff09:\n\/\/ strpos: 0.00023 \u79d2 (\u4f4d\u7f6e: 2) - \u8aa4\u3063\u305f\u4f4d\u7f6e\n\/\/ mb_strpos: 0.00152 \u79d2 (\u4f4d\u7f6e: 1) - \u6b63\u3057\u3044\u4f4d\u7f6e\n\/\/ (PHP 7\u3067\u306f\u3001mb_strpos\u306e\u5b9f\u884c\u6642\u9593\u306f\u3055\u3089\u306b\u9577\u304f\u306a\u308a\u307e\u3059)\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-58\">\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u51e6\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5e38\u306b\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u6307\u5b9a\u3059\u308b<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u3067\u4e00\u8cab\u3057\u305f\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3001\u660e\u793a\u7684\u306b\u6307\u5b9a\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>mb_internal_encoding()\u306e\u8a2d\u5b9a<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u521d\u671f\u5316\u6642\u306b\u4e00\u5ea6\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u591a\u304f\u306e\u5834\u5408\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u7701\u7565\u3067\u304d\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u6587\u5b57\u5217\u9577\u3084\u4f4d\u7f6e\u306e\u6271\u3044<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5e38\u306b\u30d0\u30a4\u30c8\u4f4d\u7f6e\u3068\u6587\u5b57\u4f4d\u7f6e\u306e\u9055\u3044\u3092\u610f\u8b58\u3057\u3001\u9069\u5207\u306a\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u8003\u616e<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\u306f\u901a\u5e38\u306e\u6587\u5b57\u5217\u95a2\u6570\u3088\u308a\u3082\u51e6\u7406\u304c\u91cd\u3044\u305f\u3081\u3001\u983b\u7e41\u306a\u7e70\u308a\u8fd4\u3057\u51e6\u7406\u3067\u306f\u6ce8\u610f\u304c\u5fc5\u8981<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u9069\u5207\u306a\u95a2\u6570\u306e\u9078\u629e<\/strong>\n<ul class=\"wp-block-list\">\n<li>ASCII\u6587\u5b57\u306e\u307f\u306e\u51e6\u7406\u306a\u3089\u901a\u5e38\u306e\u6587\u5b57\u5217\u95a2\u6570\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u542b\u3080\u53ef\u80fd\u6027\u304c\u3042\u308b\u306a\u3089<code>mb_*<\/code>\u95a2\u6570\u3092\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u6271\u3046\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001<code>mb_strpos()<\/code>\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\u306e\u4f7f\u7528\u306f\u5fc5\u9808\u3067\u3059\u3002\u3053\u308c\u3089\u306e\u95a2\u6570\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u6587\u5b57\u5316\u3051\u3084\u51e6\u7406\u306e\u8aa4\u308a\u3092\u9632\u304e\u3001\u56fd\u969b\u5316\u5bfe\u5fdc\u306e\u5805\u7262\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u6587\u5b57\u5217\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3059\u308b<code>substr_count()<\/code>\u95a2\u6570\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-59\">\u65b9\u6cd57\uff1asubstr_count()\u3067\u6587\u5b57\u5217\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\u3059\u308b\u65b9\u6cd5<\/h2>\n\n\n\n<p>\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u90e8\u5206\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3060\u3051\u3067\u306a\u304f\u3001\u4f55\u56de\u51fa\u73fe\u3059\u308b\u304b\u3082\u77e5\u308a\u305f\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002PHP\u306e<code>substr_count()<\/code>\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u6587\u5b57\u5217\u5185\u3067\u306e\u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u306e\u51fa\u73fe\u56de\u6570\u3092\u7c21\u5358\u306b\u30ab\u30a6\u30f3\u30c8\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-60\">substr_count()\u306e\u57fa\u672c\u3068\u5fdc\u7528<\/h3>\n\n\n\n<p><code>substr_count()<\/code>\u306e\u57fa\u672c\u69cb\u6587\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int substr_count(string $haystack, string $needle, int $offset = 0, int $length = null)\n<\/pre>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$haystack<\/code> \u2013 \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$needle<\/code> \u2013 \u30ab\u30a6\u30f3\u30c8\u3059\u308b\u90e8\u5206\u6587\u5b57\u5217<\/li>\n\n\n\n<li><code>$offset<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u3092\u958b\u59cb\u3059\u308b\u4f4d\u7f6e\uff08\u30d0\u30a4\u30c8\uff09<\/li>\n\n\n\n<li><code>$length<\/code> \u2013 \uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\u306e\u9577\u3055\uff08\u30d0\u30a4\u30c8\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u623b\u308a\u5024:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>$needle<\/code>\u304c<code>$haystack<\/code>\u5185\u3067\u51fa\u73fe\u3059\u308b\u56de\u6570\uff08\u6574\u6570\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP\u306fWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u9069\u3057\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\u3002PHP\u306f\u67d4\u8edf\u6027\u3068\u901f\u5ea6\u306e\u30d0\u30e9\u30f3\u30b9\u304c\u53d6\u308c\u3066\u304a\u308a\u3001PHP\u306e\u5b66\u7fd2\u66f2\u7dda\u3082\u6bd4\u8f03\u7684\u7de9\u3084\u304b\u3067\u3059\u3002\";\n$search = \"PHP\";\n\n$count = substr_count($text, $search);\necho \"\\\"{$search}\\\"\u306f{$count}\u56de\u51fa\u73fe\u3057\u307e\u3059\u3002\";\n\/\/ \u51fa\u529b: \"PHP\"\u306f3\u56de\u51fa\u73fe\u3057\u307e\u3059\u3002\n<\/pre>\n\n\n\n<p><code>substr_count()<\/code>\u306e\u7279\u5fb4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u91cd\u8907\u3057\u306a\u3044\u30ab\u30a6\u30f3\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u91cd\u8907\u3059\u308b\u90e8\u5206\u306f\u30ab\u30a6\u30f3\u30c8\u3057\u307e\u305b\u3093\uff08\u4f8b\uff1a\u300cABCABC\u300d\u5185\u306e\u300cABC\u300d\u306f2\u56de\u3068\u30ab\u30a6\u30f3\u30c8\u3001\u300cABABAB\u300d\u5185\u306e\u300cABA\u300d\u306f1\u56de\u3068\u30ab\u30a6\u30f3\u30c8\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u533a\u5225<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u90e8\u5206\u7684\u306a\u7bc4\u56f2\u306e\u691c\u7d22<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30aa\u30d7\u30b7\u30e7\u30f3\u306e<code>$offset<\/code>\u3068<code>$length<\/code>\u30d1\u30e9\u30e1\u30fc\u30bf\u3067\u691c\u7d22\u7bc4\u56f2\u3092\u9650\u5b9a\u3067\u304d\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-61\">\u30b1\u30fc\u30b9\u30bb\u30f3\u30b7\u30c6\u30a3\u30d6\u3068\u30b1\u30fc\u30b9\u30a4\u30f3\u30bb\u30f3\u30b7\u30c6\u30a3\u30d6\u306e\u30ab\u30a6\u30f3\u30c8<\/h4>\n\n\n\n<p>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u30ab\u30a6\u30f3\u30c8\u3057\u305f\u3044\u5834\u5408\u306f\u3001\u6587\u5b57\u5217\u3092\u5909\u63db\u3057\u3066\u304b\u3089\u51e6\u7406\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u6587\u5b57\u5217\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u30ab\u30a6\u30f3\u30c8\u3059\u308b\u90e8\u5206\u6587\u5b57\u5217\n * @return int \u51fa\u73fe\u56de\u6570\n *\/\nfunction substr_count_i($haystack, $needle) {\n    return substr_count(\n        strtolower($haystack), \n        strtolower($needle)\n    );\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$text = \"PHP is a widely-used programming language. php is easy to learn. Many websites use Php.\";\n$search = \"php\";\n\n$sensitive = substr_count($text, $search);\n$insensitive = substr_count_i($text, $search);\n\necho \"\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225: {$sensitive}\u56de\\n\"; \/\/ \u51fa\u529b: 1\u56de\necho \"\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044: {$insensitive}\u56de\\n\"; \/\/ \u51fa\u529b: 3\u56de\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-62\">\u8907\u6570\u56de\u51fa\u73fe\u3059\u308b\u6587\u5b57\u5217\u306e\u691c\u51fa\u3068\u51e6\u7406<\/h3>\n\n\n\n<p><code>substr_count()<\/code>\u306f\u5358\u306b\u51fa\u73fe\u56de\u6570\u3092\u77e5\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u305d\u306e\u60c5\u5831\u3092\u4f7f\u3063\u3066\u69d8\u3005\u306a\u51e6\u7406\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-63\">1. \u30ad\u30fc\u30ef\u30fc\u30c9\u5bc6\u5ea6\u306e\u8a08\u7b97<\/h4>\n\n\n\n<p>SEO\uff08\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u6700\u9069\u5316\uff09\u306e\u6587\u8108\u3067\u3001\u30c6\u30ad\u30b9\u30c8\u5185\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u5bc6\u5ea6\u3092\u8a08\u7b97\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30c6\u30ad\u30b9\u30c8\u5185\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u5bc6\u5ea6\uff08\u5272\u5408\uff09\u3092\u8a08\u7b97\n * \n * @param string $text \u691c\u7d22\u5bfe\u8c61\u306e\u30c6\u30ad\u30b9\u30c8\n * @param string $keyword \u5bc6\u5ea6\u3092\u8a08\u7b97\u3059\u308b\u30ad\u30fc\u30ef\u30fc\u30c9\n * @return float \u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u5bc6\u5ea6\uff08%\uff09\n *\/\nfunction keywordDensity($text, $keyword) {\n    \/\/ \u5358\u8a9e\u6570\u3092\u30ab\u30a6\u30f3\u30c8\uff08\u7c21\u6613\u7684\u306a\u5b9f\u88c5\uff09\n    $wordCount = str_word_count($text);\n    \n    \/\/ \u30ad\u30fc\u30ef\u30fc\u30c9\u306e\u51fa\u73fe\u56de\u6570\n    $keywordCount = substr_count_i($text, $keyword);\n    \n    \/\/ \u5bc6\u5ea6\u306e\u8a08\u7b97\uff08%\uff09\n    return ($keywordCount \/ $wordCount) * 100;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$article = \"PHP is a popular programming language for web development. PHP is widely used because PHP is relatively easy to learn and has good performance.\";\n$keyword = \"PHP\";\n\n$density = keywordDensity($article, $keyword);\necho \"{$keyword}\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u5bc6\u5ea6: \" . number_format($density, 2) . \"%\";\n\/\/ \u51fa\u529b: PHP\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u5bc6\u5ea6: 15.79%\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-64\">2. \u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u306b\u57fa\u3065\u304f\u30c6\u30ad\u30b9\u30c8\u5206\u6790<\/h4>\n\n\n\n<p>\u30c6\u30ad\u30b9\u30c8\u5185\u306e\u7279\u5b9a\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u5206\u6790\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30c6\u30ad\u30b9\u30c8\u5185\u306e\u5404\u5358\u8a9e\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\n * \n * @param string $text \u5206\u6790\u3059\u308b\u30c6\u30ad\u30b9\u30c8\n * @return array \u5358\u8a9e\u3068\u51fa\u73fe\u56de\u6570\u306e\u9023\u60f3\u914d\u5217\n *\/\nfunction wordFrequency($text) {\n    \/\/ \u5c0f\u6587\u5b57\u306b\u5909\u63db\u3057\u3001\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u3068\u6570\u5b57\u4ee5\u5916\u3092\u7a7a\u767d\u306b\u7f6e\u63db\n    $text = strtolower(preg_replace('\/[^\\p{L}\\p{N}]+\/u', ' ', $text));\n    \n    \/\/ \u5358\u8a9e\u3092\u914d\u5217\u306b\u5206\u5272\n    $words = preg_split('\/\\s+\/', $text, -1, PREG_SPLIT_NO_EMPTY);\n    \n    \/\/ \u5404\u5358\u8a9e\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\n    $frequency = [];\n    foreach ($words as $word) {\n        if (!isset($frequency[$word])) {\n            $frequency[$word] = 0;\n        }\n        $frequency[$word]++;\n    }\n    \n    \/\/ \u51fa\u73fe\u56de\u6570\u3067\u30bd\u30fc\u30c8\n    arsort($frequency);\n    \n    return $frequency;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$article = \"PHP\u306fWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u3088\u304f\u4f7f\u308f\u308c\u308b\u8a00\u8a9e\u3067\u3059\u3002PHP\u306f\u30b7\u30f3\u30d7\u30eb\u3067\u3042\u308a\u306a\u304c\u3089\u5f37\u529b\u306a\u6a5f\u80fd\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\";\n$wordCounts = wordFrequency($article);\n\necho \"\u983b\u51fa\u5358\u8a9e\uff1a\\n\";\n$i = 0;\nforeach ($wordCounts as $word =&gt; $count) {\n    echo \"{$word}: {$count}\u56de\\n\";\n    \n    if (++$i &gt;= 5) break; \/\/ \u4e0a\u4f4d5\u4ef6\u306e\u307f\u8868\u793a\n}\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-65\">\u958b\u59cb\u4f4d\u7f6e\u3068\u9577\u3055\u306e\u6307\u5b9a\u306b\u3088\u308b\u30ab\u30b9\u30bf\u30e0\u691c\u7d22\u7bc4\u56f2<\/h3>\n\n\n\n<p><code>substr_count()<\/code>\u306e\u7b2c3\u5f15\u6570\u3068\u7b2c4\u5f15\u6570\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u691c\u7d22\u7bc4\u56f2\u3092\u5236\u9650\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u306f\u5927\u304d\u306a\u30c6\u30ad\u30b9\u30c8\u306e\u4e00\u90e8\u3060\u3051\u3092\u51e6\u7406\u3059\u308b\u5834\u5408\u3084\u3001\u7279\u5b9a\u306e\u90e8\u5206\u3060\u3051\u3092\u5206\u6790\u3059\u308b\u5834\u5408\u306b\u4fbf\u5229\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$text = \"PHP is a versatile language. PHP has many use cases. PHP is easy to learn.\";\n\n\/\/ \u6700\u521d\u306e20\u6587\u5b57\u306e\u307f\u3092\u691c\u7d22\u7bc4\u56f2\u3068\u3059\u308b\n$count1 = substr_count($text, \"PHP\", 0, 20);\necho \"\u6700\u521d\u306e20\u6587\u5b57\u5185\u306e\u300cPHP\u300d: {$count1}\u56de\\n\"; \/\/ \u51fa\u529b: 1\u56de\n\n\/\/ 20\u6587\u5b57\u76ee\u304b\u308950\u6587\u5b57\u9593\u3092\u691c\u7d22\u7bc4\u56f2\u3068\u3059\u308b\n$count2 = substr_count($text, \"PHP\", 20, 50);\necho \"20\u301c70\u6587\u5b57\u76ee\u5185\u306e\u300cPHP\u300d: {$count2}\u56de\\n\"; \/\/ \u51fa\u529b: 2\u56de\n<\/pre>\n\n\n\n<p>\u7279\u5b9a\u306e\u6bb5\u843d\u3084\u30bb\u30af\u30b7\u30e7\u30f3\u5185\u3060\u3051\u3067\u30ab\u30a6\u30f3\u30c8\u3057\u305f\u3044\u5834\u5408\u306b\u3082\u6d3b\u7528\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * HTML\u5185\u306e\u7279\u5b9a\u306e\u30bf\u30b0\u5185\u3067\u306e\u30ad\u30fc\u30ef\u30fc\u30c9\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8\n * \n * @param string $html HTML\u6587\u5b57\u5217\n * @param string $tag \u691c\u7d22\u5bfe\u8c61\u306eHTML\u30bf\u30b0\n * @param string $keyword \u30ab\u30a6\u30f3\u30c8\u3059\u308b\u30ad\u30fc\u30ef\u30fc\u30c9\n * @return int \u51fa\u73fe\u56de\u6570\n *\/\nfunction countKeywordInTag($html, $tag, $keyword) {\n    $count = 0;\n    $pattern = \"\/&lt;{$tag}[^&gt;]*&gt;(.*?)&lt;\\\/{$tag}&gt;\/s\";\n    \n    if (preg_match_all($pattern, $html, $matches)) {\n        foreach ($matches[1] as $content) {\n            $count += substr_count($content, $keyword);\n        }\n    }\n    \n    return $count;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$html = \"&lt;p&gt;PHP\u306f\u7d20\u6674\u3089\u3057\u3044\u8a00\u8a9e\u3067\u3059\u3002&lt;\/p&gt;\n&lt;h2&gt;PHP\u306e\u6b74\u53f2&lt;\/h2&gt;\n&lt;p&gt;PHP\u306f1995\u5e74\u306b\u8a95\u751f\u3057\u307e\u3057\u305f\u3002PHP\u306f\u5f53\u521dPersonal Home Page\u306e\u7565\u3067\u3057\u305f\u3002&lt;\/p&gt;\";\n\n$inParagraphs = countKeywordInTag($html, \"p\", \"PHP\");\necho \"&lt;p&gt;\u30bf\u30b0\u5185\u306e\u300cPHP\u300d\u306e\u51fa\u73fe\u56de\u6570: {$inParagraphs}\u56de\"; \/\/ \u51fa\u529b: 3\u56de\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-66\">\u5b9f\u7528\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-67\">1. \u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u53ef\u8aad\u6027\u5206\u6790<\/h4>\n\n\n\n<p>\u30b3\u30fc\u30c9\u5185\u306e\u30b3\u30e1\u30f3\u30c8\u7387\u3092\u8a08\u7b97\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * PHP \u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30b3\u30e1\u30f3\u30c8\u7387\uff08\u30b3\u30e1\u30f3\u30c8\u884c\/\u5168\u4f53\u884c\uff09\u3092\u8a08\u7b97\n * \n * @param string $code PHP\u30b3\u30fc\u30c9\n * @return float \u30b3\u30e1\u30f3\u30c8\u7387\uff080-1\u306e\u9593\u306e\u5024\uff09\n *\/\nfunction commentRatio($code) {\n    \/\/ \u884c\u6570\u3092\u30ab\u30a6\u30f3\u30c8\n    $lines = explode(\"\\n\", $code);\n    $totalLines = count($lines);\n    \n    \/\/ \u884c\u30b3\u30e1\u30f3\u30c8\uff08\/\/\uff09\u306e\u6570\n    $singleLineComments = substr_count($code, '\/\/');\n    \n    \/\/ \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30b3\u30e1\u30f3\u30c8\uff08\/** *\/\uff09\u306e\u30d6\u30ed\u30c3\u30af\u6570\n    $docCommentBlocks = substr_count($code, '\/**');\n    \n    \/\/ \u901a\u5e38\u306e\u30b3\u30e1\u30f3\u30c8\u30d6\u30ed\u30c3\u30af\uff08\/* *\/\uff09\u306e\u6570\n    $multiLineCommentBlocks = substr_count($code, '\/*') - $docCommentBlocks;\n    \n    \/\/ \u5e73\u5747\u7684\u306a\u30b3\u30e1\u30f3\u30c8\u30d6\u30ed\u30c3\u30af\u306e\u884c\u6570\uff08\u63a8\u5b9a\u5024\uff09\n    $avgDocCommentLines = 5;\n    $avgMultiLineCommentLines = 3;\n    \n    \/\/ \u30b3\u30e1\u30f3\u30c8\u884c\u306e\u5408\u8a08\u3092\u63a8\u5b9a\n    $estimatedCommentLines = $singleLineComments + \n                             ($docCommentBlocks * $avgDocCommentLines) + \n                             ($multiLineCommentBlocks * $avgMultiLineCommentLines);\n    \n    \/\/ \u30b3\u30e1\u30f3\u30c8\u7387\u3092\u8a08\u7b97\n    return min(1, $estimatedCommentLines \/ max(1, $totalLines));\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$phpCode = \"&lt;?php\n\/**\n * \u30e6\u30fc\u30b6\u30fc\u30af\u30e9\u30b9\n *\/\nclass User {\n    \/\/ \u30e6\u30fc\u30b6\u30fcID\n    private \\$id;\n    \n    \/**\n     * \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\n     * @param int \\$id \u30e6\u30fc\u30b6\u30fcID\n     *\/\n    public function __construct(\\$id) {\n        \\$this-&gt;id = \\$id; \/\/ ID\u3092\u8a2d\u5b9a\n    }\n    \n    \/* \n     * \u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u53d6\u5f97\n     *\/\n    public function getInfo() {\n        \/\/ \u60c5\u5831\u3092\u8fd4\u3059\n        return ['id' =&gt; \\$this-&gt;id];\n    }\n}\n?&gt;\";\n\n$ratio = commentRatio($phpCode);\necho \"\u30b3\u30e1\u30f3\u30c8\u7387: \" . number_format($ratio * 100, 1) . \"%\";\n\/\/ \u51fa\u529b\u4f8b: \u30b3\u30e1\u30f3\u30c8\u7387: 65.2%\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-68\">2. \u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\u3068\u985e\u4f3c\u6027\u5206\u6790<\/h4>\n\n\n\n<p>2\u3064\u306e\u30c6\u30ad\u30b9\u30c8\u9593\u306e\u5171\u901a\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u5206\u6790\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * 2\u3064\u306e\u30c6\u30ad\u30b9\u30c8\u9593\u306e\u5171\u901a\u30ad\u30fc\u30ef\u30fc\u30c9\u3068\u305d\u306e\u983b\u5ea6\u3092\u5206\u6790\n * \n * @param string $text1 1\u3064\u76ee\u306e\u30c6\u30ad\u30b9\u30c8\n * @param string $text2 2\u3064\u76ee\u306e\u30c6\u30ad\u30b9\u30c8\n * @param array $keywords \u5206\u6790\u3059\u308b\u30ad\u30fc\u30ef\u30fc\u30c9\u30ea\u30b9\u30c8\n * @return array \u5206\u6790\u7d50\u679c\n *\/\nfunction compareKeywords($text1, $text2, $keywords) {\n    $result = [];\n    \n    foreach ($keywords as $keyword) {\n        $count1 = substr_count_i($text1, $keyword);\n        $count2 = substr_count_i($text2, $keyword);\n        \n        $result[$keyword] = [\n            'text1_count' =&gt; $count1,\n            'text2_count' =&gt; $count2,\n            'difference' =&gt; $count2 - $count1\n        ];\n    }\n    \n    return $result;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$article1 = \"PHP\u306f\u52d5\u7684\u578b\u4ed8\u3051\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\u3002Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3088\u304fPHP\u304c\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002\";\n$article2 = \"PHP\u306fWeb\u958b\u767a\u3067\u4eba\u6c17\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3059\u3002PHP\u306fLaravel\u306a\u3069\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3082\u6301\u3063\u3066\u3044\u307e\u3059\u3002\";\n$keywords = ['PHP', '\u30b9\u30af\u30ea\u30d7\u30c8', 'Web', '\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af', '\u52d5\u7684'];\n\n$comparison = compareKeywords($article1, $article2, $keywords);\n\necho \"\u30ad\u30fc\u30ef\u30fc\u30c9\u6bd4\u8f03\u7d50\u679c:\\n\";\nforeach ($comparison as $keyword =&gt; $data) {\n    echo \"{$keyword}: \u8a18\u4e8b1({$data['text1_count']}\u56de), \u8a18\u4e8b2({$data['text2_count']}\u56de), \u5dee({$data['difference']})\\n\";\n}\n<\/pre>\n\n\n\n<p><code>substr_count()<\/code>\u306f\u3001\u5358\u7d14\u306a\u6587\u5b57\u5217\u306e\u5b58\u5728\u30c1\u30a7\u30c3\u30af\u3092\u8d85\u3048\u3066\u3001\u30c6\u30ad\u30b9\u30c8\u89e3\u6790\u3084\u983b\u5ea6\u5206\u6790\u306a\u3069\u306e\u9ad8\u5ea6\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u3082\u6d3b\u7528\u3067\u304d\u308b\u4fbf\u5229\u306a\u95a2\u6570\u3067\u3059\u3002\u5927\u898f\u6a21\u306a\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u3084\u5185\u5bb9\u5206\u6790\u3092\u884c\u3046\u5834\u5408\u306b\u7279\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u307e\u3067\u7d39\u4ecb\u3057\u305f7\u3064\u306e\u65b9\u6cd5\u306e\u5b9f\u8df5\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u30b3\u30fc\u30c9\u4f8b\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-69\">\u5b9f\u8df5\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u30b3\u30fc\u30c9\u4f8b<\/h2>\n\n\n\n<p>\u3053\u308c\u307e\u3067\u7d39\u4ecb\u3057\u305f7\u3064\u306e\u6587\u5b57\u5217\u691c\u7d22\u65b9\u6cd5\u3092\u5b9f\u969b\u306ePHP\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3067\u3069\u306e\u3088\u3046\u306b\u6d3b\u7528\u3059\u308b\u304b\u3001\u5177\u4f53\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3068\u30b3\u30fc\u30c9\u4f8b\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002\u5b9f\u7528\u7684\u306a\u30b7\u30ca\u30ea\u30aa\u3092\u901a\u3058\u3066\u3001\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u7279\u5fb4\u3068\u4f7f\u3044\u5206\u3051\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-70\">\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u6587\u5b57\u5217\u691c\u7d22\u306e\u6d3b\u7528<\/h3>\n\n\n\n<p>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3067\u6700\u3082\u4e00\u822c\u7684\u306a\u30bf\u30b9\u30af\u306e\u4e00\u3064\u3067\u3059\u3002\u6587\u5b57\u5217\u691c\u7d22\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u3001\u5165\u529b\u5185\u5bb9\u306e\u691c\u8a3c\u3092\u52b9\u7387\u7684\u306b\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-71\">1. \u30d1\u30b9\u30ef\u30fc\u30c9\u5f37\u5ea6\u306e\u30c1\u30a7\u30c3\u30af<\/h4>\n\n\n\n<p>\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u5fc5\u8981\u306a\u8981\u7d20\uff08\u5927\u6587\u5b57\u3001\u5c0f\u6587\u5b57\u3001\u6570\u5b57\u3001\u7279\u6b8a\u6587\u5b57\uff09\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5f37\u5ea6\u3092\u30c1\u30a7\u30c3\u30af\n * \n * @param string $password \u30c1\u30a7\u30c3\u30af\u3059\u308b\u30d1\u30b9\u30ef\u30fc\u30c9\n * @return array \u691c\u8a3c\u7d50\u679c\u3068\u5f37\u5ea6\u30b9\u30b3\u30a2\n *\/\nfunction checkPasswordStrength($password) {\n    $result = [\n        'valid' =&gt; true,\n        'errors' =&gt; [],\n        'strength' =&gt; 0\n    ];\n    \n    \/\/ \u6700\u5c0f\u9577\u3092\u30c1\u30a7\u30c3\u30af\n    if (strlen($password) &lt; 8) {\n        $result['valid'] = false;\n        $result['errors'][] = '\u30d1\u30b9\u30ef\u30fc\u30c9\u306f8\u6587\u5b57\u4ee5\u4e0a\u5fc5\u8981\u3067\u3059';\n    } else {\n        $result['strength'] += 1;\n    }\n    \n    \/\/ \u5927\u6587\u5b57\u3092\u542b\u3080\u304b\u30c1\u30a7\u30c3\u30af\n    if (!preg_match('\/[A-Z]\/', $password)) {\n        $result['valid'] = false;\n        $result['errors'][] = '\u5927\u6587\u5b57\u3092\u542b\u3081\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059';\n    } else {\n        $result['strength'] += 1;\n    }\n    \n    \/\/ \u5c0f\u6587\u5b57\u3092\u542b\u3080\u304b\u30c1\u30a7\u30c3\u30af\n    if (!preg_match('\/[a-z]\/', $password)) {\n        $result['valid'] = false;\n        $result['errors'][] = '\u5c0f\u6587\u5b57\u3092\u542b\u3081\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059';\n    } else {\n        $result['strength'] += 1;\n    }\n    \n    \/\/ \u6570\u5b57\u3092\u542b\u3080\u304b\u30c1\u30a7\u30c3\u30af\n    if (!preg_match('\/[0-9]\/', $password)) {\n        $result['valid'] = false;\n        $result['errors'][] = '\u6570\u5b57\u3092\u542b\u3081\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059';\n    } else {\n        $result['strength'] += 1;\n    }\n    \n    \/\/ \u7279\u6b8a\u6587\u5b57\u3092\u542b\u3080\u304b\u30c1\u30a7\u30c3\u30af\n    if (!preg_match('\/[^A-Za-z0-9]\/', $password)) {\n        $result['valid'] = false;\n        $result['errors'][] = '\u7279\u6b8a\u6587\u5b57\u3092\u542b\u3081\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059';\n    } else {\n        $result['strength'] += 1;\n    }\n    \n    \/\/ \u4e00\u822c\u7684\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\u3084\u8f9e\u66f8\u5358\u8a9e\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u304b\u30c1\u30a7\u30c3\u30af\n    $commonPasswords = ['password', 'admin', '123456', 'qwerty'];\n    foreach ($commonPasswords as $commonPwd) {\n        if (stripos($password, $commonPwd) !== false) {\n            $result['valid'] = false;\n            $result['errors'][] = '\u4e00\u822c\u7684\u306a\u5358\u8a9e\u3092\u542b\u3081\u306a\u3044\u3067\u304f\u3060\u3055\u3044';\n            $result['strength'] = max(0, $result['strength'] - 1);\n            break;\n        }\n    }\n    \n    return $result;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$password = \"Secure123!\";\n$strengthResult = checkPasswordStrength($password);\n\nif ($strengthResult['valid']) {\n    echo \"\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u6709\u52b9\u3067\u3059\u3002\u5f37\u5ea6: \" . $strengthResult['strength'] . \"\/5\\n\";\n} else {\n    echo \"\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u8981\u4ef6\u3092\u6e80\u305f\u3057\u3066\u3044\u307e\u305b\u3093:\\n\";\n    foreach ($strengthResult['errors'] as $error) {\n        echo \"- \" . $error . \"\\n\";\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u3001\u6b63\u898f\u8868\u73fe\uff08<code>preg_match()<\/code>\uff09\u3092\u4f7f\u7528\u3057\u3066\u7279\u5b9a\u306e\u6587\u5b57\u306e\u5b58\u5728\u3092\u78ba\u8a8d\u3057\u3001\u540c\u6642\u306b<code>stripos()<\/code>\u3092\u4f7f\u3063\u3066\u4e00\u822c\u7684\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\u30d1\u30bf\u30fc\u30f3\u304c\u542b\u307e\u308c\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-72\">2. \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u7c21\u6613\u691c\u8a3c<\/h4>\n\n\n\n<p>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u57fa\u672c\u7684\u306a\u5f62\u5f0f\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u57fa\u672c\u7684\u306a\u691c\u8a3c\n * \n * @param string $email \u691c\u8a3c\u3059\u308b\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\n * @return bool \u6709\u52b9\u306a\u5834\u5408\u306ftrue\n *\/\nfunction validateEmail($email) {\n    \/\/ @\u8a18\u53f7\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\n    if (!str_contains($email, '@')) {\n        return false;\n    }\n    \n    \/\/ @\u306e\u524d\u5f8c\u306b\u6587\u5b57\u304c\u3042\u308b\u304b\n    $parts = explode('@', $email);\n    if (count($parts) !== 2 || empty($parts[0]) || empty($parts[1])) {\n        return false;\n    }\n    \n    \/\/ \u30c9\u30e1\u30a4\u30f3\u90e8\u5206\u306b\u5c11\u306a\u304f\u3068\u30821\u3064\u306e\u30c9\u30c3\u30c8\u304c\u3042\u308b\u304b\n    if (!str_contains($parts[1], '.')) {\n        return false;\n    }\n    \n    \/\/ \u30c9\u30c3\u30c8\u306e\u5f8c\u306b\u6587\u5b57\u304c\u3042\u308b\u304b\n    $domainParts = explode('.', $parts[1]);\n    $tld = end($domainParts);\n    if (empty($tld)) {\n        return false;\n    }\n    \n    return true;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$emails = [\n    'user@example.com',\n    'invalid-email',\n    'user@localhost',\n    'user@.com',\n    '@example.com'\n];\n\nforeach ($emails as $email) {\n    echo $email . ': ' . (validateEmail($email) ? '\u6709\u52b9' : '\u7121\u52b9') . \"\\n\";\n}\n\/\/ \u51fa\u529b:\n\/\/ user@example.com: \u6709\u52b9\n\/\/ invalid-email: \u7121\u52b9\n\/\/ user@localhost: \u7121\u52b9\n\/\/ user@.com: \u7121\u52b9\n\/\/ @example.com: \u7121\u52b9\n\n#### 3. \u30e6\u30fc\u30b6\u30fc\u540d\u306e\u4f7f\u7528\u53ef\u80fd\u6587\u5b57\u30c1\u30a7\u30c3\u30af\n\n\/\/\u8a31\u53ef\u3055\u308c\u305f\u6587\u5b57\u306e\u307f\u3092\u542b\u3080\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\u4f8b\uff1a\n\n\/**\n * \u30e6\u30fc\u30b6\u30fc\u540d\u306b\u8a31\u53ef\u3055\u308c\u305f\u6587\u5b57\u306e\u307f\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u30c1\u30a7\u30c3\u30af\n * \n * @param string $username \u30c1\u30a7\u30c3\u30af\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u540d\n * @return bool \u6709\u52b9\u306a\u5834\u5408\u306ftrue\n *\/\nfunction validateUsername($username) {\n    \/\/ \u6587\u5b57\u6570\u3092\u30c1\u30a7\u30c3\u30af\n    if (strlen($username) &lt; 3 || strlen($username) &gt; 20) {\n        return false;\n    }\n    \n    \/\/ \u82f1\u6570\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u306e\u307f\u3092\u8a31\u53ef\n    return preg_match('\/^[a-zA-Z0-9_]+$\/', $username) === 1;\n}\n\n\/\/ \u4f7f\u7528\u4f8b\n$usernames = [\n    'john_doe123',\n    'user@name',\n    'admin!',\n    'valid_username'\n];\n\nforeach ($usernames as $username) {\n    echo $username . ': ' . (validateUsername($username) ? '\u6709\u52b9' : '\u7121\u52b9') . \"\\n\";\n}\n\/\/ \u51fa\u529b:\n\/\/ john_doe123: \u6709\u52b9\n\/\/ user@name: \u7121\u52b9\n\/\/ admin!: \u7121\u52b9\n\/\/ valid_username: \u6709\u52b9\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-73\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u524d\u306e\u6587\u5b57\u5217\u691c\u67fb\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/h3>\n\n\n\n<p>SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u306f\u6700\u3082\u4e00\u822c\u7684\u306aWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8106\u5f31\u6027\u306e\u4e00\u3064\u3067\u3059\u3002\u6587\u5b57\u5217\u691c\u7d22\u6a5f\u80fd\u3092\u4f7f\u7528\u3057\u3066\u3001\u6f5c\u5728\u7684\u306a\u60aa\u610f\u306e\u3042\u308b\u30b3\u30fc\u30c9\u3092\u691c\u51fa\u3057\u3001\u9632\u6b62\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-74\">1. SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u691c\u51fa<\/h4>\n\n\n\n<p>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306bSQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u306e\u5146\u5019\u304c\u3042\u308b\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u306e\u53ef\u80fd\u6027\u3092\u30c1\u30a7\u30c3\u30af\n * \n * @param string $input \u30c1\u30a7\u30c3\u30af\u3059\u308b\u5165\u529b\u6587\u5b57\u5217\n * @return bool \u7591\u308f\u3057\u3044\u5834\u5408\u306ftrue\n *\/\nfunction checkSqlInjection($input) {\n    \/\/ SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u3067\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u30ad\u30fc\u30ef\u30fc\u30c9\u3084\u6587\u5b57\n    $sqlPatterns = [\n        \"SELECT \", \"INSERT \", \"UPDATE \", \"DELETE \", \"DROP \", \n        \"UNION \", \"OR 1=1\", \"' OR '\", \"\\\" OR \\\"\", \n        \"--;\", \"\/*\", \"*\/\"\n    ];\n    \n    \/\/ \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u305b\u305a\u306b\u691c\u7d22\n    foreach ($sqlPatterns as $pattern) {\n        if (stripos($input, $pattern) !== false) {\n            return true;\n        }\n    }\n    \n    \/\/ SQL\u30b3\u30e1\u30f3\u30c8\u69cb\u6587\u306e\u30c1\u30a7\u30c3\u30af\n    if (preg_match('\/(--|#|\\\/\\*)\/', $input)) {\n        return true;\n    }\n    \n    return false;\n}\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-75\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\uff1a7\u3064\u306e\u65b9\u6cd5\u306e\u901f\u5ea6\u3068\u52b9\u7387\u6027<\/h2>\n\n\n\n<p>\u6587\u5b57\u5217\u691c\u7d22\u30e1\u30bd\u30c3\u30c9\u306e\u9078\u629e\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u7279\u306b\u5927\u91cf\u306e\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u3084\u983b\u7e41\u306a\u691c\u7d22\u64cd\u4f5c\u3092\u884c\u3046\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u3001\u6700\u9069\u306a\u65b9\u6cd5\u3092\u9078\u3076\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u3053\u306e\u7ae0\u3067\u306f\u3001\u7d39\u4ecb\u3057\u305f7\u3064\u306e\u65b9\u6cd5\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027\u3092\u6bd4\u8f03\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-76\">\u6587\u5b57\u5217\u9577\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u95a2\u4fc2<\/h3>\n\n\n\n<p>\u6587\u5b57\u5217\u306e\u9577\u3055\u306f\u3001\u691c\u7d22\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u76f4\u63a5\u5f71\u97ff\u3057\u307e\u3059\u3002\u5404\u30e1\u30bd\u30c3\u30c9\u304c\u6587\u5b57\u5217\u306e\u9577\u3055\u306b\u5fdc\u3058\u3066\u3069\u306e\u3088\u3046\u306b\u6319\u52d5\u3059\u308b\u304b\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001\u7570\u306a\u308b\u9577\u3055\u306e\u6587\u5b57\u5217\u306b\u5bfe\u3059\u308b\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u76f8\u5bfe\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u793a\u3059\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c6\u30b9\u30c8\u306e\u7d50\u679c\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u5404\u6587\u5b57\u5217\u691c\u7d22\u30e1\u30bd\u30c3\u30c9\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6bd4\u8f03\n * \n * @param string $haystack \u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\n * @param string $needle \u691c\u7d22\u3059\u308b\u6587\u5b57\u5217\n * @param int $iterations \u7e70\u308a\u8fd4\u3057\u56de\u6570\n * @return array \u5404\u30e1\u30bd\u30c3\u30c9\u306e\u5b9f\u884c\u6642\u9593\uff08\u79d2\uff09\n *\/\nfunction benchmarkStringMethods($haystack, $needle, $iterations = 1000) {\n    $results = [];\n    \n    \/\/ strpos()\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = strpos($haystack, $needle) !== false;\n    }\n    $results['strpos'] = microtime(true) - $start;\n    \n    \/\/ str_contains() (PHP 8.0+)\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = str_contains($haystack, $needle);\n    }\n    $results['str_contains'] = microtime(true) - $start;\n    \n    \/\/ stripos()\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = stripos($haystack, $needle) !== false;\n    }\n    $results['stripos'] = microtime(true) - $start;\n    \n    \/\/ strstr()\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = strstr($haystack, $needle) !== false;\n    }\n    $results['strstr'] = microtime(true) - $start;\n    \n    \/\/ preg_match()\n    $pattern = '\/' . preg_quote($needle, '\/') . '\/';\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = preg_match($pattern, $haystack) === 1;\n    }\n    $results['preg_match'] = microtime(true) - $start;\n    \n    \/\/ mb_strpos() (UTF-8)\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = mb_strpos($haystack, $needle, 0, 'UTF-8') !== false;\n    }\n    $results['mb_strpos'] = microtime(true) - $start;\n    \n    \/\/ substr_count()\n    $start = microtime(true);\n    for ($i = 0; $i &lt; $iterations; $i++) {\n        $result = substr_count($haystack, $needle) &gt; 0;\n    }\n    $results['substr_count'] = microtime(true) - $start;\n    \n    return $results;\n}\n\n\/\/ \u77ed\u3044\u6587\u5b57\u5217\u3067\u306e\u6bd4\u8f03\n$shortText = \"PHP is a popular programming language.\";\n$shortResults = benchmarkStringMethods($shortText, \"PHP\", 10000);\n\n\/\/ \u4e2d\u7a0b\u5ea6\u306e\u6587\u5b57\u5217\u3067\u306e\u6bd4\u8f03\n$mediumText = str_repeat(\"PHP is a popular programming language. \", 100);\n$mediumResults = benchmarkStringMethods($mediumText, \"popular\", 1000);\n\n\/\/ \u9577\u3044\u6587\u5b57\u5217\u3067\u306e\u6bd4\u8f03\n$longText = str_repeat(\"PHP is a popular programming language. \", 10000);\n$longResults = benchmarkStringMethods($longText, \"language\", 100);\n\n\/\/ \u7d50\u679c\u3092\u51fa\u529b\u3059\u308b\u95a2\u6570\nfunction printResults($results, $label) {\n    echo \"\\n{$label}\u306e\u7d50\u679c:\\n\";\n    asort($results); \/\/ \u901f\u3044\u9806\u306b\u30bd\u30fc\u30c8\n    foreach ($results as $method =&gt; $time) {\n        echo str_pad($method, 15) . \": \" . number_format($time, 6) . \" \u79d2\\n\";\n    }\n}\n\nprintResults($shortResults, \"\u77ed\u3044\u6587\u5b57\u5217\");\nprintResults($mediumResults, \"\u4e2d\u7a0b\u5ea6\u306e\u6587\u5b57\u5217\");\nprintResults($longResults, \"\u9577\u3044\u6587\u5b57\u5217\");\n<\/pre>\n\n\n\n<p>\u5b9f\u884c\u7d50\u679c\u4f8b\uff08PHP 8.2\u3001\u74b0\u5883\u306b\u3088\u308a\u7570\u306a\u308a\u307e\u3059\uff09\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u77ed\u3044\u6587\u5b57\u5217\u306e\u7d50\u679c:\nstr_contains   : 0.001234 \u79d2\nstrpos         : 0.001356 \u79d2\nstrstr         : 0.001458 \u79d2\nsubstr_count   : 0.001623 \u79d2\nstripos        : 0.002145 \u79d2\nmb_strpos      : 0.002356 \u79d2\npreg_match     : 0.003245 \u79d2\n\n\u4e2d\u7a0b\u5ea6\u306e\u6587\u5b57\u5217\u306e\u7d50\u679c:\nstr_contains   : 0.001987 \u79d2\nstrpos         : 0.002134 \u79d2\nstrstr         : 0.002356 \u79d2\nsubstr_count   : 0.002845 \u79d2\nstripos        : 0.003789 \u79d2\nmb_strpos      : 0.004567 \u79d2\npreg_match     : 0.008456 \u79d2\n\n\u9577\u3044\u6587\u5b57\u5217\u306e\u7d50\u679c:\nstr_contains   : 0.034567 \u79d2\nstrpos         : 0.036789 \u79d2\nstrstr         : 0.039456 \u79d2\nsubstr_count   : 0.045678 \u79d2\nstripos        : 0.067834 \u79d2\nmb_strpos      : 0.078945 \u79d2\npreg_match     : 0.123456 \u79d2\n<\/pre>\n\n\n\n<p>\u7d50\u679c\u304b\u3089\u5206\u304b\u308b\u4e3b\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u77ed\u3044\u6587\u5b57\u5217\u306e\u5834\u5408<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>\u5404\u30e1\u30bd\u30c3\u30c9\u9593\u306e\u5dee\u306f\u308f\u305a\u304b<\/li>\n\n\n\n<li>\u6700\u3082\u9ad8\u901f\u306a\u306e\u306f<code>str_contains()<\/code>\u3068<code>strpos()<\/code><\/li>\n\n\n\n<li>\u6b63\u898f\u8868\u73fe\uff08<code>preg_match()<\/code>\uff09\u306f\u6700\u3082\u9045\u3044<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u4e2d\u7a0b\u5ea6\u306e\u6587\u5b57\u5217\u306e\u5834\u5408<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30bd\u30c3\u30c9\u9593\u306e\u5dee\u304c\u3088\u308a\u9855\u8457\u306b<\/li>\n\n\n\n<li><code>str_contains()<\/code>\u3068<code>strpos()<\/code>\u306f\u5f15\u304d\u7d9a\u304d\u6700\u3082\u9ad8\u901f<\/li>\n\n\n\n<li>\u6b63\u898f\u8868\u73fe\u306e\u9045\u3055\u304c\u3088\u308a\u660e\u78ba\u306b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u9577\u3044\u6587\u5b57\u5217\u306e\u5834\u5408<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30bd\u30c3\u30c9\u9593\u306e\u5dee\u304c\u5927\u304d\u304f\u62e1\u5927<\/li>\n\n\n\n<li>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\uff08<code>mb_strpos()<\/code>\uff09\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u9855\u8457<\/li>\n\n\n\n<li>\u6b63\u898f\u8868\u73fe\u306f\u7279\u306b\u9577\u3044\u6587\u5b57\u5217\u3067\u306f\u8457\u3057\u304f\u9045\u304f\u306a\u308b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u306fASCII\u6587\u5b57\u306e\u307f\u306e\u6587\u5b57\u5217\u306b\u5bfe\u3059\u308b\u3082\u306e\u3067\u3059\u3002\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\uff08\u65e5\u672c\u8a9e\u306a\u3069\uff09\u3092\u542b\u3080\u5834\u5408\u306f\u3001\u901a\u5e38\u306e\u30e1\u30bd\u30c3\u30c9\uff08<code>strpos()<\/code>\u306a\u3069\uff09\u306f\u6b63\u3057\u304f\u6a5f\u80fd\u305b\u305a\u3001<code>mb_strpos()<\/code>\u304c\u5fc5\u9808\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-77\">\u691c\u7d22\u30d1\u30bf\u30fc\u30f3\u3068\u30de\u30c3\u30c1\u30f3\u30b0\u52b9\u7387\u306e\u5f71\u97ff<\/h3>\n\n\n\n<p>\u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\u30d1\u30bf\u30fc\u30f3\u306b\u3088\u3063\u3066\u3082\u3001\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u5909\u5316\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-78\">1. \u5358\u7d14\u306a\u6587\u5b57\u5217 vs \u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3<\/h4>\n\n\n\n<p>\u5358\u7d14\u306a\u6587\u5b57\u5217\u691c\u7d22\u3068\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306e\u6bd4\u8f03\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5358\u7d14\u306a\u6587\u5b57\u5217\u691c\u7d22\u3068\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u691c\u7d22\u306e\u6bd4\u8f03\n$text = \"\u30e6\u30fc\u30b6\u30fc\u306e\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306f user123@example.com \u3067\u3059\u3002\u96fb\u8a71\u756a\u53f7\u306f 03-1234-5678 \u3067\u3059\u3002\";\n\n\/\/ \u5358\u7d14\u306a\u6587\u5b57\u5217\u691c\u7d22\n$start = microtime(true);\n$iterations = 10000;\nfor ($i = 0; $i &lt; $iterations; $i++) {\n    $result = str_contains($text, \"@example.com\");\n}\n$simpleTime = microtime(true) - $start;\n\n\/\/ \u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u691c\u7d22\uff08\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\uff09\n$pattern = '\/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\/';\n$start = microtime(true);\nfor ($i = 0; $i &lt; $iterations; $i++) {\n    $result = preg_match($pattern, $text) === 1;\n}\n$complexTime = microtime(true) - $start;\n\necho \"\u5358\u7d14\u306a\u6587\u5b57\u5217\u691c\u7d22\uff08str_contains\uff09: \" . number_format($simpleTime, 6) . \" \u79d2\\n\";\necho \"\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u691c\u7d22\uff08preg_match\uff09: \" . number_format($complexTime, 6) . \" \u79d2\\n\";\necho \"\u6bd4\u7387\uff08\u8907\u96d1 \/ \u5358\u7d14\uff09: \" . number_format($complexTime \/ $simpleTime, 2) . \"\u500d\\n\";\n\n\/\/ \u51fa\u529b\u4f8b:\n\/\/ \u5358\u7d14\u306a\u6587\u5b57\u5217\u691c\u7d22\uff08str_contains\uff09: 0.002345 \u79d2\n\/\/ \u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u691c\u7d22\uff08preg_match\uff09: 0.023456 \u79d2\n\/\/ \u6bd4\u7387\uff08\u8907\u96d1 \/ \u5358\u7d14\uff09: 10.00\u500d\n<\/pre>\n\n\n\n<p>\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306f\u3001\u6b63\u898f\u8868\u73fe\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u691c\u7d22\u306b\u6bd4\u3079\u3066\u6570\u500d\u304b\u3089\u6570\u5341\u500d\u9045\u304f\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-79\">2. \u6587\u5b57\u5217\u306e\u51fa\u73fe\u4f4d\u7f6e\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>\u691c\u7d22\u5bfe\u8c61\u306e\u6587\u5b57\u5217\u304c\u3001\u30c6\u30ad\u30b9\u30c8\u306e\u5148\u982d\u3001\u4e2d\u592e\u3001\u672b\u5c3e\u306e\u3069\u3053\u306b\u3042\u308b\u304b\u306b\u3088\u3063\u3066\u3082\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u5909\u5316\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/**\n * \u6587\u5b57\u5217\u306e\u51fa\u73fe\u4f4d\u7f6e\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6bd4\u8f03\n *\/\nfunction comparePositionPerformance() {\n    $prefix = str_repeat(\"abcdefghij\", 1000); \/\/ 10,000\u6587\u5b57\n    $suffix = str_repeat(\"klmnopqrst\", 1000); \/\/ 10,000\u6587\u5b57\n    $needle = \"SEARCHPATTERN\";\n    \n    \/\/ \u5148\u982d\u306b\u914d\u7f6e\n    $startText = $needle . $prefix . $suffix;\n    \n    \/\/ \u4e2d\u592e\u306b\u914d\u7f6e\n    $middleText = $prefix . $needle . $suffix;\n    \n    \/\/ \u672b\u5c3e\u306b\u914d\u7f6e\n    $endText = $prefix . $suffix . $needle;\n    \n    \/\/ \u5b58\u5728\u3057\u306a\u3044\u5834\u5408\n    $notFoundText = $prefix . $suffix . \"XXXXXXXX\";\n    \n    $iterations = 1000;\n    $results = [];\n    \n    foreach (['strpos', 'str_contains', 'preg_match'] as $method) {\n        $startTime = microtime(true);\n        for ($i = 0; $i &lt; $iterations; $i++) {\n            if ($method === 'strpos') {\n                strpos($startText, $needle) !== false;\n            } elseif ($method === 'str_contains') {\n                str_contains($startText, $needle);\n            } else {\n                preg_match('\/' . preg_quote($needle, '\/') . '\/', $startText);\n            }\n        }\n        $results[$method]['start'] = microtime(true) - $startTime;\n        \n        $startTime = microtime(true);\n        for ($i = 0; $i &lt; $iterations; $i++) {\n            if ($method === 'strpos') {\n                strpos($middleText, $needle) !== false;\n            } elseif ($method === 'str_contains') {\n                str_contains($middleText, $needle);\n            } else {\n                preg_match('\/' . preg_quote($needle, '\/') . '\/', $middleText);\n            }\n        }\n        $results[$method]['middle'] = microtime(true) - $startTime;\n        \n        $startTime = microtime(true);\n        for ($i = 0; $i &lt; $iterations; $i++) {\n            if ($method === 'strpos') {\n                strpos($endText, $needle) !== false;\n            } elseif ($method === 'str_contains') {\n                str_contains($endText, $needle);\n            } else {\n                preg_match('\/' . preg_quote($needle, '\/') . '\/', $endText);\n            }\n        }\n        $results[$method]['end'] = microtime(true) - $startTime;\n        \n        $startTime = microtime(true);\n        for ($i = 0; $i &lt; $iterations; $i++) {\n            if ($method === 'strpos') {\n                strpos($notFoundText, $needle) !== false;\n            } elseif ($method === 'str_contains') {\n                str_contains($notFoundText, $needle);\n            } else {\n                preg_match('\/' . preg_quote($needle, '\/') . '\/', $notFoundText);\n            }\n        }\n        $results[$method]['not_found'] = microtime(true) - $startTime;\n    }\n    \n    return $results;\n}\n\n$positionResults = comparePositionPerformance();\n\necho \"\u6587\u5b57\u5217\u306e\u4f4d\u7f6e\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u5f71\u97ff:\\n\";\nforeach ($positionResults as $method =&gt; $results) {\n    echo \"\\n{$method}:\\n\";\n    echo \"\u5148\u982d: \" . number_format($results['start'], 6) . \" \u79d2\\n\";\n    echo \"\u4e2d\u592e: \" . number_format($results['middle'], 6) . \" \u79d2\\n\";\n    echo \"\u672b\u5c3e: \" . number_format($results['end'], 6) . \" \u79d2\\n\";\n    echo \"\u5b58\u5728\u3057\u306a\u3044: \" . number_format($results['not_found'], 6) . \" \u79d2\\n\";\n}\n\n\/\/ \u51fa\u529b\u4f8b:\n\/\/ strpos:\n\/\/ \u5148\u982d: 0.001234 \u79d2\n\/\/ \u4e2d\u592e: 0.003456 \u79d2\n\/\/ \u672b\u5c3e: 0.006789 \u79d2\n\/\/ \u5b58\u5728\u3057\u306a\u3044: 0.007890 \u79d2\n\/\/\n\/\/ str_contains:\n\/\/ \u5148\u982d: 0.001345 \u79d2\n\/\/ \u4e2d\u592e: 0.003567 \u79d2\n\/\/ \u672b\u5c3e: 0.006890 \u79d2\n\/\/ \u5b58\u5728\u3057\u306a\u3044: 0.007901 \u79d2\n\/\/\n\/\/ preg_match:\n\/\/ \u5148\u982d: 0.004567 \u79d2\n\/\/ \u4e2d\u592e: 0.006789 \u79d2\n\/\/ \u672b\u5c3e: 0.008901 \u79d2\n\/\/ \u5b58\u5728\u3057\u306a\u3044: 0.009012 \u79d2\n<\/pre>\n\n\n\n<p>\u4e00\u822c\u7684\u306b\u3001\u6587\u5b57\u5217\u304c\u5148\u982d\u306b\u8fd1\u3044\u307b\u3069\u691c\u7d22\u304c\u65e9\u304f\u5b8c\u4e86\u3057\u3001\u5b58\u5728\u3057\u306a\u3044\u5834\u5408\u3084\u672b\u5c3e\u306b\u8fd1\u3044\u5834\u5408\u306f\u6700\u3082\u6642\u9593\u304c\u304b\u304b\u308b\u50be\u5411\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u308c\u306f\u591a\u304f\u306e\u6587\u5b57\u5217\u691c\u7d22\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u304c\u5148\u982d\u304b\u3089\u9806\u306b\u30b9\u30ad\u30e3\u30f3\u3059\u308b\u305f\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-80\">\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u5b9f\u7528\u7684\u306a\u52b9\u7387\u6bd4\u8f03\u8868<\/h3>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u8868\u306f\u3001\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u4e3b\u8981\u306a\u7279\u6027\u3092\u6bd4\u8f03\u3057\u305f\u3082\u306e\u3067\u3059\uff1a<\/p>\n\n\n<div id=\"id-7aed8cb7-affe-4dab-b76c-8e486c60eecf\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30bd\u30c3\u30c9<\/th><th>\u76f8\u5bfe\u7684\u901f\u5ea6<\/th><th>\u30e1\u30e2\u30ea\u52b9\u7387<\/th><th>\u5927\u6587\u5b57\u5c0f\u6587\u5b57<\/th><th>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u5bfe\u5fdc<\/th><th>PHP\u6700\u5c0f\u30d0\u30fc\u30b8\u30e7\u30f3<\/th><th>\u4f7f\u7528\u63a8\u5968\u30b7\u30ca\u30ea\u30aa<\/th><\/tr><\/thead><tbody><tr><td>strpos()<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u533a\u5225\u3059\u308b<\/td><td>\u00d7<\/td><td>PHP 4+<\/td><td>\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u691c\u7d22\u3001\u9ad8\u901f\u6027\u304c\u91cd\u8981\u306a\u5834\u5408<\/td><\/tr><tr><td>str_contains()<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u2605\u2605\u2605\u2605\u2605<\/td><td>\u533a\u5225\u3059\u308b<\/td><td>\u00d7<\/td><td>PHP 8.0+<\/td><td>\u6700\u65b0\u74b0\u5883\u3067\u306e\u76f4\u611f\u7684\u306a\u6587\u5b57\u5217\u691c\u7d22<\/td><\/tr><tr><td>stripos()<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u533a\u5225\u3057\u306a\u3044<\/td><td>\u00d7<\/td><td>PHP 5+<\/td><td>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22<\/td><\/tr><tr><td>strstr()<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u2605\u2605\u2605\u2606\u2606<\/td><td>\u533a\u5225\u3059\u308b<\/td><td>\u00d7<\/td><td>PHP 4+<\/td><td>\u90e8\u5206\u6587\u5b57\u5217\u306e\u62bd\u51fa\u3082\u5fc5\u8981\u306a\u5834\u5408<\/td><\/tr><tr><td>preg_match()<\/td><td>\u2605\u2605\u2606\u2606\u2606<\/td><td>\u2605\u2605\u2605\u2606\u2606<\/td><td>\u8a2d\u5b9a\u53ef\u80fd<\/td><td>\u8a2d\u5b9a\u53ef\u80fd<\/td><td>PHP 4+<\/td><td>\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0<\/td><\/tr><tr><td>mb_strpos()<\/td><td>\u2605\u2605\u2605\u2606\u2606<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u533a\u5225\u3059\u308b<\/td><td>\u25ef<\/td><td>PHP 4.2+<\/td><td>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u51e6\u7406<\/td><\/tr><tr><td>substr_count()<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u2605\u2605\u2605\u2605\u2606<\/td><td>\u533a\u5225\u3059\u308b<\/td><td>\u00d7<\/td><td>PHP 4+<\/td><td>\u51fa\u73fe\u56de\u6570\u306e\u30ab\u30a6\u30f3\u30c8\u304c\u5fc5\u8981\u306a\u5834\u5408<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-81\">\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u6700\u9069\u5316\u63a8\u5968\u4e8b\u9805<\/h3>\n\n\n\n<p>\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u70b9\u3092\u8003\u616e\u3057\u3066\u6700\u9069\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u691c\u7d22\u306b\u306f<code>str_contains()<\/code>\u3092\u512a\u5148<\/strong>\n<ul class=\"wp-block-list\">\n<li>PHP 8.0\u4ee5\u4e0a\u304c\u5229\u7528\u53ef\u80fd\u306a\u74b0\u5883\u3067\u306f\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u30d0\u30e9\u30f3\u30b9\u304c\u6700\u3082\u826f\u3044<\/li>\n\n\n\n<li>\u4e0b\u4f4d\u4e92\u63db\u6027\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f<code>strpos() !== false<\/code>\u3092\u4f7f\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22\u306b\u306f<code>stripos()<\/code>\u3092\u4f7f\u7528<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u306e\u691c\u7d22\u306a\u3069\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u533a\u5225\u304c\u4e0d\u8981\u306a\u30b1\u30fc\u30b9\u306b\u6700\u9069<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\uff08\u65e5\u672c\u8a9e\u306a\u3069\uff09\u3092\u6271\u3046\u5834\u5408\u306f\u5fc5\u305a<code>mb_*<\/code>\u95a2\u6570\u3092\u4f7f\u7528<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u6b63\u3057\u3044\u52d5\u4f5c\u306e\u305f\u3081\u306b\u5fc5\u9808\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3088\u308a\u3082\u6b63\u78ba\u6027\u3092\u512a\u5148<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306b\u306e\u307f\u6b63\u898f\u8868\u73fe\u3092\u4f7f\u7528<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3084URL\u306a\u3069\u306e\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u691c\u7d22\u306b\u9069\u3057\u3066\u3044\u308b\u304c\u3001\u30b7\u30f3\u30d7\u30eb\u306a\u6587\u5b57\u5217\u691c\u7d22\u3067\u306f\u907f\u3051\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u306a\u30eb\u30fc\u30d7\u5185\u3067\u306e\u6700\u9069\u5316<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u983b\u7e41\u306b\u5b9f\u884c\u3055\u308c\u308b\u7b87\u6240\u3067\u306f\u3001\u6700\u3082\u52b9\u7387\u7684\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u9078\u629e<\/li>\n\n\n\n<li>\u53ef\u80fd\u3067\u3042\u308c\u3070\u4e8b\u524d\u306b\u30d1\u30bf\u30fc\u30f3\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u304b\u3001\u7d50\u679c\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u5927\u898f\u6a21\u306a\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u3067\u306e\u6bb5\u968e\u7684\u30a2\u30d7\u30ed\u30fc\u30c1<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u307e\u305a\u9ad8\u901f\u306a\u30e1\u30bd\u30c3\u30c9\uff08strpos()\u306a\u3069\uff09\u3067\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3057\u3001\u305d\u306e\u5f8c\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u8a73\u7d30\u306a\u51e6\u7406\u3092\u884c\u3046<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u9069\u5207\u306a\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u51e6\u7406<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u56fd\u969b\u5316\u5bfe\u5fdc\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u4e00\u8cab\u3057\u305f\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\uff08\u901a\u5e38\u306fUTF-8\uff09\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3068\u4e00\u822cASCII\u306e\u307f\u306e\u6587\u5b57\u5217\u3067\u7570\u306a\u308b\u30ed\u30b8\u30c3\u30af\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3082\u8003\u616e<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-82\">\u7d50\u8ad6<\/h3>\n\n\n\n<p>PHP 8\u7cfb\u306e\u6700\u65b0\u74b0\u5883\u3067\u306f\u3001<code>str_contains()<\/code>\u95a2\u6570\u304c\u30b7\u30f3\u30d7\u30eb\u3067\u76f4\u611f\u7684\u306aAPI\u3068\u9ad8\u901f\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u517c\u306d\u5099\u3048\u3066\u3044\u308b\u305f\u3081\u3001\u591a\u304f\u306e\u4e00\u822c\u7684\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u6700\u9069\u306a\u9078\u629e\u80a2\u3068\u306a\u308a\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u7279\u5b9a\u306e\u8981\u4ef6\uff08\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3001\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u3001\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u306e\u533a\u5225\u306a\u3057\uff09\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u72b6\u6cc1\u306b\u9069\u3057\u305f\u30e1\u30bd\u30c3\u30c9\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u306a\u90e8\u5206\u3067\u9069\u5207\u306a\u6587\u5b57\u5217\u691c\u7d22\u30e1\u30bd\u30c3\u30c9\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001\u5168\u4f53\u7684\u306a\u5fdc\u7b54\u6642\u9593\u3068\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u5927\u91cf\u306e\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u3084\u983b\u7e41\u306a\u691c\u7d22\u64cd\u4f5c\u3092\u884c\u3046\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u3001\u3053\u306e\u7ae0\u3067\u8aac\u660e\u3057\u305f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027\u3092\u8003\u616e\u3057\u3066\u8a2d\u8a08\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-83\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001PHP\u3067\u6587\u5b57\u5217\u306b\u7279\u5b9a\u306e\u6587\u5b57\u5217\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3059\u308b7\u3064\u306e\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3057\u305f\u3002\u5404\u30e1\u30bd\u30c3\u30c9\u306e\u7279\u5fb4\u3001\u4f7f\u7528\u65b9\u6cd5\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7279\u6027\u3001\u305d\u3057\u3066\u9069\u5207\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3092\u7d39\u4ecb\u3057\u307e\u3057\u305f\u30022025\u5e74\u306e\u6700\u65b0\u60c5\u5831\u3082\u8e0f\u307e\u3048\u3066\u3001\u73fe\u4ee3\u306ePHP\u958b\u767a\u306b\u304a\u3051\u308b\u6700\u9069\u306a\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u63d0\u6848\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-84\">7\u3064\u306e\u65b9\u6cd5\u306e\u8981\u70b9<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>strpos() \u2013 \u53e4\u5178\u7684\u3067\u9ad8\u901f\u306a\u6587\u5b57\u5217\u691c\u7d22\u95a2\u6570<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u6700\u3082\u57fa\u672c\u7684\u304b\u3064\u9ad8\u901f\u306a\u6587\u5b57\u5217\u691c\u7d22\u624b\u6bb5<\/li>\n\n\n\n<li><code>!== false<\/code>\u3067\u306e\u6bd4\u8f03\u304c\u5fc5\u8981\u306a\u305f\u3081\u3001\u521d\u5fc3\u8005\u306b\u306f\u76f4\u611f\u7684\u3067\u306a\u3044<\/li>\n\n\n\n<li>\u4f4d\u7f6e\u60c5\u5831\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u7279\u306b\u6709\u7528<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>str_contains() \u2013 PHP 8\u3067\u5c0e\u5165\u3055\u308c\u305f\u76f4\u611f\u7684\u306a\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5358\u7d14\u3067\u8aad\u307f\u3084\u3059\u3044\u69cb\u6587\uff08PHP 8.0\u4ee5\u4e0a\u304c\u5fc5\u8981\uff09<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3082\u512a\u308c\u3066\u304a\u308a\u3001\u591a\u304f\u306e\u5834\u5408\u3067\u6700\u826f\u306e\u9078\u629e\u80a2<\/li>\n\n\n\n<li>\u4e0b\u4f4d\u4e92\u63db\u6027\u306e\u305f\u3081\u306b\u30dd\u30ea\u30d5\u30a3\u30eb\u3092\u63d0\u4f9b\u53ef\u80fd<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>stripos() \u2013 \u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u3084\u30e6\u30fc\u30b6\u30fc\u30d5\u30ec\u30f3\u30c9\u30ea\u30fc\u306a\u691c\u7d22\u306b\u6700\u9069<\/li>\n\n\n\n<li>strpos()\u3088\u308a\u3084\u3084\u9045\u3044\u304c\u3001\u67d4\u8edf\u6027\u304c\u9ad8\u3044<\/li>\n\n\n\n<li>\u56fd\u969b\u5316\u5bfe\u5fdc\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u5f79\u7acb\u3064<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>strstr() \u2013 \u90e8\u5206\u6587\u5b57\u5217\u306e\u62bd\u51fa\u3068\u78ba\u8a8d\u3092\u540c\u6642\u306b\u5b9f\u884c<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u691c\u7d22\u3068\u62bd\u51fa\u3092\u4e00\u5ea6\u306b\u884c\u3048\u308b\u4fbf\u5229\u306a\u95a2\u6570<\/li>\n\n\n\n<li>\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u3084\u30d1\u30fc\u30b9\u51e6\u7406\u306b\u9069\u3057\u3066\u3044\u308b<\/li>\n\n\n\n<li>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044stristr()\u3082\u5229\u7528\u53ef\u80fd<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u6b63\u898f\u8868\u73fe \u2013 \u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u9ad8\u5ea6\u3067\u67d4\u8edf\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u304c\u53ef\u80fd<\/li>\n\n\n\n<li>\u30b7\u30f3\u30d7\u30eb\u306a\u691c\u7d22\u3088\u308a\u3082\u9045\u3044\u305f\u3081\u3001\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u306b\u306e\u307f\u4f7f\u7528<\/li>\n\n\n\n<li>\u5f37\u529b\u3060\u304c\u3001\u904e\u5270\u306a\u4f7f\u7528\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3059\u308b<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>mb_strpos() \u2013 \u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217\u5bfe\u5fdc\u306e\u691c\u7d22<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u3092\u51e6\u7406\u3059\u308b\u5834\u5408\u306b\u5fc5\u9808<\/li>\n\n\n\n<li>\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u660e\u793a\u7684\u306b\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u91cd\u8981<\/li>\n\n\n\n<li>PHP 8\u7cfb\u3067\u306e\u6700\u9069\u5316\u306b\u3088\u308a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>substr_count() \u2013 \u6587\u5b57\u5217\u306e\u51fa\u73fe\u56de\u6570\u3092\u30ab\u30a6\u30f3\u30c8<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u5358\u306a\u308b\u5305\u542b\u30c1\u30a7\u30c3\u30af\u3067\u306f\u306a\u304f\u3001\u983b\u5ea6\u5206\u6790\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u6709\u7528<\/li>\n\n\n\n<li>\u30c6\u30ad\u30b9\u30c8\u30de\u30a4\u30cb\u30f3\u30b0\u3084\u5206\u6790\u306b\u9069\u3057\u3066\u3044\u308b<\/li>\n\n\n\n<li>\u691c\u7d22\u7bc4\u56f2\u3092\u5236\u9650\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3082\u63d0\u4f9b<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-85\">\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u5225\u306e\u6700\u9069\u306a\u9078\u629e<\/h3>\n\n\n\n<p>\u5b9f\u969b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u3067\u306f\u3001\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u6700\u9069\u306a\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e00\u822c\u7684\u306a\u6587\u5b57\u5217\u5305\u542b\u30c1\u30a7\u30c3\u30af<\/strong>: PHP 8.0\u4ee5\u4e0a\u306a\u3089<code>str_contains()<\/code>\u3001\u305d\u308c\u4ee5\u524d\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306a\u3089<code>strpos() !== false<\/code><\/li>\n\n\n\n<li><strong>\u5927\u6587\u5b57\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3057\u306a\u3044\u691c\u7d22<\/strong>: <code>stripos()<\/code>\u307e\u305f\u306f<code>str_contains()<\/code>\u3068<code>strtolower()<\/code>\u306e\u7d44\u307f\u5408\u308f\u305b<\/li>\n\n\n\n<li><strong>\u65e5\u672c\u8a9e\u306a\u3069\u306e\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u5217<\/strong>: \u5fc5\u305a<code>mb_strpos()<\/code>\u307e\u305f\u306f<code>mb_str_contains()<\/code>\uff08\u81ea\u4f5c\u95a2\u6570\uff09<\/li>\n\n\n\n<li><strong>\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0<\/strong>: \u6b63\u898f\u8868\u73fe\uff08<code>preg_match()<\/code>\u306a\u3069\uff09<\/li>\n\n\n\n<li><strong>\u30c6\u30ad\u30b9\u30c8\u5206\u6790\u3068\u983b\u5ea6\u30ab\u30a6\u30f3\u30c8<\/strong>: <code>substr_count()<\/code><\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30af\u30ea\u30c6\u30a3\u30ab\u30eb\u306a\u90e8\u5206<\/strong>: <code>strpos()<\/code>\u307e\u305f\u306f<code>str_contains()<\/code>\uff08\u6700\u3082\u9ad8\u901f\uff09<\/li>\n\n\n\n<li><strong>\u30c6\u30ad\u30b9\u30c8\u62bd\u51fa\u3082\u540c\u6642\u306b\u884c\u3046<\/strong>: <code>strstr()<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-86\">\u4eca\u5f8c\u306e\u5c55\u671b<\/h3>\n\n\n\n<p>PHP\u8a00\u8a9e\u306f\u7d99\u7d9a\u7684\u306b\u9032\u5316\u3057\u3066\u304a\u308a\u3001\u6587\u5b57\u5217\u64cd\u4f5c\u95a2\u6570\u3082\u6539\u5584\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6700\u9069\u5316<\/strong>\n<ul class=\"wp-block-list\">\n<li>PHP 8.x\u7cfb\u3067\u306e\u7d99\u7d9a\u7684\u306a\u5185\u90e8\u6700\u9069\u5316\u306b\u3088\u308a\u3001\u6587\u5b57\u5217\u95a2\u6570\u306e\u51e6\u7406\u901f\u5ea6\u306f\u5411\u4e0a\u3057\u3066\u3044\u307e\u3059<\/li>\n\n\n\n<li>JIT\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u9032\u5316\u306b\u3088\u308a\u3001\u7e70\u308a\u8fd4\u3057\u5b9f\u884c\u3055\u308c\u308b\u6587\u5b57\u5217\u64cd\u4f5c\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>API\u306e\u4e00\u8cab\u6027<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>str_contains()<\/code>\u306e\u3088\u3046\u306a\u76f4\u611f\u7684\u306aAPI\u306e\u5c0e\u5165\u306f\u3001PHP\u306e\u958b\u767a\u8005\u4f53\u9a13\u3092\u5411\u4e0a\u3055\u305b\u308b\u50be\u5411\u3092\u793a\u3057\u3066\u3044\u307e\u3059<\/li>\n\n\n\n<li>\u5c06\u6765\u7684\u306b\u306f\u4ed6\u306e\u6587\u5b57\u5217\u64cd\u4f5c\u95a2\u6570\u3082\u540c\u69d8\u306e\u30b7\u30f3\u30d7\u30eb\u306a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u7d71\u4e00\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u5bfe\u5fdc\u306e\u5f37\u5316<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u56fd\u969b\u5316\u5bfe\u5fdc\u306e\u91cd\u8981\u6027\u304c\u5897\u3059\u4e2d\u3001\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\u306e\u3055\u3089\u306a\u308b\u6700\u9069\u5316\u3068\u6a5f\u80fd\u62e1\u5f35\u304c\u671f\u5f85\u3055\u308c\u307e\u3059<\/li>\n\n\n\n<li>\u5c06\u6765\u7684\u306b\u306f\u6a19\u6e96\u95a2\u6570\u3068\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u95a2\u6570\u306e\u7d71\u5408\u304c\u9032\u3080\u53ef\u80fd\u6027\u3082\u3042\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u3088\u308a\u9ad8\u5ea6\u306a\u30c6\u30ad\u30b9\u30c8\u51e6\u7406\u6a5f\u80fd<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u81ea\u7136\u8a00\u8a9e\u51e6\u7406\u3084\u30c6\u30ad\u30b9\u30c8\u5206\u6790\u306e\u30cb\u30fc\u30ba\u306e\u5897\u52a0\u306b\u4f34\u3044\u3001\u3088\u308a\u9ad8\u5ea6\u306a\u6587\u5b57\u5217\u5206\u6790\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-87\">\u6700\u5f8c\u306b<\/h3>\n\n\n\n<p>PHP\u306b\u304a\u3051\u308b\u6587\u5b57\u5217\u64cd\u4f5c\u3001\u7279\u306b\u6587\u5b57\u5217\u306e\u5305\u542b\u30c1\u30a7\u30c3\u30af\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u57fa\u672c\u7684\u304b\u3064\u91cd\u8981\u306a\u30b9\u30ad\u30eb\u3067\u3059\u3002\u3053\u306e\u8a18\u4e8b\u3067\u7d39\u4ecb\u3057\u305f7\u3064\u306e\u65b9\u6cd5\u3092\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u9069\u5207\u306b\u4f7f\u3044\u5206\u3051\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u7387\u7684\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>2025\u5e74\u73fe\u5728\u3001PHP 8.x\u30b7\u30ea\u30fc\u30ba\u304c\u5e83\u304f\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u74b0\u5883\u3067\u306f\u3001<code>str_contains()<\/code>\u3092\u4e2d\u5fc3\u3068\u3057\u305f\u65b0\u3057\u3044API\u3092\u7a4d\u6975\u7684\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u30de\u30eb\u30c1\u30d0\u30a4\u30c8\u6587\u5b57\u306e\u51e6\u7406\u3084\u8907\u96d1\u306a\u30d1\u30bf\u30fc\u30f3\u30de\u30c3\u30c1\u30f3\u30b0\u306a\u3069\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5bfe\u3057\u3066\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u72b6\u6cc1\u306b\u6700\u9069\u5316\u3055\u308c\u305f\u65b9\u6cd5\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u3001\u9ad8\u54c1\u8cea\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u9375\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6587\u5b57\u5217\u64cd\u4f5c\u306e\u57fa\u672c\u3092\u30de\u30b9\u30bf\u30fc\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u8907\u96d1\u306aPHP\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u306b\u3082\u81ea\u4fe1\u3092\u6301\u3063\u3066\u53d6\u308a\u7d44\u3080\u3053\u3068\u304c\u3067\u304d\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,63],"tags":[],"class_list":{"0":"post-3704","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php","7":"category-php-syntax","8":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3704","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3704"}],"version-history":[{"count":3,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3704\/revisions"}],"predecessor-version":[{"id":3709,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3704\/revisions\/3709"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}