px-files/_sys/php/px.php
public function get_path_proc_type( $path = null ){
		static $rtn = array();
		static $rtn_after_sitemap = array();
		if( is_null($path) ){
			$path = $this->req()->get_request_file_path();
		}
		$path = preg_replace('/\#.*$/', '', $path);
		$path = preg_replace('/\?.*$/', '', $path);
		$path = $this->fs()->get_realpath( '/'.$path );
		if( is_dir('./'.$path) ){
			$path .= '/'.$this->get_directory_index_primary();
		}
		if( preg_match('/(?:\/|\\\\)$/', $path) ){
			$path .= $this->get_directory_index_primary();
		}
		$path = $this->fs()->normalize_path($path);

		if( is_object( $this->site ) ){
			if( @!is_null($rtn_after_sitemap[$path]) ){
				return $rtn_after_sitemap[$path];
			}
			$page_info = $this->site()->get_page_info( $path );
			if( @strlen( $page_info['proc_type'] ) ){
				$rtn_after_sitemap[$path] = $page_info['proc_type'];
				return $rtn_after_sitemap[$path];
			}
		}

		if( @!is_null($rtn[$path]) ){
			return $rtn[$path];
		}

		$realpath_controot = $this->fs()->normalize_path( $this->fs()->get_realpath( $this->get_path_docroot().$this->get_path_controot() ) );
		foreach( $this->conf->paths_proc_type as $row => $type ){
			if(!is_string($row)){continue;}
			$preg_pattern = preg_quote($this->fs()->normalize_path($this->fs()->get_realpath($row)), '/');
			if( preg_match('/\*/',$preg_pattern) ){
				// ワイルドカードが使用されている場合
				$preg_pattern = preg_quote($row,'/');
				$preg_pattern = preg_replace('/'.preg_quote('\*','/').'/','(?:.*?)',$preg_pattern);//ワイルドカードをパターンに反映
				$preg_pattern = $preg_pattern.'$';//前方・後方一致
			}elseif(is_dir($realpath_controot.$row)){
				$preg_pattern = preg_quote($this->fs()->normalize_path($this->fs()->get_realpath($row)).'/','/');
			}elseif(is_file($realpath_controot.$row)){
				$preg_pattern = preg_quote($this->fs()->normalize_path($this->fs()->get_realpath($row)),'/');
			}
			if( preg_match( '/^'.$preg_pattern.'$/s' , $path ) ){
				$rtn[$path] = $type;
				return $rtn[$path];
			}
		}
		$rtn[$path] = 'pass';// <- default
		return $rtn[$path];
	}
public function get_path_proc_type( $path = null ){
		static $rtn = array();
		static $rtn_after_sitemap = array();
		if( is_null($path) ){
			$path = $this->req()->get_request_file_path();
		}
		$path = preg_replace('/\#.*$/', '', $path);
		$path = preg_replace('/\?.*$/', '', $path);
		$path = $this->fs()->get_realpath( '/'.$path );
		if( is_dir('./'.$path) ){
			$path .= '/'.$this->get_directory_index_primary();
		}
		if( preg_match('/(?:\/|\\\\)$/', $path) ){
			$path .= $this->get_directory_index_primary();
		}
		$path = $this->fs()->normalize_path($path);

		if( is_object( $this->site ) ){
			if( @!is_null($rtn_after_sitemap[$path]) ){
				return $rtn_after_sitemap[$path];
			}
			$page_info = $this->site()->get_page_info( $path );
			if( @strlen( $page_info['proc_type'] ) ){
				$rtn_after_sitemap[$path] = $page_info['proc_type'];
				return $rtn_after_sitemap[$path];
			}
		}

		if( @!is_null($rtn[$path]) ){
			return $rtn[$path];
		}

		$realpath_controot = $this->fs()->normalize_path( $this->fs()->get_realpath( $this->get_path_docroot().$this->get_path_controot() ) );
		foreach( $this->conf->paths_proc_type as $row => $type ){
			if(!is_string($row)){continue;}
			$preg_pattern = preg_quote($this->fs()->normalize_path($this->fs()->get_realpath($row)), '/');
			if( preg_match('/\*/',$preg_pattern) ){
				// ワイルドカードが使用されている場合
				$preg_pattern = preg_quote($row,'/');
				$preg_pattern = preg_replace('/'.preg_quote('\*','/').'/','(?:.*?)',$preg_pattern);//ワイルドカードをパターンに反映
				$preg_pattern = $preg_pattern.'$';//前方・後方一致
			}elseif(is_dir($realpath_controot.$row)){
				$preg_pattern = preg_quote($this->fs()->normalize_path($this->fs()->get_realpath($row)).'/','/');
			}elseif(is_file($realpath_controot.$row)){
				$preg_pattern = preg_quote($this->fs()->normalize_path($this->fs()->get_realpath($row)),'/');
			}
			if( preg_match( '/^'.$preg_pattern.'$/s' , $path ) ){
				$rtn[$path] = $type;
				return $rtn[$path];
			}
		}
		$rtn[$path] = 'pass';// <- default
		return $rtn[$path];
	}
ファイルの処理方法を調べる。

設定値 `$conf->paths_proc_type` の連想配列にもとづいてパスを評価し、
処理方法の種類を調べて返します。

@param string $path パス
@return string 処理方法
- ignore = 対象外パス。Pickles 2 のアクセス可能範囲から除外します。このパスにへのアクセスは拒絶され、パブリッシュの対象からも外されます。
- direct = 物理ファイルを、ファイルとして読み込んだでから加工処理を通します。 (direct以外の通常の処理は、PHPファイルとして `include()` されます)
- pass = 物理ファイルを、そのまま無加工で出力します。 (デフォルト)
- その他 = extension名