возникли проблемы с разбиением кода вставки YouTube в переменные - PullRequest
1 голос
/ 30 декабря 2011

Я пытаюсь взять базовый код для вставки YouTube и разбить его на переменные ширины по высоте и URL, но код, который я использую, продолжает выдавать ошибку.

<?php
$width = "10";
$height = "20";
$vid url = "http://www.youtube.com/embed/HjgSmoilwV4";

echo '<iframe width="'$width'" height="'$height'" src="'$vid'" frameborder="0"allowfullscreen></iframe>';
?>

используя этот код, я получаю следующую ошибку

Ошибка разбора: синтаксическая ошибка, неожиданный T_STRING в D: \ webdesign \ webserver \ root \ dynapage \ scripts \ admin \ add_video.php в строке 4

Что я делаю не так? Я гуглил и нашел материал при побеге, но не уверен, чего он ожидает от меня.

Ответы [ 5 ]

3 голосов
/ 30 декабря 2011

Строка 4 $ vid url, там не может быть этого пробела, это синтаксическая ошибка. поэтому измените его на:

$vid = "http://www.youtube.com/embed/HjgSmoilwV4";

и последняя строка должна быть:

echo "<iframe width='".$width."' height='".$height."' src='".$vid."' frameborder='0' allowfullscreen></iframe>";
3 голосов
/ 30 декабря 2011

Чтобы использовать переменные внутри строк, вам нужно использовать двойные кавычки в PHP. Поэтому следующее:

echo '<iframe width="'$width'" height="'$height'" src="'$vid_url'" frameborder="0"allowfullscreen></iframe>';

должно быть:

echo "<iframe width='$width' height='$height' src='$vid_url' frameborder='0' allowfullscreen></iframe>";

Вы получаете синтаксическую ошибку, потому что вы использовали одинарные кавычки, а затем завершили их, но после них все еще есть текст.Ваш пример кода также может быть написан с использованием оператора конкатенации .:

echo '<iframe width="' . $width . '" height="' . $height . '" src="' . $vid_url . '" frameborder="0"allowfullscreen></iframe>';
0 голосов
/ 30 декабря 2011

Единственное отсутствующее объединение =]

<?php
    $width = "10";
    $height = "20";
    $vid url = "http://www.youtube.com/embed/HjgSmoilwV4";

    echo '<iframe width="'.$width.'" height="'.$height.'" src="'.$vid.'" frameborder="0" allowfullscreen></iframe>';
?>

Полезная ссылка

0 голосов
/ 30 декабря 2011

Вы не можете просто объединить строки с переменными, поместив их рядом друг с другом в исходном входном файле.Вместо этого используйте . для объединения значений:

$ php
<?php
echo 'one' 'two';
?>
PHP Parse error:  syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in - on line 2
$ php
<?php
echo 'one' . 'two';
?>
onetwo$ 
0 голосов
/ 30 декабря 2011
<?php

$width = '10';
$height = '20';
$vid_url = 'http://www.youtube.com/embed/HjgSmoilwV4';

echo "<iframe width=\"$width\" height=\"$height\" src=\"$vid_url\" frameborder=\"0\" allowfullscreen></iframe>";

?>

Использование двойных кавычек (") в PHP позволяет встраивать переменное содержимое по имени, так как механизм сценариев анализирует строки в двойных кавычках для известных шаблонов. Я заменил одинарные кавычки на двойные кавычки, а затем экранировал вседвойных кавычек.

Основная проблема с вашим примером кода заключалась в том, что переменные не могут включать пробелы, поэтому я заменил ваш пробел подчеркиванием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...