HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

正規表現が正しく動かないソース。

スポンサーリンク

$revers_str="食玩・チョコ";

$revers_str =~ tr/+/ /;
$revers_str =~ s/\&\#([a-fA-F0-9][a-fA-F0-9])\;/pack("C", hex($1))/ego;

require "MyLibs/strcode_hex.cgi";
use Encode;

tracesub("======STRING============= $revers_str");
$sp=" ";
$lists=<<"EOM";
<table cellpadding="5" cellspacing="5" border="1" bordercolor="#666666">
<tr><td>EUC-JP</td><td>S-JIS</td><td>UTF8</td><td>UTF16</td><td>JIS</td><td>文字</td><td colspan=\"2\">実体参照</td><td>HEX</td><td>VAL</td></tr>
EOM
$lines=0;
$list1=$lists;
open(xIN,"codetable.cgi");
while( ($blocks=<xIN>) ){
	if($lines>40){
		last;
	}
	$lines++;
	$blocks=~s/\n//g;
	$blocks=~s/\xd//g;
	$blocks=~s/\s+/$sp/g;
	@stack=split(/\s+/,$blocks);
	$list1.="<tr>";
	$list1.="<td>0:".$stack[0]."</td>";
	$list1.="<td>1:".$stack[1]."</td>";
	$list1.="<td>2:".$stack[2]."</td>";
	$list1.="<td>3:".$stack[3]."</td>";
	$list1.="<td>4:".$stack[4]."</td>";
	$list1.="<td>5:".$stack[5]."</td>";
	$list1.="<td>6:".$stack[6]."</td>";
	$list1.="<td>7:".$stack[7]."</td>";
        # 本来なら $v6=~s/&amp#([0-9a-zA-Z]);/chr(hex($1))/ge; 
        # $v65= encode('utf-8', $v6);
	# $v66=strcode_conv("utf8N2sjis",$v65);
        # で動くはず
	$v6=$stack[6];
	$v6=~s/\&amp;\#//g;
	$v6=~s/\;//g;
        $v64=chr($v6);
        $v65= encode('utf-8', $v64);
	$v66=strcode_conv("utf8N2sjis",$v65);

	$list1.="<td>hexstrx:$hexstrx v66:$v66</td>";
	$list1.="</tr>\r";
}
close(xIN);
$lists.="</table>";
$list1.="</table>";
# これは、なぜかマッチしない
$v6='&#12446;';
$v6 =~ tr/+/ /;
if($v6=~/&#([0-9]);/ ){
$v11=$1;
}else{
$list1.="UNMATCH.";
}
$v64=chr($1);
$v65= encode('utf-8', $v64);
$v66=strcode_conv("utf8N2sjis",$v65);
# $1 取り出しの期待をあきらめて、ポイント切り出して変換するようにした
# これは、正常に動く
$v6="X=(&#12446;) Y=(&#12446;)";
$v22=strcode_hexStr($v6,0,"sjis");
$list1.="結果は 11=$v11「$v66」v22=$v22";

open(xOT,">c_codetable.cgi");
print xOT $list1;
close(xOT);

# ポイント切り出して変換するモジュール
sub strcode_hexStr
{
	local($stI)=$_[0];
	local($s  )=$_[1];
	local($cod)=$_[2];	# uft-8
	local($p);
	local($e);
	local($frn);
	local($bck);
	local($lst);
	local($val);
	local($v64);
	local($v65);
	local($v66);
	local($str);
	
	$str=$stI;
	if($cod eq ""){
		$cod="utf-8";
	}elsif($cod eq "sjis"){
		$cod="utf-8";
		$lst="sjis";
	}
	if($s eq ""){$s=0;}
	$p=index($str,"&#",$s);
	while($p>=0){
		$p+=2;
		$e=index($str,";",$p);
		$val=substr($str,$p,$e-$p);
		$v64=chr($val);
		$v65= encode($cod, $v64);
		if($lst ne ""){
			$v66=strcode_conv("utf8N2sjis",$v65);
		}else{
			$v66=$v65;
		}
		$frn=substr($str,0,$p-2);
		$bck=substr($str,$e+1);
		$str="$frn$v66$bck";
		$p=index($str,"&#",$p);
	}
	return($str);
}

スポンサーリンク

関連記事

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスとサーチコンソールの連動のさせかた(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクスとサーチコンソール。別にグーグルのアナリティクス、サーチコンソールでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ)

FB 広告 最適化~グーグルアナリティクスの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルアナリティクス。別にグーグルのアナリティクスでなくてもアクセス解析はできるんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せな

FB 広告 最適化~グーグルサーチコンソールの使い方(必要な分だけ)

FB 広告 最適化~グーグルサーチコンソールの使い方(必要な分だけ) FB 広告 最適化にあたって必要になってくるツールがグーグルサーチコンソール。別にグーグルのサーチコンソールでなくてもいいんだけど、グーグルはユーザー囲い込みの為他のアクセス解析では見せなくしたキーワ

FB 広告 最適化~グーグルのアクセス解析の基本

FB 広告 最適化~グーグルのアクセス解析の基本 FB広告を最適化するためには、アクセス解析が重要なカギを握ります。FB広告から当該ページに飛んでくるときURLにオプションを付けることができます。このURLにつけたオプションを使ってどの広告から、どん

jQuery ボタンを押しても反応しない

jQuery ボタンを押しても反応しない jQuery の click イベントを使ってボタンを押したら alert を表示する簡単な仕様なのになにも反応しない。一瞬はまってしまうことって・・・ありますよね?例えば、こう書きます。popup.

WP パーマリンク リダイレクト インターナルサーバーエラー

WP パーマリンク リダイレクト インターナルサーバーエラー WP パーマリンクのリダイレクトがインターナルサーバーエラーを起こすようになった。ユーザーさんのサイトなので「なにをしたか」わからない。WP パーマリンク リダイレクト インターナルサーバーエラーのい