Если мы посмотрим на Обоснование для языков международного стандартного программирования-C в разделе 6.3.1.8
Обычные арифметические преобразования , в нем говорится ( акцент мой в будущее ):
Правила в Стандарте для этих преобразований являются небольшими изменениями в K & amp; R: модификации соответствуют добавленным типам и правилам сохранения значения. Явная лицензия была добавлена для выполнения вычислений в «более широком» типе, чем это абсолютно необходимо, поскольку иногда это может приводить к меньшему и более быстрому коду, не говоря уже о правильном ответе более часто. Вычисления также могут выполняться в «более узком» типе с помощью правила «как если бы», пока тот же конечный результат получен. Явное литье всегда можно использовать для получения значения в желаемом типе
Раздел
6.3.1.8
из черновика стандарта C99 охватывает Обычные арифметические преобразования , который применяется к операндам арифметических выражений, например, в разделе6.5.6
Аддитивные операторы говорят:Если оба операнда имеют арифметический тип, обычные арифметические преобразования выполненных над ними.
Мы находим аналогичный текст в разделе
6.5.5
Мультипликативные операторы . В случае операнда short сначала целочисленные рекламные акции применяются из раздела6.3.1.1
Boolean, characters и integers , который гласит:Если int может представлять все значения исходного типа, значение преобразуется в int; в противном случае он преобразуется в unsigned int. Они называются целыми рекламными акциями.48) Все остальные типы не изменяются целыми рекламными акциями.
Обсуждение из раздела
6.3.1.1
Обоснование или Международные языки стандартного программирования - C в целых рекламных акциях на самом деле интереснее, я собираюсь выборочно указывать b / c, что слишком долго, чтобы полностью указать:Реализации были два основных лагеря, которые могут быть охарактеризованы как сохранение без знака и сохранение значений.
[...]
Подход без знака предполагает использование двух меньших неподписанных типов для unsigned int. Это простое правило и дает тип, который не зависит от среды исполнения.
Подход сохранения значения требует продвижения этих типов к подписанному int, если этот тип может правильно представлять все значения исходного типа, и в противном случае для продвижения этих типов к unsigned int. Таким образом, если среда выполнения представляет короткий, чем нечто меньшее, чем int, unsigned short становится int; в противном случае он становится беззнаковым int.
Это может иметь некоторые довольно неожиданные результаты в некоторых случаях как . Непоследовательное поведение неявного преобразования между неподписанными и более крупными подписанными типами демонстрирует, есть таких примеров больше. Хотя в большинстве случаев это приводит к работам, которые ожидаются.
Необходимо попросить, чтобы пользователи сохранили 11 кодов символа от видео YouTube.
Для, например, http://www.youtube.com/watch?v=Ahg6qcgoay4
одиннадцать кодов символа: Ahg6qcgoay4
Вы тогда берете этот код и помещаете его в Вашу базу данных. Тогда везде, где Вы хотите поместить видео YouTube в свою страницу, загрузить символ из базы данных и поместить следующий code:-
, например, для 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>
luvboy,
, Если я понимаю ясно, пользователь, обеспечивает URL/код видео YouTube и затем что видео отображено на странице.
Для этого, просто запишите простую страницу с расположением и т.д. Скопируйте видео встроенный код с YouTube и вставьте его на Вашей странице. Замените встроенный код некоторым полем, скажите VideoID. Установите этот VideoId для кодирования обеспеченный пользователем.
редактирование: см. ответ Alec Smart.
Можно просто создать входную форму php для Varchar date
, дать ее varchar
, длина позволяет, говорят 300. Затем попросите, чтобы пользователи скопировали и вставили Код для встраивания. При просмотре записей Вы будете смотреть переданное потоком видео.
Используйте regex для извлечения "видео идентификатора" после watch?v=
Хранилище видео идентификатор в переменной, давайте звонить, эта переменная vid
Получают встроенный код от случайного видео, удаляют видео идентификатор из встроенного кода и заменяют его vid
, Вы добрались.
я не знаю, как иметь дело с regex в php, но это не должно быть слишком твердо
, Вот пример кода в Python:
>>> 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]+)
получения (sub) строка символов и тире, который прибывает после v=
Если Вы хотите загрузить видео программно, проверьте данные API YouTube для PHP
Не храните код для вставки в вашем база данных - YouTube может время от времени изменять код встраивания и параметры URL. Например, код вставки
удален в пользу кода вставки
. Вы должны выделить идентификатор видео из кода URL / встраивания (используя регулярные выражения, функции синтаксического анализа URL или анализатор HTML) и сохранить его. Затем отобразите его, используя любой механизм, который в настоящее время предлагает API YouTube.
Наивный пример PHP для извлечения идентификатора видео выглядит следующим образом:
<?php
preg_match(
'/[\\?\\&]v=([^\\?\\&]+)/',
'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
$matches
);
// $matches[1] should contain the youtube id
?>
Я предлагаю вам взглянуть на эти статьи, чтобы выяснить, что делать с этими идентификаторами:
Чтобы создать свой собственный видеопроигрыватель YouTube:
В поисках этой же темы я нашел другой метод, использующий Javascript и API Youtube
Непосредственно из: http: // code. google.com/apis/ajax/playground/#simple_embed
Загрузка API
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
И выполнение следующего кода javascript:
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 / apis / ajax / cabin