ようこそ Guest さん
ログイン
ログインID

パスワード:


パスワード紛失
管理人推薦BOOK
管理人愛用ソフト

本格的なサイト制作にはやはり DreamweaverとFireworksは必需品です。 むしろこの2つのソフトだけでサイト制作はまったく問題ありません。
管理人もこの2つだけで制作しています。
まぁ値段も値段ですが、それだけの価値は十二分にあります。 本格的なサイトを作る方、
Webデザイナーを目指したい方には必須のソフトと言えます。

フラッシュを作りたい方には、やはり業界標準ソフトのAdobe Flash。
お値段は張りますがとにかく高機能です。
ただ、本を買わないと実際は難しいでしょう・・・。

DreamweverやFireworksが初めての方は無理せず本を買いましょう。そのほうが結果的に早いので得です^^;

アースマラソン応援バナー

Webに関する備忘録 - コメコメ動画?のYouTubeが再生されない件

コメコメ動画?のYouTubeが再生されない件

カテゴリ : 
webに関する備忘録など » xoops
執筆 : 
管理人 2009-9-21 5:29
XOOPSモジュールcinemaruを使った動画にコメントを書き込めるコメコメ動画?(どっかのパクリだろw)
いつのまにか、YouTubeの仕様が変わったらしく、再生されなくなってしまっていた・・・。
配布もとのサイトに対処法が載ってたので、忘れないように記しておこう。

2つのファイルを修正(追加)する。
(場所はmodule/cinemaru/内と、module/cinemaru/include/内)
とりあえず現状問題はなさそう。

■misc.phpに追加

//
//
//
function myFile_get_contents($url) {
if(!function_exists('file_get_contents')) {
$page = my_file_get_contents($url);
}
else {
$page = file_get_contents($url);
if($page === false) {
$page = my_file_get_contents($url);
}
}

return $page;
}

//
//
//
function myGet_headers($url) {
if(!function_exists('get_headers')) {
$file = my_get_headers($url);
}
else {
$file = get_headers($url);
if($file === false) {
$file = my_get_headers($url);
}
}

return $file;
}

//
//
//
function youtube_proc($base_url) {
if (preg_match('/v=(.+)&?/', $base_url, $r) || preg_match('/([A-Z]+)/i', $base_url, $r)) {
$page = myFile_get_contents('http://www.youtube.com/get_video_info?&video_id='.addslashes($r[1]));
preg_match('/&token=(.*?)&thumbnail_url=/', $page, $token);
$token = urldecode($token[1]);
$url = "http://www.youtube.com/get_video?video_id=".addslashes($r[1])."&t=".$token;
$file = myGet_headers($url);
$ytb=ltrim($file[11],"Location: ");
return $ytb;
}
}

//
//
//
function my_get_headers($url,$format=0) {
$url_info=parse_url($url);
$port = isset($url_info['port']) ? $url_info['port'] : 80;
$fp=fsockopen($url_info['host'], $port, $errno, $errstr, 30);
$headers = array();
if($fp)
{
$head = "HEAD ".@$url_info['path']."?".@$url_info['query']." HTTP/1.0\r\nHost: ".@$url_info['host']."\r\n\r\n";
fputs($fp, $head);
while(!feof($fp))
{
if($header=trim(fgets($fp, 1024)))
{
if($format == 1)
{
$key = array_shift(explode(':',$header));
// the first element is the http header type, such as HTTP 200 OK,
// it doesn't have a separate name, so we have to check for it.
if($key == $header)
{
$headers[] = $header;
}
else
{
$headers[$key]=substr($header,strlen($key)+2);
}
unset($key);
}
else
{
$headers[] = $header;
}
}
}
return $headers;
}
else
{
return false;
}
}

//
//
//
function my_file_get_contents($url) {
$res = get_contents($url);
$res_array = explode("\r\n", $res);

switch ($res_array[0]) {
case 'HTTP/1.0 200 OK':
case 'HTTP/1.1 200 OK':
// ボディを取り出す。
$ra = explode("\r\n\r\n", $res, 2);
$res = $ra[1];
break;
case 'HTTP/1.1 302 MovedTemporarily':
// 移動先URLを取り出す。
foreach ($res_array as $res_row) {
if (strstr($res_row, 'Location: ')) {
$crr_url = str_replace('Location: ', '', $res_row);
break;
}
}
$res = get_contents($crr_url);

// ボディを取り出す。
$ra = explode("\r\n\r\n", $res, 2);
$res = $ra[1];
break;
default:
$res = '';
}

return $res;
}

//
//
//
function get_contents($url) {
// ホストとポートを取得する。
$url_array = parse_url($url);
$host = $url_array['host'];
$path = $url_array['path'];
if (array_key_exists('port', $url_array)) {
$port = $url_array['port'];
} else {
switch ($url_array['scheme']) {
case 'http':
$port = 80;
break;
}
}
$query = $url_array['query'];

$res = false;
if (isset($host) && isset($port)) {
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if ($fp) {
$req
= "GET " . $path . "?" . $query . " HTTP/1.0\r\n"
. "Host: " . $host . "\r\n"
. "\r\n";

socket_set_timeout($fp, 10);
if (fputs($fp, $req, strlen($req))) {
$res = '';
while (!feof($fp)) {
$res .= fgets($fp);
}
}
fclose($fp);
}
}
return $res;
}


■get_youtube_flv_url.phpを修正
・修正前

if (preg_match('/v=(.+)&?/', $_GET['url'], $r) || preg_match('/([A-Z]+)/i', $_GET['url'], $r)) {
print cinemaru_get_youtube_flv_url('http://www.youtube.com/watch?v=' . addslashes($r[1]));
}


・修正後

if (preg_match('/v=(.+)&?/', $_GET['url'], $r) || preg_match('/([A-Z]+)/i', $_GET['url'], $r)) {
print youtube_proc('http://www.youtube.com/watch?v=' . addslashes($r[1]));
}

トラックバック

トラックバックpingアドレス http://www.kens-cube.com/modules/blog2/tb.php/45

コメント


投稿者 スレッド
chong
投稿日時: 2011-11-25 17:08  更新日時: 2011-11-25 17:08
新米
登録日: 2011-11-25
居住地:
投稿数: 20
 Re: コメコメ動画?のYouTubeが再生されない件
トリーバーチ 激安は、女性の独特の魅力を示すために設計され、トリーバーチ 靴には、シャネル 靴は女性が完璧である改変、回シャネル 靴 激安の歩行に自信を入れ、好きではない女性ではありません。トリーバーチ 財布 新作,トリーバーチ バッグ,UGG ブーツ 激安,UGG ブーツ キッズ,トリーバーチ ムートン ブーツ,UGG ミニ ショート,トリーバーチ ブーツ

投稿者 スレッド
mmanina
投稿日時: 2011-12-20 11:45  更新日時: 2011-12-20 11:45
半人前
登録日: 2011-12-20
居住地:
投稿数: 31
 Re: コメコメ動画?のYouTubeが再生されない件
North of manchester Face <a href="http://www.canadagooseoutlet4online.com/">Canada goose online</a> to people nowadays who is genuinely a business <a href="http://www.inclearancenorthface.com/">north face clearance</a> that are outside clothing <a href="http://www.northfaceoutletsale.net/">north face outlet</a> possibly just hopes to and equipments. They cater <a href="http://www.cheapfleecejacketsoutlet.com/">cheap north face jackets</a> not in purchase in <a href="http://www.cheapcanadagoose4saleusa.com/men/canada-goose-yorkville-parka/">Canada Goose Yorkville Parka</a> the direction of significant <a href="http://www.cheapcanadagoose4saleusa.com/women/canada-goose-expedition-parka/">Canada Goose Expedition Parka</a> retain their individual bodies athletes and sports activities <a href="http://www.cheapcanadagoose4saleusa.com/women/canada-goose-montebello-parka/">Canada Goose Montebello Parka</a> individuals on top of <a href="http://www.cheapcanadagoose4saleusa.com/women/canada-goose-solaris-parka/">Canada Goose Solaris Parka</a> that it may be <a href="http://www.cheapcanadagoose4saleusa.com/women/canada-goose-trillium-parka/">Canada Goose Trillium Parka</a> fit, or to people.

投稿者 スレッド
mmanina
投稿日時: 2011-12-20 11:46  更新日時: 2011-12-20 11:46
半人前
登録日: 2011-12-20
居住地:
投稿数: 31
 Re: コメコメ動画?のYouTubeが再生されない件
super comfortable cheap north face jackets
super comfortable Canada goose online
super comfortable moncler jackets
super comfortable north face clearance
super comfortable north face outlet
super comfortable Canada Goose Yorkville Parka
super comfortable Canada Goose Expedition Parka
super comfortable Canada Goose Montebello Parka
super comfortable Canada Goose Solaris Parka
XOOPS、EC-CUBE導入の際のレンタルサーバー

MT、XOOPSや、EC-CUBEを導入予定ならエックスサーバー がおすすめです。
価格も月額1,050円から利用でき、マルチドメイン無制限なので、1つの契約サーバーでいくつでもドメインを利用できます!これは複数運営予定の人にはとても魅力的です^^違うドメインでサイトを運営する場合、かかるのはドメイン代だけです。

また表示速度に対してものすごく気を使っていて、とにかく早いです!

EC-CUBEはロリポップなどの格安サーバではMySQLのバージョンの問題で残念ながら動きません・・・。
※2009.11追記ロリポップがMySQLのバージョンが5.0になったので、理屈ではEC-CUBEが動くことになりました。が、こちらをご一読いただくと分かるとおり、本格運営にはリスクが高すぎます・・・。

エックスサーバー なら、MT(MTOS)、XOOPSも自動インストールで楽です。
また、EC-CUBEもマニュアルがあるので、簡単に導入できます。
MySQLデータベースも5個まで利用できるので、EC-CUBE、XOOPS、MovableTypeなどを1つのサーバー内で複数運営できちゃいます!(^^)!

Webに関する備忘録 MovableType関連
Webに関する備忘録のトップへ
Webに関する備忘録 XOOPS関連
Webに関する備忘録のトップへ
Webに関する備忘録 EC-CUBE関連
Webに関する備忘録のトップへ
Webに関する備忘録 その他
Webに関する備忘録のトップへ
Copyright (c) ケンズキューブ All Rights Reserved.