Подтвердить что ты не робот

PHP Echo большой блок текста

Я новичок в PHP, и я не могу понять, что такое правила для использования функции эха. Например, если мне нужно откликнуться на большой блок css/js, нужно ли добавить эхо в каждую строку текста или есть способ эхо большого блока кода с одним эхом?

Когда я пытаюсь повторить большой блок кода, подобный этому, я получаю сообщение об ошибке:

if (is_single()) {
echo '<link type="text/css" rel="stylesheet" href="#" onclick="location.href='http://jotform.com/css/styles/form.css'; return false;"/><style type="text/css"> 
.form-label{
width:150px !important;
}
.form-label-left{
width:150px !important;
}
.form-line{
padding:10px;
}
.form-label-right{
width:150px !important;
}
body, html{
margin:0;
padding:0;
background:false;
}

.form-all{
margin:0px auto;
padding-top:20px;
width:650px !important;
color:Black;
font-family:Verdana;
font-size:12px;
}
</style> 

<link href="#" onclick="location.href='http://jotform.com/css/calendarview.css'; return false;" rel="stylesheet" type="text/css" /> 
<script src="http://jotform.com/js/prototype.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus-ui.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/jotform.js?v3" type="text/javascript"></script> 
<script src="http://jotform.com/js/location.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/calendarview.js" type="text/javascript"></script> 
<script type="text/javascript"> 

JotForm.init(function(){
$('input_6').hint('ex: [email protected]');
});
</script>';
}else {

}

Есть ли лучший способ эхо больших блоков кода без большой работы (например, добавление эха в каждую строку)?

4b9b3361

Ответ 1

Один из вариантов - выйти из блока php и просто написать HTML.

С вашим кодом после открытия фигурной скобки вашего оператора if завершите PHP:

if (is_single()) { ?>

Затем удалите echo ' и ';

После всех ваших html и css перед закрытием } напишите:

<? } else {

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

Ответ 2

Синтаксис Heredoc может быть очень полезным:

// start the string with 3 < and then a word
// it doesn't have to be any particular string or length
// but it common to make it in all caps.
echo <<< EOT
    in here is your string
    it has the same variable substitution rules
    as a double quoted string.
    when you end it, put the indicator word at the
    start of the line (no spaces before it)
    and put a semicolon after it
EOT;

Ответ 3

Проверьте heredoc. Пример:

echo <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

echo <<<"FOOBAR"
Hello World!
FOOBAR;

Кроме того, nowdoc, но в блоке не выполняется синтаксический анализ.

echo <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

Ответ 4

Человек, PHP не perl!
PHP может просто выйти из HTML:) http://www.php.net/manual/en/language.basic-syntax.phpmode.php

if (is_single()) {
//now we just close PHP tag
?>
</style> 
<script> 
<blah blah blah>
<?php
//open it back. here is your PHP again. easy!
}
?>

Интересно, почему так много людей придерживались уродливого heredoc.

Ответ 5

Текст эха, который содержит разрывы строк, прекрасен, и нет ограничений на количество текста или строк, которые вы можете эха сразу (за исключением доступной памяти).

Ошибка в коде вызвана одиночными кавычками, которые не отображаются в строке.

См. эту строку:

$('input_6').hint('ex: [email protected]');

Вам нужно избежать этих одиночных кавычек в строке PHP, будь то одна строка или нет.

Существует еще один хороший способ отбросить большие строки, а также закрыть блок PHP и открыть его позже:

if (is_single()) {
  ?>
<link type="text/css" rel="stylesheet" href="http://jotform.com/css/styles/form.css"/><style type="text/css"> 
.form-label{
width:150px !important;
}
.form-label-left{
width:150px !important;
}
.form-line{
padding:10px;
}
.form-label-right{
width:150px !important;
}
body, html{
margin:0;
padding:0;
background:false;
}

.form-all{
margin:0px auto;
padding-top:20px;
width:650px !important;
color:Black;
font-family:Verdana;
font-size:12px;
}
</style> 

<link href="http://jotform.com/css/calendarview.css" rel="stylesheet" type="text/css" /> 
<script src="http://jotform.com/js/prototype.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus-ui.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/jotform.js?v3" type="text/javascript"></script> 
<script src="http://jotform.com/js/location.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/calendarview.js" type="text/javascript"></script> 
<script type="text/javascript"> 

JotForm.init(function(){
$('input_6').hint('ex: [email protected]');
});
</script>
  <?php
}else {

}

Или другая альтернатива, которая, вероятно, лучше для удобства чтения, состоит в том, чтобы поместить весь этот статический HTML в другую страницу и включить() его.

Ответ 6

Ваша проблема вызвана:

$('input_6').hint('ex: [email protected]');

Вам нужно избежать одиночных кавычек \'

Однако: Использование Heredoc - гораздо лучшая идея, так как оно будет намного более чистым в целом.

Ответ 7

Чтобы расширить ответ на @hookedonwinter, вот альтернативный (чище, на мой взгляд) синтаксис:

<?php if (is_single()): ?>
    <p>This will be shown if "is_single()" is true.</p>
<?php else: ?>
    <p>This will be shown otherwise.</p>
<?php endif; ?>

Ответ 8

Я предпочитаю объединять несколько строк вместе. Это работает либо для echo AND для переменных. Также некоторые IDE автоматически инициализируют новые строки, если вы нажмете enter. Этот синтаксис также генерирует небольшой результат, потому что в строках гораздо меньше пробелов.

echo ''
    .'one {'
    .'    color: red;'
    .'}'
    ;

$foo = ''
    .'<h1>' . $bar . '</h1>'  // insert value of bar
    .$bar                     // insert value of bar again
    ."<p>$bar</p>"            // and again
    ."<p>You can also use Double-Quoted \t Strings for single lines. \n To use Escape Sequences.</p>"
    // also you can insert comments in middle, which aren't in the string.
    .'<p>Or to insert Escape Sequences in middle '."\n".' of a string</p>'
    ;

Обычно я начинаю с пустой строки, а затем добавляю ее побайтно:

$foo = '';

$foo .= 'function sayHello()'
    .'    alert( "Hello" );'
    ."}\n";

$foo .= 'function sum( a , b )'
    .'{'
    .'    return a + b ;'
    ."}\n";

(Пожалуйста, остановите записи, например: "Ответ на пять лет назад". Почему нет? Много людей ищут ответ. И что неправильно использовать пятилетние идеи? Если они не найдут "их" решение "они откроют новый вопрос. Тогда первые пять ответов будут" использовать функцию поиска, прежде чем вы спросите!" Итак, я даю вам другое решение для решения таких проблем.)

Ответ 9

$num = 5;
$location = 'tree';

$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);

Ответ 10

Просто выходите, где вам нужно.

<html>
(html code)
<?php
(php code)
?>
(html code)
</html>

Не используйте сокращенную форму. <? конфликты с XML и по умолчанию отключены на большинстве серверов.

Ответ 11

Вы можете добиться этого, напечатав свою строку следующим образом:

<?php $string ='here is your string.'; print_r($string); ?>