0

次の最初の 2 文字を取得する必要があります。

$node->field_email_body['und'][0]['value']; //there are like 200 - 300 characters

私は一緒に行こうとします:

$bodyemail = substr($node->field_email_body['und'][0]['value'], 0, 2);

そしてそれはうまくいきません。
次に、次のようなことをする必要があります。

if ($bodyemail == 'ok') {
    drupal_set_message ('done');
}
else {
    drupal_set_message ('not done');
}

私はそれが配列であることを知っています...そしてsubstr文字列で動作します。しかし、別の方法でそれを行う方法が本当にわかりません。Google は役に立ちませんでした。

4

2 に答える 2

0

ご協力と時間をありがとうございました。問題は私のコードにありました...「drupal_set_message」の最後の行に「)」を入れるのを忘れて、私の問題は「substr」にあると思いました。今は大丈夫です。

function driver_mailer_node_presave($node) { 
if ($node->type == 'mailhandler_source'){
drupal_set_message ('mailhandler node: ' .print_r($node->field_email_body['und'][0]['value'], true));
$string = $node->field_email_body['und'][0]['value'];
$bodyemail = substr($string, 0, 10);
drupal_set_message (print_r($bodyemail, true));
}
}
于 2012-12-25T07:21:55.290 に答える
-1

あなたのコードはうまく見えます。

配列のその位置を独自の変数に設定してから、それをsubstrにしてみることをお勧めします。次に、両方をエコー/ログに記録し、それらが何に設定されているかを確認できます。

于 2012-12-24T16:45:58.560 に答える