/** * メールフォームへのリンクを生成する * * @param string $title リンクのタイトル * @param string $contentsName メールフォームのコンテンツ名 * @param array $datas メールフォームに引き継ぐデータ(初期値 : array()) * @param array $options a タグの属性(初期値 : array()) * ※ オプションについては、HtmlHelper::link() を参照 * @return void */ public function link($title, $contentsName, $datas = array(), $options = array()) { if ($datas && is_array($datas)) { foreach ($datas as $key => $data) { $datas[$key] = base64UrlsafeEncode($data); } } $link = array_merge(array('plugin' => '', 'controller' => $contentsName, 'action' => 'index'), $datas); $this->BcBaser->link($title, $link, $options); }
/** * パーセントエンコーディングされないURLセーフなbase64エンコード */ public function testBase64UrlsafeEncodeDecode() { // encode $text = 'ふぁsdlfdfがgふぁsdlpfs'; // base64エンコードすると + と = が含まれる文字列 $enc = base64UrlsafeEncode($text); $result = urlencode($enc); // %が含まれてないかチェック $this->assertRegExp('/^(?!.*%)/', $result, 'パーセントエンコーディングされています'); // decode $dec = base64UrlsafeDecode($enc); $this->assertEquals($dec, $text, '正しくデコードできません'); }