HTML “структурной распечатки программы” PHP (не Опрятный)

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

total = 0.0

while True:
    positive_num = int(input('Enter a positive number: '))
    if positive_num > -1:
        total = total + positive_num
    else:
        print('Total of positive numbers is:', total)
        break
29
задан Jack Sleight 20 April 2009 в 15:14
поделиться

2 ответа

вы правы, похоже, для HTML нет отступов ( другие также сбиты с толку ). XML работает, даже с загруженным кодом.

<?php
function tidyHTML($buffer) {
    // load our document into a DOM object
    $dom = new DOMDocument();
    // we want nice output
    $dom->preserveWhiteSpace = false;
    $dom->loadHTML($buffer);
    $dom->formatOutput = true;
    return($dom->saveHTML());
}

// start output buffering, using our nice
// callback function to format the output.
ob_start("tidyHTML");

?>
<html>
    <head>
    <title>foo bar</title><meta name="bar" value="foo"><body><h1>bar foo</h1><p>It's like comparing apples to oranges.</p></body></html>
<?php
// this will be called implicitly, but we'll
// call it manually to illustrate the point.
ob_end_flush();
?>

результат:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>foo bar</title>
<meta name="bar" value="foo">
</head>
<body>
<h1>bar foo</h1>
<p>It's like comparing apples to oranges.</p>
</body>
</html>

то же самое с saveXML () ...

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <head>
    <title>foo bar</title>
    <meta name="bar" value="foo"/>
  </head>
  <body>
    <h1>bar foo</h1>
    <p>It's like comparing apples to oranges.</p>
  </body>
</html>

, вероятно, забыл установить preserveWhiteSpace = false перед loadHTML?

отказ от ответственности: я украл большую часть демонстрационного кода из комментариев к руководству tyson clugg / php . ленивый меня


ОБНОВЛЕНИЕ: Теперь я помню, что несколько лет назад я попробовал то же самое и столкнулся с той же проблемой. я исправил это, применяя грязный обходной путь (не критичный к производительности): я просто каким-то образом конвертировался между SimpleXML и DOM, пока проблема не исчезла. Я полагаю, что преобразование избавилось от этих узлов. возможно, загрузите с помощью dom, импортируйте с помощью simplexml_import_dom , затем выведите строку, снова проанализируйте это с DOM и затем напечатайте это довольно. насколько я помню, это работало (но было действительно медленно).

29
ответ дан 28 November 2019 в 02:03
поделиться

Когда у меня была куча XML с пространством имен, tidyHTML мне не нравился, я наткнулся на это:

http://gdatatips.blogspot.com/2008/11/xml-php-pretty-printer.html

5
ответ дан 20 November 2019 в 01:27
поделиться
Другие вопросы по тегам:

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