4

.htaccessでリライトしている場合の、URI上のスクリプト名を取得する

Posted by booyaa on 2月 20, 2010 in PHPで開発

たとえば

http://www.example.com/test.html

へリクエストをした場合、リライトしていなければ

basename($_SERVER[‘SCRIPT_NAME’])

で「test.html」が取得できますね。

しかし、例えばリライトしていて実際は
index.php?script=test
がリクエストされている場合は

「index.php」が取得されてしまいます。

ここで、「text.html」を取得するには、ちょっと面倒ですが$_SERVER[‘REQUEST_URI’]を利用します

  //リクエストしたURIを解析する
  $url_parts = parse_url($_SERVER[‘REQUEST_URI’]);

  //スクリプトの取得
  $script_name = basename($url_parts[‘path’]);

これで一応取得できます。

ただ、

http://www.example.com/test/

へアクセスした場合は
「test」が取得されてしまうので、注意してください。

タグ:

 
5

mb_strwidth — 文字列の幅を返す

Posted by booyaa on 12月 3, 2009 in PHP関数

mb_strwidth は文字列の幅を返すということなんですが、

mb_strlen や strlen とは違います。

mb_strlenは
mb_strlen(‘あいうえおaiueo’); //10

strlenは
strlen(‘あいうえおaiueo’); //20 (utf-8の場合)

一方mb_strwidthは
mb_strwidth(‘あいうえおaiueo’); //15

になります。

つまり、
英数字などは1
マルチバイト文字は2
としてカウントしてくれます。

幅に着目しているので、文字エンコードに依存しません。

ブラウザで表示する際の見た目を調整するときなんかに使えると思います

 
7

array_fill_keys キーを指定して、配列を値で埋める

Posted by booyaa on 12月 3, 2009 in PHP関数

array array_fill_keys ( array $keys , mixed $value )

この関数は、初期化の際に結構便利かなぁと思います

たとえば、

$key_list = array('a','b','c','d');

というような配列があって、
$array = array(
'a' => array(),
'b' => array(),
'c' => array(),
'd' => array(),
)

このように初期化したいときは

$array = array();
foreach ($key_list as $key){
$array[$key] = array();
}

のようにすると思うんですが、array_fill_keysを使うと

$array = array_fill_keys($key_list,array());

でできちゃいます。

大幅にコードを削減することはできませんが、
こんなやりかたもあるよって感じですね。

何気に好きなのでたまに使っています。

タグ:

 
9

Smartyでassignなしでシンプルにランダム表示させる

Posted by booyaa on 1月 17, 2009 in Smarty

サイトのコンテンツをランダム表示したい時、

{if rand(0,1)}
表示1
{else}
表示2
{/if}

こんな感じで、シンプルにランダム表示させることができます。

便利かも?

 
1

Smartyと連想配列 -試行錯誤中-

Posted by booyaa on 1月 14, 2009 in Smarty


private $condition_dat = array(
'length' => array(
'name' => '髪の長さ',
'mapping' => array(
'very_short' => 'ベリーショート',
'short' => 'ショート',
'medium' => 'ミディアム',
'long' => 'ロング',
),
),
'weight' => array(
'name' => '髪の太さ',
'mapping' => array(
3 => '太い',
2 => '普通',
1 => '細い',
),
),
'volume' => array(
'name' => '髪の量',
'mapping' => array(
3 => '多い',
2 => '普通',
1 => '少ない',
),
'hardness' => array(
'name' => '髪の硬さ',
'mapping' => array(
3 => '硬い',
2 => '普通',
1 => '軟らかい'
),
),
),
'unruly' => array(
'name' => 'くせ',
'mapping' => array(
3 => '強い',
2 => '少し',
1 => 'ない',
),
),
'damage' => array(
'name' => 'ダメージ',
'mapping' => array(
3 => 'ある',
2 => '少し',
1 => 'ない',
),
),
);

$report = array(
'weight' => 1
)

こんな配列があって、

テンプレート側で

{foreach from=$conditions key=condition_type item=condition_values}
{if !empty($report.$condition_type)}
{$condition_values.name} : {$condition_values.mapping[`$report.$condition_type`]}<br />
{/if}
{/foreach}

こんな感じで使おうとすると

Fatal error: Smarty error: [in index.tpl line 55]: syntax error: unrecognized tag: $condition_values.mapping[`$report.$condition_type`] (Smarty_Compiler.class.php, line 446)

って出る。。うーん、よくわからない、、

`をつけたり.でつないだりやってもうまくいかない

どうやるんだろ

タグ:

 
5

Drupalインストールでinfoドメインが403forbiddenになる問題の対処方法

Posted by booyaa on 1月 3, 2009 in drupal

Drupalという

オープンソース CMS アワードの二年連続優勝、二冠達成したものがあって、興味あったので入れてみました。

singlelife.booyaa.info

なのですが、infoドメインの場合ちょっと問題があって

なんとそのままの設定だとページが403forbiddenになってしまいます。

ちょっと調べたら

http://drupal.0829.info/installation-and-configuration/troubleshooting/info-domain-403

ここに答えが載っていて、どうやら.infoファイルにアクセスできないようにするために

.infoを.htaccessでアクセスできないようにしているみたい。

載っていた方法によると.htaccessの

<FilesMatch "(\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)|code-style\.pl|Entries.*|Repository|Root|Tag|Template)$">
  Order allow,deny
</FilesMatch>
赤字を削除して、modulesフォルダに
<Files ~ "\.info$">
  Order allow,deny
</Files>
と記述した.htaccessを新たに設置するというもの。

確かにこれでうまくいきました^^

タグ:

 
7

coreserver + wordpressで画像アップロードができない場合の対処方法

Posted by booyaa on 1月 3, 2009 in wordpress

coreserver + wordpressにて画像アップロードしようとすると
「アップロードしたファイルを/virtual/○○/public_html/blog/wp-content/2009/01に移動できませんでした。」
のようなエラーメッセージが表示される場合がある

これを解決するには

wp-adminの.htaccessへ

<files async-upload.php>
AddHandler application/x-httpd-phpcgi .php
</files>

を記述すればうまくいくようになる

タグ:

 
6

nl2br 改行文字の前にHTMLの改行指定文字を挿入する

Posted by booyaa on 1月 3, 2009 in PHP関数

nl2br 改行文字の前にHTMLの改行指定文字を挿入する

string nl2br ( string string)
使い方

$string = “aaaa\nbbb”;

echo nl2br($string);
結果

aaaa<br />
bbb

phpで改行を含んだ文字列をHTMLとして出力する際に活躍します。
ここで注意なのが、
改行文字が<br />になるのではなく
改行文字の前に<br />が挿入されるということ。
改行文字列は残っているということに注意!

しばらく改行が<br />になるんだと勘違いしてました。。

タグ:

Copyright © 2024 ブーヤーの技術開発メモ All rights reserved. Theme by Laptop Geek.