ねごとめも背景

    ねごとめも



    作成したプログラムは、こちらでも公開しています。
    よかったら覗いてみてください。_(┐「ε:)_
    → javascript,SVG で作成したプログラム置き場
    → プログラム一覧 - (2)

    PHP javascript タグ削除テスト(3)[ CDATA ]

    今回は前回の javascript タグ削除テスト(2)の続き。
    [ 修正箇所 ] 1) XML宣言, DTD宣言の記述を無視するように訂正。
    2) textarea タグの内容を CDATA として出力。 ( textarea 内に textarea タグが存在する場合エラー )
    3) html5 で定義されている空要素に、タグを閉じる記号 ( "/" ) 閉がなくても XML として出力。
    その他、色々と修正。
    textarea の HTML5 ドキュメントから XML ツリーを生成、文字列として出力まで。



    ■ xhtml.php

    
    <?php
    	class XHTML extends DOMDocument
    	{
    		private $doc;
    		function __construct($version="1.0",$encoding="utf-8")
    		{
    			$this->doc=new parent($version,$encoding);
    		}
    		
    		public function saveHTML()
    		{
    			return $this->doc->saveXML();
    		}
    		
    		public function loadXHTML($contents,$option=0)
    		{
    			$this->setDomDocument($contents);
    			/*
    			$this->doc->loadHTML("<svg>a</svg>");
    			$script=$this->doc->getElementsByTagName("script")->item(0)->nodeName;
    			echo($script);
    			$this->doc->loadXML($contents);
    			*/
    		}
    		
    		public function saveXHTML()
    		{
    			return $this->doc->saveXML();
    		}
    		
    		private function setDomDocument($contents)
    		{
    			$doc=$this->doc;
    			//$doc->preserveWhiteSpace=true;
    			$doc->formatOutput=true;
    			$target=$doc->createElement("root");
    			//$target->setAttribute("xmlns","http://www.w3.org/1999/xhtml");
    			$target=$doc->appendChild($target);
    			$text="";
    			$prev="";
    			$type="text";
    			$nodeName="";
    			$attribute="";
    			$quot_type="";
    			$result="";
    			foreach(str_split($contents) as $str)
    			{
    				switch($str)
    				{
    					case "<" :
    							switch($type)
    							{
    								case "text" :
    										$type="tagL";
    										if(strlen($text)!=0)
    										{
    											$target->appendChild($doc->createTextNode($text));
    											$text="";
    										}
    								break;
    
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    
    								case "dtd" :
    
    								break;
    
    								default :
    										$text.=$str;
    							}
    					break;
    
    					case ">" :
    							switch($type)
    							{
    								case "tagL" :
    										$nodeName=strtolower(trim($text));
    										switch($nodeName)
    										{
    												case "area" :
    												case "base" :
    												case "br" :
    												case "col" :
    												case "command" :
    												case "embed" :
    												case "hr" :
    												case "img" :
    												case "input" :
    												case "keygen" :
    												case "link" :
    												case "meta" :
    												case "param" :
    												case "source" :
    												case "track" :
    												case "wbr" :
    														$target=$target->appendChild($doc->createElement($nodeName));
    														$target=$target->parentNode;
    														$text="";
    														$type="text";
    												break;
    												
    												case "textarea" :
    														$target=$target->appendChild($doc->createElement($nodeName));
    														$text="";
    														$type="textArea";
    												break;
    												
    												default :
    														$target=$target->appendChild($doc->createElement($nodeName));
    														$text="";
    														$type=($nodeName=="script")? "script" : "text";
    										}
    								break;
    
    								case "tagR" :
    										$target=$target->parentNode;
    										$text="";
    										$type="text";
    								break;
    
    								case "commentR" :
    										$text=preg_replace("/^--|--$/si","",$text);
    										$target->appendChild($doc->createComment($text));
    										$text="";
    										$type="text";
    								break;
    
    								case "cdataR" :
    										$text=preg_replace("/^\[[a-zA-Z]+\[|]]$/si","",$text);
    										$target->appendChild($doc->createCDATASection($text));
    										$text="";
    										$type="text";
    								break;
    								
    								case "script" :
    									if($quot_type==""&&preg_match("/[.]*<\/script$/si",$text))
    									{
    										$text=preg_replace("/^.*<!\[CDATA\[(.*)\]\]>.*<\/script$/si","$1",$text);
    										$text=preg_replace("/<\/script$/si","",$text);
    										if(strlen(trim($text))!=0)
    										{
    											$target->appendChild($doc->createCDATASection($text));
    										}
    										$target=$target->parentNode;
    										$type="text";
    										$text="";
    									}
    									else
    									{
    										$text.=$str;
    									}
    								break;
    
    								case "textArea" :
    									if($quot_type==""&&preg_match("/.*<\/textarea$/si",$text))
    									{
    										$text=preg_replace("/^textarea|<\/textarea$/si","",$text);
    										if(strlen(trim($text))!=0)
    										{
    											$target->appendChild($doc->createCDATASection($text));
    										}
    										$target=$target->parentNode;
    										$type="text";
    										$text="";
    									}
    									else
    									{
    										$text.=$str;
    									}
    								break;
    								
    								case "attribute" :
    								case "valueL" :
    											$text=preg_replace("/[ 	\r\n]*=[ 	\r\n]*/s","=",trim($text));
    											foreach(explode(" ",$text) as $val)
    											{
    												if(!empty($val))
    												{
    													$attr=explode("=",$val);
    													if(count($attr)==2)
    													{
    														$target->setAttribute(trim($attr[0]),trim($attr[1]));
    													}
    													else
    													{
    														$target->setAttribute(trim($attr[0]),trim($attr[0]));
    													}
    													$attribute=trim($val[0]);
    												}
    											}
    											switch($nodeName)
    											{
    												case "area" :
    												case "base" :
    												case "br" :
    												case "col" :
    												case "command" :
    												case "embed" :
    												case "hr" :
    												case "img" :
    												case "input" :
    												case "keygen" :
    												case "link" :
    												case "meta" :
    												case "param" :
    												case "source" :
    												case "track" :
    												case "wbr" :
    														$target=$target->parentNode;
    														$type="text";
    														$text="";
    												break;
    												
    												case "textarea" :
    														$type="textArea";
    														$text="";
    												break;
    												
    													default:
    															$type=($nodeName=="script")? "script" : "text";
    															$text="";
    											}
    								break;
    
    								case "dtd" :
    										$type="text";
    										$text="";
    								break;
    								
    								
    								default :
    										$text.=$str;
    							}
    					break;
    
    					case "/" :
    							switch($type)
    							{
    								case "tagL" :
    										$nodeName=strtolower(trim($text));
    										switch($nodeName)
    										{
    												case "area" :
    												case "base" :
    												case "br" :
    												case "col" :
    												case "command" :
    												case "embed" :
    												case "hr" :
    												case "img" :
    												case "input" :
    												case "keygen" :
    												case "link" :
    												case "meta" :
    												case "param" :
    												case "source" :
    												case "track" :
    												case "wbr" :
    														$target=$target->appendChild($doc->createElement($nodeName));
    														$type="tagR";
    												break;
    												
    												default:
    														$type="tagR";
    										}
    								break;
    
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    
    								case "attribute" :
    										if(strlen(trim($text))!=0)
    										{
    											$attr=trim($text);
    											foreach(explode(" ",$attr) as $val)
    											{
    												if(!empty($val))
    												{
    													$val=explode("=",$val);
    													if(count($val)==1)
    													{
    														$target->setAttribute(trim($val[0]),trim($val[0]));
    													}
    													else
    													{
    														$target->setAttribute(trim($val[0]),trim($val[1]));
    													}
    												}
    											}
    										}
    										$type="tagR";
    								break;
    
    								case "valueL" :
    										//text.append(str);
    								break;
    								case "dtd" :
    
    								break;
    
    								default :
    										$text.=$str;
    							}
    					break;
    
    					case "!" :
    							switch($type)
    							{
    								case "tagL" :
    										if($prev=="<")
    										{
    											$type="dtd";
    										}
    								break;
    
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    
    								case "attribute" :
    								case "dtd" :
    
    								break;
    
    								default :
    										$text.=$str;
    							}
    					break;
    
    					case "?" :
    							switch($type)
    							{
    								case "tagL" :
    										if($prev=="<")
    										{
    											$type="dtd";
    										}
    								break;
    
    								default :
    										$text.=$str;
    							}
    					break;
    
    					case "-" :
    							switch($type)
    							{
    								case "dtd" :
    										if($prev=="-")
    										{
    											$type="commentL";
    										}
    										$text.=$str;
    								break;
    
    								case "commentL" :
    										if($prev=="-")
    										{
    											$type="commentR";
    										}
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    
    								default :
    										$text.=$str;
    							}
    
    					break;
    
    					case "[" :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "dtd" :
    										if($prev=="!")
    										{
    											$type="cdataC";
    										}
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    
    								case "attribute":
    
    								break;
    
    								default:
    										$text.=$str;
    							}
    					break;
    
    					case "]" :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "cdataC" :
    										if($prev=="]")
    										{
    											$type="cdataR";
    										}
    										$text.=$str;
    								break;
    
    								case "attribute" :
    								case "dtd" :
    
    								break;
    
    								default:
    										$text.=$str;
    							}
    					break;
    
    					case " " :
    					case "	" :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    
    								break;
    
    								case "tagL" :
    										$nodeName=strtolower(trim($text));
    										$target=$target->appendChild($doc->createElement($nodeName));
    										$text="";
    										$type="attribute";
    								break;
    
    								case "dtd" :
    
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case "=" :
    							switch($type)
    							{
    								case "attribute" :
    										$type="valueL";
    										$attribute=trim($text);
    										$text.=$str;
    								break;
    
    								case "valueR" :
    									if($quot_type=="")
    									{
    											$type="valueL";
    											$attribute=trim($text);
    									}
    									else
    									{
    										$text.=$str;
    									}
    								break;
    								
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "dtd" :
    
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    
    					case "'" :
    					case "\"" :
    							switch($type)
    							{
    								case "valueL" :
    										if($quot_type=="")
    										{
    											$quot_type=$str;
    											$type="valueR";
    											$text="";
    										}
    								break;
    
    								case "valueR" :
    										if($quot_type==$str)
    										{
    											$attrs=explode(" ",trim($attribute));
    											for($i=0;$i<count($attrs);$i++)
    											{
    												if(!empty($attrs[$i]))
    												{
    													$result=(count($attrs)-1!=$i)? $attrs[$i] : $text;
    													$equal=explode("=",$attrs[$i]);
    													if(count($attrs)!=0&&count($equal)==1)
    													{
    														$target->setAttribute($attrs[$i],$result);
    													}
    													else
    													{
    														$target->setAttribute($equal[0],$equal[1]);
    													}
    												}
    											}
    											$type="attribute";
    											$quot_type="";
    											$text="";
    										}
    										else
    										{
    											$text.=$str;
    										}
    								break;
    
    								case "script" :
    										if($quot_type=="")
    										{
    											$quot_type=$str;
    											$type="js_value";
    										}
    										$text.=$str;
    								break;
    
    								case "js_value" :
    										if($prev!="\\")
    										{
    											$quot_type="";
    											$type="script";
    										}
    										$text.=$str;
    								break;
    								
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "dtd" :
    
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    
    					case "\r" :
    
    					break;
    					
    					default :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    
    								case "dtd" :
    
    								break;
    
    								default:
    										$text.=$str;
    							}
    				}
    				$prev=$str;
    			}//end of foreach
    			if(strlen($text)!=0)
    			{
    				$target->appendChild($doc->createTextNode($text));
    			}
    		}
    	}
    
    	if(isset($_POST["template"]))
    	{
    		libxml_use_internal_errors(true);
    		$doc=new XHTML("1.0","utf-8");
    		$contents=rawurldecode($_POST["template"]);
    		$doc->loadXHTML($contents);
    		//header("Content-type: text/xml");
    		echo($doc->saveXHTML());
    	}
    ?>
    

    2013/06/16 [02:47]
    • category : php,
    • comment : 0

    PHP javascript タグ削除テスト(2)[ CDATA ]

    java 版 → java HTMLドキュメント文字列のツリー化(1)[ XML出力 ]

    今回は前回の javascript タグ削除テスト(1)の続き。
    前回作成した DOMDocument クラスを継承した自作 HTML クラスは、コメント, CDATA を記述した場合に、
    エラーが出力されていた。
    なので、今回は、コメント, CDATA が HTML ドキュメントに存在する場合は、
    それぞれをコメント, CDATA として出力されるように訂正。
    javascript タグの内容は前回と同じく CDATA として出力。
    属性の "=" の前後に空白が含まれる場合に正しくツリー化して出力されるように訂正。
    その他、色々と修正。

    javascript タグを削除する流れは、
    1) HTML ドキュメントを XHTML クラスの loadXHTMLの第一引数へ渡す。
    2) XML としてツリー化された値が戻ってくる。
    3) *サーバー上でXML ツリーから getElementsByTagName 関数、 removeChild 関数を利用して javascript タグを削除。
    4) javascript タグを削除した XML ツリーを saveXHTML 関数を使用して HTML ドキュメントを文字列として出力。
    *ajax を利用してクライアント側で responseXML でデータを受け取り、 javascript タグ削除も出来る?
    今回も、 XML ツリーから javascript タグを削除するテストはやってない。
    textarea の文字列の HTML ドキュメントを一文字づつ読み込み、
    XML ツリーを生成後、文字列として出力まで。

    • *コメントの記述 [ 開始タグ( <! ) 終了タグ( --> ) ]
    • *CDATA の記述 [ 開始タグ( <![ ) 終了タグ( ]]> ) ]


    ■ xhtml.php

    
    <?php
    	class XHTML extends DOMDocument
    	{
    		private $doc;
    		function __construct($version="1.0",$encoding="utf-8")
    		{
    			$this->doc=new parent($version,$encoding);
    		}
    		
    		public function loadXHTML($contents,$option=0)
    		{
    			$this->setDomDocument($contents);
    			/*
    			$this->doc->loadHTML("<svg>a</svg>");
    			$script=$this->doc->getElementsByTagName("script")->item(0)->nodeName;
    			echo($script);
    			$this->doc->loadXML($contents);
    			*/
    		}
    		
    		public function saveXHTML()
    		{
    			return $this->doc->saveXML();
    		}
    		
    		private function setDomDocument($contents)
    		{
    			$doc=$this->doc;
    			//$doc->preserveWhiteSpace=true;
    			$doc->formatOutput=true;
    			$root=$doc->createElement("div");
    			$root->setAttribute("xmlns","http://www.w3.org/1999/xhtml");
    			$target=$doc->appendChild($root);
    			//$target->appendChild($doc->createComment("hoge"));
    			$text="";
    			$prev="\\";
    			$type="text";
    			$nodeName="";
    			$attribute="";
    			$quot_type="";
    			foreach(str_split($contents) as $str)
    			{
    				switch($str)
    				{
    					case "<" :
    							switch($type)
    							{
    								case "text" :
    										$type="tagL";
    										if(strlen($text)!=0)
    										{
    											$target->appendChild($doc->createTextNode($text));
    											$text="";
    										}
    								break;
    								
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    								
    								default :
    										$text.=$str;
    							}
    					break;
    					
    					case ">" :
    							switch($type)
    							{
    								case "tagL" :
    										$nodeName=strtolower(trim($text));
    										$target=$target->appendChild($doc->createElement($nodeName));
    										$text="";
    										$type=($nodeName=="script")? "script" : "text";
    								break;
    								
    								case "tagR" :
    										$target=$target->parentNode;
    										$text="";
    										$type="text";
    								break;
    								
    								case "commentR" :
    										$text=preg_replace("/^--|--$/si","",$text);
    										$target->appendChild($doc->createComment($text));
    										$text="";
    										$type="text";
    								break;
    								
    								case "cdataR" :
    										$text=preg_replace("/^\[[a-zA-Z]+\[|]]$/si","",$text);
    										$target->appendChild($doc->createCDATASection($text));
    										$text="";
    										$type="text";
    										
    								break;
    								
    								case "attribute" :
    										if(strlen(trim($text))!=0)
    										{
    											$attr=trim($text);
    											foreach(explode(" ",$attr) as $val)
    											{
    												$target->setAttribute($val,$val);
    											}
    										}
    										$text="";
    										$type=($nodeName=="script")? "script" : "text";
    								break;
    								
    								case "script" :
    										if($quot_type==""&&preg_match("/[.]*<\/script$/si",$text))
    										{
    											$text=preg_replace("/<\/script$/si","",$text);
    											$target->appendChild($doc->createCDATASection($text));
    											$target=$target->parentNode;
    											$type="text";
    											$text="";
    										}
    										else
    										{
    											$text.=$str;
    										}
    								break;
    								
    								default :
    										$text.=$str;
    							}
    					break;
    					
    					case "/" :
    							switch($type)
    							{
    								case "tagL" :
    										$type="tagR";
    								break;
    								
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    								
    								case "attribute" :
    										if(strlen(trim($text))!=0)
    										{
    											$attr=trim($text);
    											foreach(explode(" ",$attr) as $val)
    											{
    												$target->setAttribute($val,$val);
    											}
    										}
    										$type="tagR";
    								break;
    								
    								default :
    										$text.=$str;
    							}
    					break;
    					
    					case "!" :
    							switch($type)
    							{
    								case "tagL" :
    										$type="commentL";
    								break;
    								
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    								
    								case "attribute" :
    								
    								break;
    								
    								default :
    										$text.=$str;
    							}
    					
    					break;
    					
    					case "-" :
    							switch($type)
    							{
    								case "commentL" :
    										if($prev=="-")
    										{
    											$type="commentR";
    										}
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    								
    								default :
    										$text.=$str;
    							}
    					
    					break;
    					
    					case "[" :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "commentL" :
    										if($prev=="!")
    										{
    											$type="cdataC";
    										}
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    								
    								case "attribute":
    								
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case "]" :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "cdataC" :
    										if($prev=="]")
    										{
    											$type="cdataR";
    										}
    										$text.=$str;
    								break;
    								
    								case "attribute" :
    								
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case " " :
    							switch($type)
    							{
    								case "commentL" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    										
    								break;
    								
    								case "tagL" :
    										$nodeName=strtolower(trim($text));
    										$target=$target->appendChild($doc->createElement($nodeName));
    										$text="";
    										$type="attribute";
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case "	" :
    							switch($type)
    							{
    								case "commentL" :
    										$type="commentL";
    										$text.=$str;
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    										$text.=$str;
    								break;
    								
    								case "tagL" :
    										$nodeName=strtolower(trim($text));
    										$target=$target->appendChild($doc->createElement($nodeName));
    										$text="";
    										$type="attribute";
    								break;
    
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case "=" :
    							switch($type)
    							{
    								case "attribute" :
    										$type="valueL";
    										$attribute=trim($text);
    								break;
    								
    								case "valueR" :
    										$type="valueL";
    										$attribute=trim($text);
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case "'" :
    							switch($type)
    							{
    								case "valueL" :
    										if($quot_type=="")
    										{
    											$quot_type=$str;
    											$type="valueR";
    											$text="";
    										}
    								break;
    								
    								case "valueR" :
    										if($quot_type==$str)
    										{
    											$attrs=explode(" ",trim($attribute));
    											for($i=0;$i<count($attrs);$i++)
    											{
    												$txt=((count($attrs)-1)!=$i)? $attrs[$i] : $text;
    												$target->setAttribute($attrs[$i],$txt);
    											}
    											$type="attribute";
    											$quot_type="";
    											$text="";
    										}
    										else
    										{
    											$text.=$str;
    										}
    								break;
    								
    								case "script" :
    										if($quot_type=="")
    										{
    											$quot_type=$str;
    											$type="js_value";
    										}
    										$text.=$str;
    								break;
    								
    								case "js_value" :
    										if($prev!="\\")
    										{
    											$quot_type="";
    											$type="script";
    										}
    										$text.=$str;
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					case "\"" :
    							switch($type)
    							{
    								case "valueL" :
    										if($quot_type=="")
    										{
    											$quot_type=$str;
    											$type="valueR";
    											$text="";
    										}
    								break;
    								
    								case "valueR" :
    										if($quot_type==$str)
    										{
    											$target->setAttribute($attribute,$text);
    											$type="attribute";
    											$quot_type="";
    											$text="";
    										}
    										else
    										{
    											$text.=$str;
    										}
    								break;
    								
    								case "script" :
    										if($quot_type=="")
    										{
    											$quot_type=$str;
    											$type="js_value";
    										}
    										$text.=$str;
    								break;
    								
    								case "js_value" :
    										if($prev!="\\")
    										{
    											$quot_type="";
    											$type="script";
    										}
    										$text.=$str;
    								break;
    								
    								default:
    										$text.=$str;
    							}
    					break;
    					
    					default :
    							switch($type)
    							{
    								case "commentR" :
    										$type="commentL";
    								break;
    								
    								case "cdataR" :
    										$type="cdataC";
    								break;
    							}
    							
    							$text.=$str;
    				}
    				$prev=$str;
    			}
    			if(strlen($text)!=0)
    			{
    				$target->appendChild($doc->createTextNode($text));
    			}
    		}
    	}
    	
    	if(isset($_POST["template"]))
    	{
    		$doc=new XHTML("1.0","utf-8");
    		$doc->loadXHTML(rawurldecode($_POST["template"]));
    		header("Content-type: text/xml");
    		echo($doc->saveXHTML());
    	}
    
    ?>
    
    

    2013/06/06 [00:40]
    • category : php,
    • comment : 0

    カウンター

    プロフィール

    negotoy

    Author:negotoy
    好きな選手権 :chara選手権
    好きなコーナー :リスナーが凸して
    椎名林檎の丸の内を歌うコーナー

    PC ゲーム歴 :
    モバゲーのタイピングゲームで
    タイピングの練習(サービス終了)
    ニックネーム : クッキー
    以降ゲーム歴なし

    [ YouTube ]

    chara : あいのうた
    椎名林檎 : ありあまる富
    かせきさいだぁ : じゃっ 夏なんで
    阿部真央 : 貴方の恋人になりたいのです

    最新記事

    カテゴリ

    カレンダー

    07 | 2018/08 | 09
    - - - 1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30 31 -


    PAGE TOP
    広告: