カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

.htaccessでキャリア振り分け

ApacheのRewrite Moduleを使用します。
Apacheに該当のモジュールが組み込まれていることを前提にしています。
組み込まれていない場合は、Apacheを再度ビルドしなければならないので、それはまた別の機会に。

モジュールが組み込まれているか確認するには、httpd.confに以下の記述があればOK。

LoadModule rewrite_module modules/mod_rewrite.so

例)ドキュメントルートに来たアクセスで携帯キャリアだった場合、モバイル用のディレクトリへリダイレクトさせる

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank)
RewriteRule ^$ /m/ [R]

※但し、SEO的にはよくないようだ。

1,621 views

xmlを生成する

// Create XML Object
$xml = new DOMDocument("1.0", "UTF-8");

// Make a Parent Node
$dataset = $xml->createElement("dataset");
$xml->appendChild($dataset);

$data = $xml->createElement("data");
$dataset->appendChild($data);

// make child node
$data->appendChild($xml->createElement("key", $value));

// Show Data
echo $xml->saveXML();
1,077 views

xml形式の文字列からxmlオブジェクトを生成する

$xmlstr = file_get_contents("[XMLファイル名]");
if(!$dom = domxml_open_mem($xmlstr))
{
    echo "Error while parsing the document\n";
    exit;
}
$root = $dom->document_element();
$childnodes = $root->child_nodes();
foreach ($childnodes as $value)
{
    $nodeArray[$value->tagname] = $value->get_content();
    $chnode = $value->child_nodes();

    foreach($chnode as $v)
    {
        echo $v->tagname . " : " . $v->get_content() . "<br />";
    }

    echo "<br />";
}
1,292 views

TCPで外部からの接続待ちうけをしているか調べる

以下のコマンドを実行

# netstat -tlpn

出力例)

0.0.0.0:3306 ~ LISTEN xxxx/mysqld

※netstatの-pオプションはroot権限のみ

1,595 views

PHPで外部サーバーの画像を取得・保存

php.iniがallow_url_fopen=Onになっていれば可能

// データを取得
$data = file_get_contents("http://URL/To/Filename", FILE_BINARY);
// データを任意の場所に保存
file_put_contents("/PATH/TO/FILENAME", $data);
5,381 views