Youtubeタグのヘルパー | video

youtubeHtmlメソッドはYoutubeのHTMLタグを作成するヘルパーメソッド。
YoutubeのURLにはいくつかのパターンが存在する。
当ヘルパーメソッドは以下のパターンに対応。
youtube以外なら、普通のリンクを作成する。

参考:videoタグのCSSスタイル | Youtubeなどの画面を16:9のフィットサイズに

PHP


	public function youtubeHtml($url){
		
		if(empty($url)) return;
		
		// テストデータ
		//$url = 'https://youtu.be/KotU7jKOqLk';
		//$url = 'https://youtu.be/KotU7jKOqLk?t=230';
		//$url = 'https://www.youtube.com/watch?v=KotU7jKOqLk&t=221s';
		//$url = 'https://www.youtube.com/watch?v=KotU7jKOqLk';
		
		if(strpos($url, 'youtu') === false){
			$html = "<a href='{$url}' target='_blank'>動画</a>";
			echo $html;
		}else{
			
			
			if(strpos($url, 'youtu.be') !== false){
				// 変換前→ https://youtu.be/KotU7jKOqLk
				// 返還後→ https://www.youtube.com/embed/KotU7jKOqLk
				$url = str_replace('youtu.be', 'www.youtube.com/embed', $url);
				
			}else if(strpos($url, 'watch') !== false){
				// 変換前→ https://www.youtube.com/watch?v=KotU7jKOqLk&t=221s
				// 返還後→ https://www.youtube.com/embed/KotU7jKOqLk
				$wq = $this->stringRightRev($url, 'v=');
				$wq2 = $this->stringLeftRev($wq, '&');
				if($wq2 != ''){
					$wq = $wq2;
				}
				
				$url = 'https://www.youtube.com/embed/' . $wq;
			}else{
				$html = "<a href='{$url}' target='_blank'>動画</a>";
				echo $html;
				return;
			}
			
			$html =
			"
				<div class='video_w'>
					<iframe src='{$url}' frameborder='0' allowfullscreen></iframe>
				</div>
				<a href='{$url}' target='_blank'>動画</a>
			";
			echo $html;
		}
		
		
	}
	
	/**
	 * 2つの印文字に挟まれた文字を取得する
	 * @param string $targetStr 対象文字列
	 * @param string $mark1 印文字1
	 * @param string $mark2 印文字2
	 * @return string 印文字1と印文字2に挟まれた文字列
	 */
	private function getHasami($targetStr,$mark1,$mark2){
		
		$a1 = mb_strpos($targetStr,$mark1) + mb_strlen($mark1);
		$a2 = mb_strpos($targetStr,$mark2,$a1);
		
		$hasami = mb_substr($targetStr,$a1,$a2-$a1);
		
		return $hasami;
	}
	
	
	/**
	 * 文字列を右側から印文字を検索し、右側の文字を切り出す。
	 * @param string $s 対象文字列
	 * @param string $mark 印文字
	 * @return string 印文字から右側の文字列
	 */
	private function stringRightRev($s,$mark){
		if ($s==null || $s==""){
			return $s;
		}
		
		$a = strrpos($s,$mark);
		if($a==null && $a!==0){
			return "";
		}
		$s2=substr($s,$a + strlen($mark),strlen($s));
		
		return $s2;
	}
	
	
	/**
	 * 文字列を右側から印文字を検索し、左側の文字を切り出す。
	 * @param string $s 対象文字列
	 * @param string $mark 印文字
	 * @return string 印文字から左側の文字列
	 */
	private function stringLeftRev($s,$mark){
		
		if ($s==null || $s==""){
			return $s;
		}
		$a = strrpos($s,$mark);
		if($a==null && $a!==0){
			return "";
		}
		$s2=substr($s,0,$a);
		return $s2;
		
	}
	

テキストからおすすめ商品を取得するアルゴリズム | #レコメンド #レーベンシュタイン

Git Hub