Allow form feed characters in attributes
Ein zugehöriger Pull Request wurde bereits gemerged.
- #282 von @ac1982 — gemerged
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 74/100
Rechercherichtung
Beginne bei Tokenizer::quotedAttributeValue() und reproduziere das Problem mit einem img-alt-Attribut, das einen Form Feed enthält, wobei du die HTML5-Ausgabe mit DOMDocument vergleichst. Verfolge, warum Text nach dem Form Feed verworfen wird, und ergänze Testabdeckung, die zeigt, dass das Zeichen wie in der nativen DOM-Ausgabe erhalten bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Tokenizer::quotedAttributeValue() has special handling for form feed characters.
(This used to also include newlines and tabs but was removed in https://github.com/Masterminds/html5-php/commit/8785fc5775df52dd4a6b63677ebd08f8301ffdcc.)
Because of this, if an attribute contains a form feed, everything after this character is ignored.
This creates a discrepancy between masterminds/html5 and the native DOM extension:
$html = "<img src='foo.png' alt='before \f after'>";
$html5 = new HTML5();
$dom = $html5->loadHTML($html);
echo $html5->saveHTML($dom);
// <img src="foo.png" alt="before ">
$dom = new DOMDocument();
$dom->loadHTML($html);
echo $dom->saveHTML();
// <img src="foo.png" alt="before after">
This HTML containing a form feed character in the alt attribute is valid according to https://validator.w3.org/:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img src="foo.png" alt=" foo">
</body>
</html>
- Vorherrschende Sprache
- HTML
- Sterne
- 1.8k
- Forks
- 126
- Ø Merge
- 19 Std. 40 Min.
- Gemergte PRs (30 T.)
- 3
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Masterminds/html5-php
-
Template contents participate in the DOM treeEvtl. vergeben @eyupcanakman hat das vor 236 Tagen übernommen. Offenhelp-wanted
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
Masterminds/html5-php#252 · 1 Kommentar · 1 Reaktion ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
Masterminds/html5-php#251 ·
-
Parser remove the single < (less than) character from given html stringEvtl. vergeben @bsweeney hat das vor 822 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
Masterminds/html5-php#250 · 5 Kommentare · 2 Reaktionen ·
-
multiple <html> <body>Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 28/100
Masterminds/html5-php#246 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
Masterminds/html5-php#245 · 1 Kommentar ·
Alle Issues in Masterminds/html5-php
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
rubys/roundhouse#1917 ·
-
Pretalx reports older version to be the latest release than what is actually installed and availableOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
stringify escapes leading digits in pseudo-class arguments (:nth-child(1) becomes :nth-child(\31 ))Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
Maintainer antworten meist innerhalb von 1 Tag