dポイントプレゼントキャンペーン実施中!

怒られそうですがどうしてもすぐにしなければならなくなって、お助けください。
smartyという言語で、文字列の5文字目から2文字を取り出す関数を教えてください。
切捨ての関数はあったのですが希望のものがありません。
よろしくお願いします。

m(__)m

A 回答 (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 />
    • good
    • 0
この回答へのお礼

ありがとうございます。
カッコの位置の文字だけを抜き出すことに成功しました。
ありがとうございます。大助かりです。m(__)m

お礼日時:2008/01/29 09:16

{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

何度も申し訳なくて、、

補足日時:2008/01/28 18:21
    • good
    • 0

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

補足日時:2008/01/28 14:59
    • good
    • 0

smartyでなければいけないのですか?普通にphpでsubstrで書けない場所?そのあたりの情報をお願いします。



http://jp2.php.net/manual/ja/function.substr.php

この回答への補足

書き方が分からないのです。
変数 DataAに"[A01]"が入っているときに01を抜き出したいのですが、
<{$DataA = substr($DataA,3,2)}>
<{print $DataA}>
だとエラーが出ます。
よく分からないので十分説明ができないのですが間違っているのは分かっているんです。勉強しなければならないのでしょうが今回PHPが初めてでなんのことやらよくわかってないのです。すみません

補足日時:2008/01/28 13:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!