У меня php-файл index.php
В этом файле для использования html-кода я делаю:
index.php
echo ' <div> <a class="fragment" href=""> <div>';
В href я хочу поместить значение некоторой переменной php, т. $url
Как можно сделать?
это правильный путь?
<a class="fragment" href="<?php echo $url; ?>">
Вы конкатенируете строку, закончив ее и снова запустив:
echo ' <div> <a class="fragment" href="' . $url . '"> <div>';
Хотя я лично предпочитаю останавливать теги PHP и запускать их снова (если у меня много HTML), так как моя IDE не будет синтаксически выделять HTML, поскольку это строка:
?> <div> <a class="fragment" href="<?php echo $url; ?>">link</a> </div> <?php
Поскольку вы печатаете несколько строк HTML, я бы предложил использовать heredoc как таковой:
echo <<<HTML <div> <a class="fragment" href="$url"> <div> HTML;
HTML
может быть любым, пока вы используете тот же тег как в начале, так и в конце. Однако конечный тег должен быть в отдельной строке без каких-либо пробелов или вкладок. С учетом сказанного, в частности, HTML
также имеет то преимущество, что некоторые редакторы (например, VIM) распознают его и применяют раскраску синтаксиса HTML в тексте, а не просто сортируют его как обычную строку.
Если вы хотите использовать массивы или подобное, вы можете избежать переменной с помощью {}
следующим образом:
echo <<<HTML <div>{$someArray[1]}</div> HTML;
если вы эхо php напрямую в html мне нравится делать это
<div><?=$variable?></div>
гораздо короче, чем написать все это (php echo blah blah)
если вы пишете html в php напрямую, то есть несколько вариантов
$var = '<div>'.$variable.'</div>'; // concatenate the string $var = "<div>$variable</div>"; // let php parse it for you. requires double quotes $var = "<div>{$variable}</div>"; // separate variable with curly braces, also requires double quotes
Сделайте это как
<?php $url='http://www.stackoverflow.com'; echo "<div><a class='fragment' href='$url' /></div>";
Если вы хотите сохранить эхо-инструкцию, вы можете сделать
echo '<a class="fragment" href="'.$url.'"><div>';
или
echo "<a class=\"fragment\" href=\"$url\">";
Первое лучше для выступлений, и IMHO также более читабельно.
Если вы хотите вводить / выводить большие блоки HTML со встроенными переменными, вы можете упростить процесс, используя Heredocs :
echo <<<_EOI_ <div> <a class="fragment" href="$url"> <div> _EOI_;
Вам не нужно беспокоиться об экранировании кавычек, постоянной конкатенации или об уродливом входе и выходе из <?php echo $var; ?>
<?php echo $var; ?>
что люди делают.