- ベストアンサー
文字列から抜き出す
怒られそうですがどうしてもすぐにしなければならなくなって、お助けください。 smartyという言語で、文字列の5文字目から2文字を取り出す関数を教えてください。 切捨ての関数はあったのですが希望のものがありません。 よろしくお願いします。 m(__)m
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
substrはマニュアルにありませんでしたね。 とりあえず正規表現で。 {assign var="DataA" value="[A01]"} {$DataA}<br /> 1: {$DataA|regex_replace:"/^..(..).*/":"\\1"}<br /> {assign var="DataA" value=$DataA|regex_replace:"/^..(..).*/":"\\1"} 2: {$DataA}<br />
その他の回答 (3)
- tany180sx
- ベストアンサー率63% (239/379)
{assign var="DataA" value="[A01]"} {$DataA}<br /> 1: {$DataA|substr:"2":"2"}<br /> {assign var="DataA" value=$DataA|substr:"2":"2"} 2: {$DataA}<br />
補足
ご回答ありがとうございます。 substrのところで必ずエラーが出ます。 これは借りているサーバーのsmartlyがsubstrを停止しているからじゃないかと思うのですが、そんなことはありえるのでしょうか? こんなエラーが出ます。 Fatal error: Smarty error: [in file:8/product.tpl line 22]: [plugin] (secure mode) modifier 'substr' is not allowed (Smarty_Compiler.class.php, line 1905) in /home/サーバーかな?/Smarty.class.php on line 1588 何度も申し訳なくて、、
- agaph
- ベストアンサー率0% (0/1)
Smarty で書くとこんな感じです。 {$DataA|substr:4:2} ※因みに Smarty は言語ではなくテンプレートエンジンかと思います。
補足
どうもありがとうございます。 <{assign var="DataA" value=$DataA|substr:4:2}> を貼り付けで実行すると、 Fatal error: Smarty error: [in file:8/product.tpl line 13]: [plugin] (secure mode) modifier 'substr' is not allowed (Smarty_Compiler.class.php, line 1905) in /home/アドレス/Smarty.class.php on line 1588 となります。 再度すみませんが解決法を教えてください。 m(__)m
- shimix
- ベストアンサー率54% (865/1590)
smartyでなければいけないのですか?普通にphpでsubstrで書けない場所?そのあたりの情報をお願いします。 http://jp2.php.net/manual/ja/function.substr.php
補足
書き方が分からないのです。 変数 DataAに"[A01]"が入っているときに01を抜き出したいのですが、 <{$DataA = substr($DataA,3,2)}> <{print $DataA}> だとエラーが出ます。 よく分からないので十分説明ができないのですが間違っているのは分かっているんです。勉強しなければならないのでしょうが今回PHPが初めてでなんのことやらよくわかってないのです。すみません
お礼
ありがとうございます。 カッコの位置の文字だけを抜き出すことに成功しました。 ありがとうございます。大助かりです。m(__)m