Docomoの個体識別情報取得パラメータ『NULLGWDOCOMO』をSmartyで付ける

Smartyのポストフィルタ(postfilter)を利用して、出力されるHTMLに『 uid=NULLGWDOCOMO 』を付ける方法です。
キャリアごとにテンプレートを分けるのが楽になります。
これをドコモの場合だけ適用するようにします。

『utn』をSmartyで付ける方法
『guid=on』をSmartyで付ける方法
個体識別情報の取得方法

<?php
/* ================================
 * relativeOabsolutePathNULLGW
 * pathAddNULLGW
 *
 * @create  2009-01-12
 * @author  pentan
 * @url     http://pentan.info/
 *
 * Copyright (c) 2009 pentan.info All Rights Reserved.
 * 著作権表示部分の変更削除は禁止です
 * ================================
 */

function relativeOabsolutePathNULLGW($str,$tag){
  $str=stripslashes($str);

  if(strtolower($tag)=="a"){
    if(preg_match("/href=¥"(https?|ftp):¥/¥//i",$str)){
      return $str.">";
    }elseif(preg_match("/href=¥"#/i",$str)){
      return $str.">";
    }elseif(preg_match("/href=¥"(mailto|tel|fax|news):/i",$str)){
      return $str.">";
    }elseif(preg_match("/href=¥"([^¥"]+)¥"/i",$str,$match)){
      if(preg_match("/¥?$/i",$match[1]) || preg_match("/&$/i",$match[1])){
        return preg_replace("/href=¥"([^¥"]+)¥"/i",
          "href=¥"$1uid=NULLGWDOCOMO¥"".">",$str);
      }elseif(preg_match("/¥?/i",$match[1])){
        return preg_replace("/href=¥"([^¥"]+)¥"/i",
          "href=¥"$1&uid=NULLGWDOCOMO¥"".">",$str);
      }else{
        return preg_replace("/href=¥"([^¥"]+)¥"/i",
          "href=¥"$1?uid=NULLGWDOCOMO¥"".">",$str);
      }
    }else{
      return $str.">";
    }
  }else{
    if(preg_match("/action=¥"(https?|ftp):¥/¥//i",$str)){
      return $str.">";
    }elseif(preg_match("/action=¥"#/i",$str)){
      return $str.">";
    }elseif(preg_match("/action=¥"(mailto|tel|fax|news):/i",$str)){
      return $str.">";
    }elseif(preg_match("/action=/i",$str)){
      return $str."><input type=¥"hidden¥" name=¥"uid¥" value=¥"NULLGWDOCOMO¥" />";
    }else{
      return $str.">";
    }
  }
}

function pathAddNULLGW($body){
  return preg_replace("/<(a|form) ([^>]+)>/ie",
        "'<$1 '.relativeOabsolutePathNULLGW('$2','$1')",$body);
}

$smarty->register_outputfilter("pathAddNULLGW");
?>

関連記事

スポンサーリンク

layer-background-color レイヤーの背景色を指定する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る