HTML в Переменную PHP (HTML вне кода PHP)

Проверьте журнал ошибок:

 FixedExtentScrollController can only be used with ListWheelScrollViews

. Таким образом, вы не можете использовать FixedExtentScrollController с ListView, вам необходимо использовать ListWheelScrollViews

. Это ваш исправленный код:

     @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(
              backgroundColor: Colors.deepPurple,
              title: const Text('List'),
            ),
            body: data == null
                ? Center(
                    child: CircularProgressIndicator(),
                  )
                : ListWheelScrollView(
                    itemExtent: 100.0,
                    controller: fixedExtentScrollController,
                    children: data
                        .map((val) => Container(
                              child: Center(
                                child: Column(
                                  crossAxisAlignment: CrossAxisAlignment.stretch,
                                  children: <Widget>[
                                    Card(
                                      child: Container(
                                          padding: EdgeInsets.all(15.0),
                                          child: Row(
                                            children: <Widget>[
                                              Text("Title: "),
                                              Expanded(
                                                child: Text(val["title"],
                                                    style: TextStyle(
                                                        fontSize: 11.0,
                                                        color: Colors.black87)),
                                              ),
                                            ],
                                          )),
                                    ),
                                  ],
                                ),
                              ),
                            ))
                        .toList()),
          ),
        );
      }
25
задан GraphicsMuncher 10 August 2015 в 01:57
поделиться

6 ответов

Вы пробовали "буферизацию вывода"?

<?php
 ...
 ob_start();
?>

<html>
   <head>...</head>
   <body>...<?php echo $another_variable ?></body>
</html>

<?php
 $variable = ob_get_clean();
 ...
?>
68
ответ дан Wabbitseason 28 November 2019 в 17:57
поделиться

Я не совсем уверен в том, что вы пытаетесь достичь, но я думаю, что-то вроде синтаксиса heredoc может быть полезно для вас:

<?
$variable = <<< MYSTRING

<html>
   <head>...</head>
   <body>...</body>
</html>

MYSTRING;

Однако, если вы пытаясь создавать шаблоны HTML, я настоятельно рекомендую вам получить реальный шаблонизатор, такой как Smarty , Dwoo или Savant .

4
ответ дан CMS 28 November 2019 в 17:57
поделиться

Я всегда рекомендую ИЗБЕГАТЬ буферных функций (например, ob_start и т. Д.) Всякий раз, когда у вас есть альтернатива (потому что иногда они могут конфликтовать с частями в одной системе).

Я использую:

function Show_My_Html()
{ ?> 
    <html>
      <head></head>
      <body>
         ...
      </body>
    </html>
    <?php 
}


...
//then you can output anywhere
Show_My_Html();
0
ответ дан T.Todua 28 November 2019 в 17:57
поделиться

ДЕЙСТВИТЕЛЬНО СУМАСШЕДШИЙ, но имейте в виду, что если вы сделаете это:

<?php echo ""; ?>  

Вы получите это:

<html><head></head><body></body></html>  

Сохраняйте спокойствие, это только попытка php свести вас с ума.

-9
ответ дан gfsd4gs56g14sd56 28 November 2019 в 17:57
поделиться

Думаю, вам нужен синтаксис heredoc .

Например:

$var = <<<HTML
<html>
   <head>
random crap here
</html>
HTML;
15
ответ дан 28 November 2019 в 17:57
поделиться

Хорошо, что вы хотите делать, в некотором смысле возможно.

Вы не можете просто назначить блок HTML переменной php или сделать это с помощью функции. Однако есть несколько способов добиться желаемого результата.

  1. Изучите возможность использования механизма шаблонов (я предлагаю вам сделать это, так как в любом случае это того стоит). Я использую smarty , но есть много других
  2. Второй - использовать выходной буфер.

Одна из ваших проблем заключается в том, что любой HTML-код на вашей странице немедленно отправляется клиенту, что означает, что его нельзя использовать в качестве переменной в php. Однако, если вы используете функции ob_start и ob_end_fush вы можете добиться того, чего хотите.

например

<?php 
  somesetupcode();
  ob_start();  ?>
<html>
<body>
html text
</body>
</html>
<?php
  //This will assign everything that has been output since call to ob_start to your    variable.
  $myHTML = ob_get_contents() ;
  ob_end_flush();

?>

Надеюсь, это поможет вам прочитать о выходных буферах в документации php.

1
ответ дан 28 November 2019 в 17:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: