Mixpanelの導入

LINEで送る
Pocket

Mixpanelの登録から設定まで

続きを読む Mixpanelの導入

LINEで送る
Pocket

Qdmailのbccに気をつけろ

LINEで送る
Pocket

先日文字化けに悩まされてQdmailを使う事にしたんだけど、
複数のbccにメールを送ろうとしたら上手くいかなかった。

こちら本家マニュアルを参照

http://hal456.net/qdmail/oopbase#p1.3

これによると、


$mail -> to( '[email protected]' , '宛先日本語名' ); $mail -> bcc( '[email protected]' );

※bccでは、宛先表示名は意味がありませんので、指定できません。

複数宛先指定方法1

$to = array( '[email protected]','[email protected]','[email protected]' );
$toName = array( '宛先1の日本語名','宛先2の日本語名','宛先3の日本語名' );
$mail -> to( $to , $toName );

cc,bccも同様です。from,reply-toは、ひとつしか設定できません。


という事はだよ。
bccに複数指定する場合は

$this->Qdmail->bcc(array('[email protected]', '[email protected]'));

となりそう。
だから僕はこう設定して「できねぇっす!」ともがいていたけど、
でも実際は、

$this->Qdmail->bcc('[email protected],[email protected]');

これが答え。

うそつきー、「bccも同様」ぢゃねーじゃん!!!!

LINEで送る
このエントリーをはてなブックマークに追加
Pocket

PHP – array_shiftに気をつけろ

LINEで送る
Pocket

配列の操作で最初の要素を取り除く便利な関数に array_shift がある。

動きは、例えば

【コード】—————————————————–

$renpou = array('アムロ', 'カイ君', 'ハヤト');
array_shift($renpou);
print_r($renpou);

【結果】—————————————————–

Array ( [0] => カイ君 [1] => ハヤト )

 

こんな具合に最初の要素’アムロ’がなくなりました。

しかし、ここで全てのキーが差し替えられている事に注意。

foreachで配列の値のみを使用している様なケースには問題がありませんが、キーが意味を持つ場合に問題が生じます。

【問題の無いケース】—————————————

$renpou = array('アムロ', 'カイ君', 'ハヤト');
array_shift($renpou); foreach($renpou as $member) {      echo $member.'がモビルスーツで出撃<br />'; }

【結果】—————————————————–

カイ君がモビルスーツで出撃

ハヤトがモビルスーツで出撃

 

上の例の場合キーが何であろうと問題がなく、値さえ使えればよいので、例えばメンバーからアムロを外したい等の理由でarray_shiftしても問題ありません。

では次の例ではどうでしょう?

【問題になるケース】—————————————-

$mobile_suits = array(
     '0' => 'ガンダム',
     '1' => 'ガンキャノン',
     '2' => 'ガンタンク'
);
$renpou = array('アムロ', 'カイ君', 'ハヤト');
array_shift($renpou);
foreach($renpou as $key => $member) {
     echo $member.'は'.$mobile_suits[$key].'で出撃<br />';
}

【結果】—————————————————–
カイ君はガンダムで出撃
ハヤトはガンキャノンで出撃

 
この場合、$renpouのキーであるid番号に$mobile_suitsと結びつく意味があるので、array_shiftして$renpouのキーが変わると問題が発生する。
詳しく説明すると、$renpou = array(‘アムロ’, ‘カイ君’, ‘ハヤト’);はもともとArray ( [0] => アムロ [1] => カイ君 [2] => ハヤト )であったため、0というキーにはアムロが紐づいていたのだ。
しかしarray_shiftする事によって0というキーにカイ君が紐づいてしまったため、その後の処理に影響がでたということ。

では、どうしたらいいか。
unset();を使うといいだろう。

【コード】—————————————————–

$renpou = array('アムロ', 'カイ君', 'ハヤト');
array_shift($renpou);
print_r($renpou);

【結果】—————————————————–

Array ( [0] => カイ君 [1] => ハヤト )

【コード】—————————————————–

$renpou = array('アムロ', 'カイ君', 'ハヤト');
unset($renpou[0]);
print_r($renpou);

【結果】—————————————————–

Array ( [1] => カイ君 [2] => ハヤト )

これで結果の違いが一目瞭然

LINEで送る
Pocket

PHP ヒアドキュメント内に変数を使う

LINEで送る
Pocket

アホみたいなメモ

PHPでヒアドキュメントはとても便利。でもヒアドキュメント内で変数を使いたい時もある。

そのやり方メモ。

$string =<<< EOD

何や知らん画像

<img src=”${img_url}” alt=”${img_description}” />

ほげほげ

EOD;

 

ヒアドキュメント内では、{}でくくって変数を表現する。

 

LINEで送る
Pocket