カテゴリー
IT Tips

phpのクソソースをクソソースで書き直した例

phpの条件文は関数のコールバックを使えますよ・・・、CASE文も例外では御座いません(´・ω・`)
だけど、それを知らずにIF文まみれのクソソースをよこされた暁には・・・ね。
以下ソースコードは、公開しても大丈夫なレベルに色々端折りました(´・ω・`)

<?php
class Campaign extends CI_Controller
{
	public function __construct()
	{
		parent::__construct();
	}

	public function _remap($mode="index",$param=array())
	{
		switch ($mode)
		{
			// キャンペーンNoがリクエストされた場合
			case is_int($mode):
				// キャンペーンNoのテンプレートがない→404
				// このエラーコード出力は通常モデル化しています
				if (!file_exists("view/Campaign/no/template_".$mode.".html"))
				{
					$data = array(
						"HTTP_Code" => 404,
						"ErrDoc"    => "ご指定のページはありません。"
					);
					$this->load->view("view/Common/error.html",$data);
				}

				// 通常処理
				else
				{
					// No.18 : ツイッターのアクセス数降順にユーザリストを並べ替える
					// 上でSWITCH文かけているから、もっと上手な分岐があるはず(´・ω・`)
					if ($mode == "18")
					{
						$handle = @fopen("controller/Campaign/18/twi_counts","r");
						while ($dump = fgetcsv( $handle )) $twi_data_tmp[] = $dump;
						@fclose($handle);
						
						foreach ($twi_data_tmp as $key=>$val)
						{
							$sort_point[$key] = $val[5];
						}
						
						$data["twi_data"] = array_multisort($sort_point ,SORT_DESC,$twi_data_tmp);
						
						unset($twi_data_tmp,$sort_point);
						
						// その他処理
					}
					// 共通処理として、$modeに沿ったビューを展開
					$this->load->view("view/Campaign/no/template_".$mode.".html",$data);
					
					// 以下キャンペーンNo毎に独自処理を書いていく
				}

				// 以下No以外のキャンペーンに独自処理を書いていく
				break;
			}
			
			// index
			default:
				if ($handle = opendir("view/Campaign/no/"))
				{
					while (false !== ($file = readdir($handle)))
					{
						if ($file !== "." && $file !== "..")
						{
							// テンプレートからNo部分のみ切り抜いて配列化
							$templates[] = str_replace(array("template_",".html"),array(),$file);
						}
					}
				}
				$data["no_list"] = $templates;
				$this->load->view("view/Campaign/index.html",$data);
				break;
		}
	}
}

[amazon_link asins=’4844337580′ template=’SupportedAMP’ store=’10yendama-22′ marketplace=’JP’ link_id=’fa78e24e-2716-11e8-a8a1-dd6785beca42′]

「phpのクソソースをクソソースで書き直した例」への5件の返信

&amp;lt;?php

$fp = fopen(&amp;quot;okamauhouho.txt&amp;quot;, &amp;quot;r&amp;quot;) or die(&amp;quot;いやーんばかーんあはんうふん&amp;quot;);  //ファイル展開不可時に出力
 
while( !feof($fp) ) {
  echo fgets($fp);
}
 
fclose($fp);
?&amp;gt;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください