- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定の文字列が含むときに、専用の処理をさせたい)
特定の文字列から専用処理を行う方法
このQ&Aのポイント
- 特定の文字列が含まれている場合、専用の処理を行いたいです。具体的には、文字列の末尾に「_asc」または「_desc」が付いている場合、それを取り除いた文字列を取得し、別の変数に「asc」または「desc」を格納したいです。
- 現在、以下のようにして処理を行っていますが、上手くいっていません。より良い方法があれば教えてください。 $str変数にデフォルトの値として「id」を設定し、$_GET['aaa']が存在する場合はその値を$strに代入します。その後、正規表現を使用して文字列の末尾に「_asc」が含まれているかどうかを判定し、含まれている場合は「_asc」を取り除いた文字列を$strに格納します。同様に、「_desc」が含まれている場合は「_desc」を取り除き、$mmm変数に「desc」を格納します。
- 上記の処理ではうまくいかなかったため、より効率的な方法を探しています。もし他に良い方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>上手にできませんでした。 どういう結果になったのか(なぜ上手くできないと判断したのか)くらいは書いていただくといいんですが(汗 (私なら)「そのまま」下記のように書きますね。 if(isset($_GET['aaa'])){ $str = $_GET['aaa']; $mmm = ''; if (substr($str,strlen($str)-4,4) === '_asc') { $str = substr($str, 0, strlen($str) - 4); $mmm = 'asc'; } if (substr($str,strlen($str)-5,5) === '_desc') { $str = substr($str, 0, strlen($str) - 5); $mmm = 'desc'; } } なお、rtrim()の第二引数は「文字リスト」です。なので、提示されたソースでxxxs_ascとかxxxc_descとかを処理すると"_"の直前の文字までtrimされます。
お礼
解決しました。 ありがとうございました。