preg_replace("/&#?[a-z0-9]{2,8};/i","",strip_tags($body));
2013年4月17日水曜日
PHPの正規表現でHTMLの実体参照を取り除く
$bodyから実体参照(たとえば&とか>、<、"など)を取り除く場合
2013年4月16日火曜日
Symfony2のBasic認証が失敗する
PHPがFastCGIで動作しているサーバの場合は.htaccessでRequestヘッダを通過させるよう設定する必要があるみたい。
Symfony2の場合はweb/.htaccessにこんな感じで。
Symfony2の場合はweb/.htaccessにこんな感じで。
<IfModule mod_rewrite.c> RewriteEngine On <IfModule mod_vhost_alias.c> RewriteBase / </IfModule> RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] # Pass Authorization headers to an environment variable RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] </IfModule>
2013年4月15日月曜日
Googleカレンダーに「日本の祝日」カレンダーを追加するには
Googleカレンダーに「日本の祝日」カレンダーを追加するには
1.Googleカレンダーにアクセス
2.[他のカレンダー]→[おすすめのカレンダーを検索]
3.[日本の祝日]の[登録]をクリックする
1.Googleカレンダーにアクセス
2.[他のカレンダー]→[おすすめのカレンダーを検索]
2013年4月14日日曜日
PHPで文字列から画像のURLを抽出してIMGタグに置換する
掲示板なんかでよく使うアレですね。
$pattern = '/(ttps?)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\.(jpg|gif|png)/'; preg_match_all($pattern, $body, $matches); if(count($matches)){ foreach($matches[0] as $i=>$url) { $replace = "<img src='h{$url}'>"; $images[] = $replace; $body = str_replace($url, $replace, $body); } }
2013年4月13日土曜日
Bootstrapでヘッダのナビゲーションを画面上部に固定するには
画面上部にナビゲーション領域を固定したり、デスクトップとスマホ用のコンテンツを一つのHTMLで表現したりするためによく使うテンプレートをここにコピペしておきます。
<!DOCTYPE html> <html lang="ja"> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta charset="UTF-8" /> <link rel="stylesheet" href="/css/bootstrap.min.css" /> <link rel="stylesheet" href="/css/bootstrap-responsive.min.css" /> <title>Welcome!</title> <link rel="icon" type="image/x-icon" href="/favicon.ico" /> </head> <body> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="btn btn-navbar pull-left" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="brand" href="#">Your Brand</a> <div class="nav-collapse"> <ul class="nav"> <li class="active"><a href="#">Home</a></li> </ul> </div><!--/.nav-collapse --> </div> </div> </div> <div class="container"> </div> <script src="/app_dev.php/js/jquery.min.js"></script> <script src="/app_dev.php/js/bootstrap.min.js"></script> </body> </html>
Symfony2でBootstrapを利用する場合の設定例
Symfony2でBootstrapを利用する場合に、だいぶ苦労したので忘れないうちにメモ。
まずバンドルのResources/publicの下にBootstrapのcss、img、jsファイルを配置。
config.ymlでAsseticの設定で、対象となるBundleにHogeFugaBundleを追加する。
bootstrapのCSSとJavaScriptを読み込めるようにTwigを記述。
で、最後に
まずバンドルのResources/publicの下にBootstrapのcss、img、jsファイルを配置。
Hoge └─FugaBundle ├─Controller ├─DependencyInjection ├─Entity ├─Resources │ ├─config │ ├─public │ │ ├─css/ │ │ │ bootstrap-responsive.css │ │ │ bootstrap-responsive.min.css │ │ │ bootstrap.css │ │ │ bootstrap.min.css │ │ │ │ │ ├─img/ │ │ │ glyphicons-halflings-white.png │ │ │ glyphicons-halflings.png │ │ │ │ │ └─js/ │ │ bootstrap.js │ │ bootstrap.min.js │ │ jquery.min.js │ └─views │ └─Matome └─Tests └─Controller
config.ymlでAsseticの設定で、対象となるBundleにHogeFugaBundleを追加する。
# Assetic Configuration assetic: debug: %kernel.debug% use_controller: true bundles: [ HogeFugaBundle ] #java: /usr/bin/java filters: cssrewrite: ~ #closure: # jar: %kernel.root_dir%/Resources/java/compiler.jar #yui_css: # jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
bootstrapのCSSとJavaScriptを読み込めるようにTwigを記述。
<html lang="jp"> <head> {% stylesheets 'bundles/hogefuga/css/bootstrap.min.css' filter='cssrewrite' 'bundles/hogefuga/css/bootstrap-responsive.min.css' filter='cssrewrite' %} <link href="{{ asset_url }}" rel="stylesheet"></link> {% endstylesheets %} <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %}{% endblock %} <link href="{{ asset('favicon.ico') }}" rel="icon" type="image/x-icon"></link> </head> <body> {% block body %} <legend>Hello Bootstrap <i class="icon-heart"></i></legend> {% endblock %} {% javascripts '@HogeFugaBundle/Resources/public/js/jquery.min.js' '@HogeFugaBundle/Resources/public/js/bootstrap.min.js' %} <script src="{{ asset_url }}"></script> {% endjavascripts %} {% block javascript %} {% endblock %} </body> </html>
で、最後に
php app/console assets:install php app/console assetic:dump
画像からBootstrapのCSSをカラーコーディネートしてくれるサイト
画像を投稿すると、その画像をもとにしてBootstrapのCSSをカラーコーディネートしてくれるサイト。
http://www.lavishbootstrap.com/
自分のサイトの雰囲気にあった画像を投稿すれば、それっぽいCSSを出力してくれる。
Symfony2でバンドルを作成するには
バンドルを作成するにはgenerate:bundleを使用する。
最初にnamespaceだけ決めれば途中でいくつか質問されるが、デフォルトのままOKを押せばOK。
ただし、Configuration formatはymlがおすすめ。 Symfony2では何かと設定ファイルを編集することになるが、設定の仕方を調べるとほとんどYAML形式での設定方法を記述しているので、YAMLを選択すると楽になるかも。
最初にnamespaceだけ決めれば途中でいくつか質問されるが、デフォルトのままOKを押せばOK。
ただし、Configuration formatはymlがおすすめ。 Symfony2では何かと設定ファイルを編集することになるが、設定の仕方を調べるとほとんどYAML形式での設定方法を記述しているので、YAMLを選択すると楽になるかも。
#php app/console generate:bundle --namespace=Hoge\FugaBundle
Welcome to the Symfony2 bundle generator
Your application code must be written in bundles. This command helps
you generate them easily.
Each bundle is hosted under a namespace (like Acme/Bundle/BlogBundle).
The namespace should begin with a "vendor" name like your company name, your
project name, or your client name, followed by one or more optional category
sub-namespaces, and it should end with the bundle name itself
(which must have Bundle as a suffix).
See http://symfony.com/doc/current/cookbook/bundles/best_practices.html#index-1 for more
details on bundle naming conventions.
Use / instead of \ for the namespace delimiter to avoid any problem.
Bundle namespace [Hoge\FugaBundle]:
In your code, a bundle is often referenced by its name. It can be the
concatenation of all namespace parts but it's really up to you to come
up with a unique name (a good practice is to start with the vendor name).
Based on the namespace, we suggest HogeFugaBundle.
Bundle name [HogeFugaBundle]:
The bundle can be generated anywhere. The suggested default directory uses
the standard conventions.
Target directory [C:/xampp/htdocs/your-project/src]:
Determine the format to use for the generated configuration.
Configuration format (yml, xml, php, or annotation) [annotation]: yml
To help you get started faster, the command can generate some
code snippets for you.
Do you want to generate the whole directory structure [no]?
Summary before generation
You are going to generate a "Hoge\FugaBundle\e" bundle
in "C:/xampp/htdocs/your-project/src/" using the "yml" format.
Do you confirm generation [yes]?
Bundle generation
Generating the bundle code: OK
Checking that the bundle is autoloaded: OK
Confirm automatic update of your Kernel [yes]?
Enabling the bundle inside the Kernel: OK
Confirm automatic update of the Routing [yes]?
Importing the bundle routing resource: OK
You can now start using the generated code!
Welcome to the Symfony2 bundle generator
Your application code must be written in bundles. This command helps
you generate them easily.
Each bundle is hosted under a namespace (like Acme/Bundle/BlogBundle).
The namespace should begin with a "vendor" name like your company name, your
project name, or your client name, followed by one or more optional category
sub-namespaces, and it should end with the bundle name itself
(which must have Bundle as a suffix).
See http://symfony.com/doc/current/cookbook/bundles/best_practices.html#index-1 for more
details on bundle naming conventions.
Use / instead of \ for the namespace delimiter to avoid any problem.
Bundle namespace [Hoge\FugaBundle]:
In your code, a bundle is often referenced by its name. It can be the
concatenation of all namespace parts but it's really up to you to come
up with a unique name (a good practice is to start with the vendor name).
Based on the namespace, we suggest HogeFugaBundle.
Bundle name [HogeFugaBundle]:
The bundle can be generated anywhere. The suggested default directory uses
the standard conventions.
Target directory [C:/xampp/htdocs/your-project/src]:
Determine the format to use for the generated configuration.
Configuration format (yml, xml, php, or annotation) [annotation]: yml
To help you get started faster, the command can generate some
code snippets for you.
Do you want to generate the whole directory structure [no]?
Summary before generation
You are going to generate a "Hoge\FugaBundle\e" bundle
in "C:/xampp/htdocs/your-project/src/" using the "yml" format.
Do you confirm generation [yes]?
Bundle generation
Generating the bundle code: OK
Checking that the bundle is autoloaded: OK
Confirm automatic update of your Kernel [yes]?
Enabling the bundle inside the Kernel: OK
Confirm automatic update of the Routing [yes]?
Importing the bundle routing resource: OK
You can now start using the generated code!
登録:
投稿 (Atom)