переменная php внутри echo 'html code'

У меня 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; ?> что люди делают.