Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

gina78 avatar gina78 4 Точки

HTML parser

здравейте, с тая задача много се мъча, дава ми нищо а по условие се изпълнява

0/100

https://pastebin.com/qPhgY6WB

1.   HTML parser

Write a program that extracts a title of a HTML file and all the content in its body. When you do that print the result in the following format:

"Title: {extracted title}"

"Content: {extracted content}"

The content should be a single string. There might be different tags inside of the body, which you must ignore. You extract only the text without the tags. The input will be on a single line. Example:

"<html>\n<head><title>News</title></head>\n<body><p><a href="https://softuni.bg">Telerik\nAcademy</a>aims to provide free real-world practical\ntraining for young people who want to turn into\nskillful .NET software engineers.</p></body>\n</html>"

Here the title is "News" and the content is "Telerik Academy aims to provide free real-world practical training for young people who want to turn into skillful .NET software engineers."

 

Examples

Input

Output

Comment

<html>\n<head><title>Some title</title></head>\n<body>Here<p>is some</p>content<a href="www.somesite.com">\nclick</body>\n</html>

Title: Some title

Content: Here is some content click

We take the title and ignore all the tags to get the content

 

Тагове:
1
PHP Fundamentals
viktor.pts avatar viktor.pts SoftUni Team Trainer 332 Точки

Като сложа втория ти регекс във regex101.com не хваща по-голямата част от текста, пробвай да дебъгнеш първо там.

1
willystyle avatar willystyle 2472 Точки

Ти си се забъркала в нещо странно :) , за  условието, което си дала, ето едно примерно решение:

<?php
$input = readline();
$title = '';
$content = '';
preg_match('/<title>([^<]*)<\/title>/', $input, $match);
$title = $match[1];
preg_match('/(<body>.*<\/body>)/', $input, $match);
$body = $match[1];
preg_match_all('/>([^<>]*)</', $body, $matches);
foreach ($matches[1] as $match) {
    $content .= $match . ' ';
}
$content = str_replace('\n', ' ', $content);
$content = preg_replace('/\s+/', ' ', $content);
echo "Title: $title" . PHP_EOL;
echo "Content: $content" . PHP_EOL;

но по решението което си предложила, според мен си в друга задача, която се казва само 03.HTML и става въпрос за формиране на html от подадени заглавие, статия и коментари, ето едно примерно решение и за нея:

<?php
$html = '';
$title = readline();
$html = '<h1>' . PHP_EOL . "\t" . $title . PHP_EOL . '</h1>' . PHP_EOL;
$article = readline();
$html .= '<article>' . PHP_EOL . "\t" . $article . PHP_EOL . '</article>' . PHP_EOL;
while (($comment = readline()) != 'end of comments') {
    $html .= '<div>' . PHP_EOL . "\t" . $comment . PHP_EOL . '</div>' . PHP_EOL;
}
echo $html;

P.S. Понеже виждам, че по-горе е коментирал и Виктор, когото дълбоко уважавам, бих му обърнал внимание, че на предна инстанция PHP Fundamentals - май 2019 в Regular Expressions - More Exercise за задача 03.HTML има несъответсвие между условие и тестове (дори в момента мисля, че никъде не е останал контест със задача HTML parser)

0
10/09/2019 17:16:27
gina78 avatar gina78 4 Точки

благодаря ти много

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.