سؤال

يمكن لأي شخص أن تعطيني فكرة كيف يمكننا تظهر أو تضمين فيديو يوتيوب فقط إذا كان لدينا عنوان URL أو تضمين رمز ؟

هل كانت مفيدة؟

المحلول

وعليك أن تسأل المستخدمين من تخزين رمز 11 حرف من يوتيوب فيديو.

لمثل http://www.youtube.com/watch؟v=Ahg6qcgoay4

ورموز الحروف أحد عشر هو: Ahg6qcgoay4

وأنت ثم أخذ هذا الرمز ووضعه في قاعدة البيانات الخاصة بك. ثم أينما كنت تريد وضع فيديو يوتيوب في صفحتك، تحميل حرف من قاعدة البيانات ووضع التعليمات البرمجية التالية: -

ومنها مثلا. لAhg6qcgoay4 سيكون:

<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>

نصائح أخرى

لا تقم بتخزين تضمين التعليمات البرمجية في قاعدة البيانات الخاصة بك -- يوتيوب قد يغير تضمين قانون معلمات عنوان URL من وقت لآخر.على سبيل المثال <object> تضمين قانون تقاعد لصالح <iframe> تضمين التعليمات البرمجية.يجب تحليل الخروج معرف الفيديو من URL/تضمين قانون (باستخدام التعبيرات العادية, URL تحليل الوظائف أو محلل HTML) وتخزينها.ثم عرض ذلك باستخدام أي آلية المقدمة حاليا من يوتيوب API.

ساذجة PHP مثلا استخراج الفيديو معرف كما يلي:

<?php
    preg_match(
        '/[\\?\\&]v=([^\\?\\&]+)/',
        'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
        $matches
    );
    // $matches[1] should contain the youtube id
?>

أقترح عليك أن ننظر إلى هذه المواد إلى معرفة ما يجب القيام به مع هذه المعرفات:

إنشاء الخاصة بك يوتيوب فيديو لاعب:

ومن كلا الطويلة والقصيرة عناوين المواقع يوتيوب يمكنك الحصول على تضمين هذه الطريقة:

$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";

ونأمل أن يساعد شخص ما

على <object> و <embed> العلامات مستنكر كما في HTML أشرطة فيديو يوتيوب, فمن الأفضل استخدام <iframe> الوسم للقيام بذلك.

<iframe width="420" height="315"
src="http://www.youtube.com/embed/XGSy3_Czz8k?autoplay=1">
</iframe>

من أجل المستخدمين لا يقضون حياتهم بأكملها في محاولة للعثور على الفيديو معرف في روابط في حقل النموذج ، والسماح لهم بنشر رابط الفيديو وجدوا على يوتيوب يمكنك استخدام التالية regex للحصول على معرف الفيديو:

preg_match("/^(?:http(?:s)?:\/\/)?
    (?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|
    (?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);

للحصول على معرف الفيديو يمكنك جلب عليه $matches[1], هذه المباراة:

جزء من هذا الجواب يشار @شون الجواب في هذا السؤال.

استخدم باستخدام التعابير المنطقية لاستخراج "معرف الفيديو" بعد watch?v=

وتخزين معرف الفيديو في متغير، دعونا نسمي هذا vid متغير

والحصول على شفرة التضمين من شريط فيديو عشوائي، وإزالة معرف الفيديو من تضمين قانون واستبدالها vid الذي حصلت عليه.

وأنا لا أعرف كيفية التعامل مع التعابير المنطقية في بي، ولكن لا ينبغي أن يكون من الصعب جدا

إليك مثال التعليمة البرمجية في بيثون:

>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70'
>>> import re
>>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0]
>>> vid
'7-dXUEbBz70'
>>> print '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>

والتعبير v\=([\-\w]+) العادية يلتقط سلسلة (دون) من الشخصيات وشرطات التي تأتي بعد v=

وهنا بعض التعليمات البرمجية لقد كتب لتتحول تلقائيا في URL إلى روابط وتضمين أي عناوين الفيديو تلقائيا من يوتيوب. أنا جعلت لغرفة دردشة أعمل على ويعمل بشكل جيد جدا. أنا متأكد من أنها سوف تعمل على ما يرام لأي غرض آخر، وكذلك مثل بلوق على سبيل المثال.

وكل ما عليك القيام به هو استدعاء الدالة "التلقائي ()" وتمريرها سلسلة ليتم تحليلها.

وعلى سبيل المثال تشمل وظيفة أدناه ثم أردد هذا الرمز.

`
echo '<div id="chat_message">'.autolink($string).'</div>';

/****************Function to include****************/

<?php

function autolink($string){
    // force http: on www.
    $string = str_ireplace( "www.", "http://www.", $string );
    // eliminate duplicates after force
    $string = str_ireplace( "http://http://www.", "http://www.", $string );
    $string = str_ireplace( "https://http://www.", "https://www.", $string );

    // The Regular Expression filter
    $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
    // Check if there is a url in the text

$m = preg_match_all($reg_exUrl, $string, $match); 

if ($m) { 
$links=$match[0]; 
for ($j=0;$j<$m;$j++) { 

    if(substr($links[$j], 0, 18) == 'http://www.youtube'){

    $string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).'<br /><iframe title="YouTube video player" class="youtube-player" type="text/html" width="320" height="185" src="http://www.youtube.com/embed/'.substr($links[$j], -11).'" frameborder="0" allowFullScreen></iframe><br />';


    }else{

    $string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string);

        } 

    } 
} 




               return ($string);
 }

?>

و`

إذا كنت ترغب في تحميل ملفات الفيديو برمجيا، والتحقق من يوتيوب البيانات API ل PHP

والبحث عن هذا الموضوع نفسه وجدت طريقة أخرى باستخدام جافا سكريبت على يوتيوب API ل

ومباشرة من: http://code.google.com/apis/ajax / ملعب / # simple_embed

تحميل وAPI

<script src="http://www.google.com/jsapi" type="text/javascript"></script>

وتنفيذ شفرة جافا سكريبت التالي:

  google.load("swfobject", "2.1");
  function _run() {

    var videoID = "ylLzyHk54Z0"
    var params = { allowScriptAccess: "always" };
    var atts = { id: "ytPlayer" };
    // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
    swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "&enablejsapi=1&playerapiid=player1",
                       "videoDiv", "480", "295", "8", null, null, params, atts);


  }
  google.setOnLoadCallback(_run);

والعينة كاملة هي في http://code.google.com/ واجهات برمجة التطبيقات / اياكس / ملعب

ويمكنك القيام بذلك بسيطة مع جملة. اسمحوا لي أن نفترض عينة يوتيوب URL - https://www.youtube.com/watch؟v=ndmXkyohT1M

<?php 
$youtubeUrl =  JUri::getInstance('https://www.youtube.com/watch?v=ndmXkyohT1M');
$videoId = $youtubeUrl->getVar('v'); ?>

<iframe id="ytplayer" type="text/html" width="640" height="390"  src="http://www.youtube.com/embed/<?php echo $videoId; ?>"  frameborder="0"/>

ويمكنك ببساطة إنشاء نموذج فب مدخلات لVarchar date، وإعطائها طول varchar من دعنا نقول 300. ثم تطلب من المستخدمين من نسخ ولصق تضمين code.When عرض السجلات، سوف تقوم بعرض الفيديو المتدفق.

وluvboy،

إذا فهمت بشكل واضح، يوفر المستخدم URL / مدونة الفيديو يوتيوب ومن ثم يتم عرض هذا الفيديو على الصفحة.

لذلك، مجرد كتابة صفحة بسيطة، مع تخطيط الخ .. نسخ كود الفيديو من يوتيوب تضمين ولصقه في صفحتك. استبدال تضمين قانون مع بعض الحقول، ويقول معرف الفيديو. تعيين هذا معرف الفيديو إلى رمز التي يقدمها المستخدم الخاص بك.

وتحرير: انظر الإجابة من طرف أليك الذكية

.

ومجرد تحديث الصغيرة إلى الإجابة أليك الذكية: منذ تم إهمال AS2 الآن، يطلب من الحصول على مثاله في العمل 'نسخة = 3؟ ". انظر المرجع يوتيوب في يوتيوب اللاعبين جزءا لا يتجزأ من ومشغل معلمات تحت عنوان "اختيار محتوى للعب" لمزيد من التفاصيل.

وبعبارة أخرى:

<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4?version=3" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4?version=3" /></object>

وعلى ما يبدو، فإن الإشارة يوتيوب فوق يفعل ذلك على النحو التالي (وتضمين الداخلي يفترض أنها استخدمت بمثابة تراجع عن المتصفحات التي لا تدعم علامة بعد الكائن):

<object width="640" height="390">
  <param name="movie"
         value="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"></param>
  <param name="allowScriptAccess" value="always"></param>
  <embed src="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"
         type="application/x-shockwave-flash"
         allowscriptaccess="always"
         width="640" height="390"></embed>
</object>

وأو باستخدام نوافذ الأطر المدمجة (استبدال http://example.com باستخدام نطاق موقعك):

<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1&origin=http://example.com" frameborder="0"/>

يوتيوب مولد تضمين حل كل مشاكلي مع تضمين الفيديو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top