Smartyのポストフィルタ(postfilter)を利用して、出力されるHTMLに『 guid=on 』を付ける方法です。
キャリアごとにテンプレートを分けるのが楽になります。
これをドコモの場合だけ適用するようにします。
『utn』をSmartyで付ける方法
『NULLGWDOCOMO』をSmartyで付ける方法
個体識別情報の取得方法
<?php
/* ================================
* relativeOabsolutePathGuid
* pathAddGuid
*
* @create 2009-01-12
* @author pentan
* @url http://pentan.info/
*
* Copyright (c) 2009 pentan.info All Rights Reserved.
* 著作権表示部分の変更削除は禁止です
* ================================
*/
function relativeOabsolutePathGuid($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=¥"$1guid=on¥"".">",$str);
}elseif(preg_match("/¥?/i",$match[1])){
return preg_replace("/href=¥"([^¥"]+)¥"/i",
"href=¥"$1&guid=on¥"".">",$str);
}else{
return preg_replace("/href=¥"([^¥"]+)¥"/i",
"href=¥"$1?guid=on¥"".">",$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,$match)){
if(preg_match("/¥?$/i",$match[1]) || preg_match("/&$/i",$match[1])){
return preg_replace("/action=¥"([^¥"]+)¥"/i",
"action=¥"$1guid=on¥"".">",$str);
}elseif(preg_match("/¥?/i",$match[1])){
return preg_replace("/action=¥"([^¥"]+)¥"/i",
"action=¥"$1&guid=on¥"".">",$str);
}else{
return preg_replace("/action=¥"([^¥"]+)¥"/i",
"action=¥"$1?guid=on¥"".">",$str);
}
}else{
return $str.">";
}
}
}
function pathAddGuid($body){
return preg_replace("/<(a|form) ([^>]+)>/ie",
"'<$1 '.relativeOabsolutePathGuid('$2','$1')",$body);
}
$smarty->register_outputfilter("pathAddGuid");
?>