デフォルトで
http://example.com/hoge/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF
「こんにちは」をurldecodeしたものをと投げかけると、「The URI you submitted has disallowed characters.」とお叱りの言葉が出て日本語が使えないことが解りがっかりし…たと思ったら大間違い、タダでは起きあがらないテンコモリ夫、またまた調べてみた。
ふふーん、ほうほう、どうやら config ファイルの $config['permitted_uri_chars'] の正規表現部分が影響しているようですわよ。こんな感じで使えるみたい。
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_-';
↓
$config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴーa-zA-Z0-9a-z 0-9~%.:_-';
ただ、「DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!(わかんねならいじくんな!)」と書かれてあるので、自己責任でお願いします。
参考記事
スポンサーサイト
テーマ:PHP - ジャンル:コンピュータ
ActionScript3.0 | ImageクラスをBitmapクラスに変換してmxmlコンポーネントに追加
ブログの更新をさぼっているように見せかけて、ActionScript3.0 のお勉強を始めてしまいました。flash初体験なので試行錯誤して遊んでいる今日この頃です。
そんな前置きはさておき、画像を読み込んで Canvas に追加して拡大したり縮小したりするという単純な物をシコシコと作っているんだけども、Image クラスの load メソッドで画像を読み込んだものは、拡大縮小すると画像がギザ ギザになるの。でも、スムーズにしたいの。したいーしたいよー。と思って調べてみたら、Bitmap の smoothing プロパティを true に設定すればOKということが判明したの。
でも、読み込んだ画像は Image クラス、スムーズに出来るのは Bitmap クラス…。ここは素直に URLLoader で読み込んで…と思わないところがあたいの良いところ。意地でも Image を Bitmap へ変換してスムーズに拡大しちゃうんだからね!という密かな思いを心に秘め、ググったりマニュアルとにらめっこすること早一週間、答えが導かれました。
まずはImage から Bitmap 画像への変換方法
// var img:Image;
var bd : BitmapData = new BitmapData(img.contentWidth, img.contentHeight);
bd.draw(img);
var bitmap:Bitmap = new Bitmap(bd);
こんな感じでokみたい。でもこれだけじゃ Canvas コンポーネントに追加( addChild() )出来ません(><)/ UIComponent の子供じゃなきゃ仲間に入れて上げないよーだっていじわるされちゃう…。そこで UIComponent の遺伝子を獲得すべく、継承することにレッツチャレンジ。
ファイル名 BitmapImage.as
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import mx.controls.Image;
import mx.core.UIComponent;
public class BitmapImage extends UIComponent
{
public var bitmap:Bitmap;
public function BitmapImage():void
{
super();
}
public function convert(img:Image):void
{
var bd : BitmapData = new BitmapData(img.contentWidth, img.contentHeight);
bd.draw(img);
bitmap = new Bitmap(bd);
addChild(bitmap);
}
}
}
こんな感じで晴れて UIComponent の子供になれた BitmapImage くんは Canvas くんの仲間に入れるのであった。
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.events.Event;
import flash.events.MouseEvent;
import mx.controls.Image;
import BitmapImage;
private function init():void
{
var img:Image = new Image();
img.addEventListener(Event.COMPLETE, completeHandler);
img.load("http://g-ec2.images-amazon.com/images/I/41jA88dFiCL._AA100_.jpg");
}
private function completeHandler(e:Event):void
{
var img:Image = Image(e.currentTarget);
var bi:BitmapImage = new BitmapImage();
bi.convert(img);
bi.bitmap.smoothing = true;
bi.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
cv.addChild(bi);
}
private function mouseDownHandler(e:Event):void
{
var bi:BitmapImage = BitmapImage(e.currentTarget);
bi.bitmap.scaleX += 0.1;
bi.bitmap.scaleY += 0.1;
}
]]>
</mx:Script>
<mx:Canvas id="cv" width="500" height="400" backgroundColor="0xffffff"></mx:Canvas>
</mx:Application>
と思ったら大間違い!クロスドメイン問題で読み込んだ画像が表示されません(><) 仕方無いのでサーバー側で何とかしてみた。
<?php
$url = $_GET['url'];
if (preg_match("/^http://.+.images-amazon.com/.+?.jpg$/", $url))
{
header('Content-Type: image/jpeg');
echo file_get_contents($url);
exit;
}
header('HTTP/1.0 400 Bad Request');
?>
正規表現部分は超適当なので参考にしないで下さい。また環境によって動かない場合もあるので自分でチェックチェック。
参考記事
テーマ:Flash - ジャンル:コンピュータ
ついカッとなって自動的に最安商品を表示させるアフィリエイトツール を作ってみた。楽天、Amazon、ビッダーズの中から一番安い商品を表示しちゃいますよ、奥さん。
使い方は
表示したい商品名で検索(例:初音ミク )
検索結果に出てくる をクリック
アフィリエイトID入力
スクリプトゲット!
自分のブログやサイトに貼り付け
で、OK牧場です。そんな感じで上に表示されているのが、スクリプトで取得した初音ミクの最安値商品です。良かったら使ってねー。
テーマ:アフィリエイター必須ツール - ジャンル:アフィリエイト
show_error('エラー'); だと本文にしかエラーが表示されない...ページタイトルも自分で設定した文字列にしたいわ...と欲求不満に陥ったので調べてみた。
どうやら Exceptioins ライブラリを使って、直接 show_error メソッドを使えばいいみたい。
$this->load->library('exceptions');
echo $this->exceptions->show_error('ほにゃららエラー', 'エラーですYO!');
こんな感じで。
テーマ:PHP - ジャンル:コンピュータ
メールを送信する時、だいたい決まった雛型(テンプレート)があると思います。そんなメール用テンプレートに変数をはめ込む実験です。まずはメール送信用テンプレートをご用意
{m1}
下記のURLを開いて{m2}
{url}
{time}時間以内に手続きを完了されない場合は
上記URLが無効になりますのでご注意ください。
無効になった場合はもう一度やり直しをお願いします。
{signature}
んで、それをコントローラ側でパーサーライブラリを使用してはめ込む!$this->parser->parse() メソッドの第三引数にTRUE を指定しないと結果が出力されちゃうから注意!
$this->load->library('parser');
$data = array(
'm1'=> 'ユーザー登録の申請を受け付けました。',
'm2'=> 'ユーザー登録が完了します。',
'url' => 'http://example.com/1djie784ud563eq9n12j4',
'time'=> '6',
'signature' => 'example.com'."n".'http://example.com'
);
$body = $this->parser->parse('テンプレート名', $data, TRUE);
そして結果
ユーザー登録の申請を受け付けました。
下記のURLを開いてユーザー登録が完了します。
http://example.com/1djie784ud563eq9n12j4
5時間以内に手続きを完了されない場合は
上記URLが無効になりますのでご注意ください。
無効になった場合はもう一度やり直しをお願いします。
example.com
http://example.com
テーマ:PHP - ジャンル:コンピュータ