suchen
HeimBackend-EntwicklungPHP-TutorialAtom验证时报错"not well-formed"

我在SegmentFault的rss订阅支持里使用了atom标准,我仔细阅读过这一标准,而且以前也开发过很多atom订阅的程序,所以看起来似乎没什么困难,而且开发出来在阅读器(google reader, etc.)里面也表现良好。但是当我使用w3c的feed验证时它给我报了这样一个错误(验证地址: http://validator.w3.org/feed/check.cg...)

Atom验证时报错

这是一个很令人困惑的错误,因为通常not well-formed错误可能会发生在一些特殊字符没有escape的时候,但是我已经在输出之前对内容做了以下处理

function escape($string) {
    return str_replace(array('&','"',"'",''),
        array('&','"',''','<','>'),
        $string);
}

所以输出的内容是不会有特殊字符的问题。我尝试把内容放在里面括起来,但是都无效。

更令人奇怪的是,似乎这个错误只是出现在这篇文章中(也就是只针对特定的字符),在不包涵这篇文章的feed中验证就会通过,比如: http://validator.w3.org/feed/check.cg...。

我自己怀疑是atom标准对UTF-8的编码支持有问题,或者我还有什么地方没有设置好,不知道有没有好的解决办法。

回复内容:

我在SegmentFault的rss订阅支持里使用了atom标准,我仔细阅读过这一标准,而且以前也开发过很多atom订阅的程序,所以看起来似乎没什么困难,而且开发出来在阅读器(google reader, etc.)里面也表现良好。但是当我使用w3c的feed验证时它给我报了这样一个错误(验证地址: http://validator.w3.org/feed/check.cg...)

Atom验证时报错

这是一个很令人困惑的错误,因为通常not well-formed错误可能会发生在一些特殊字符没有escape的时候,但是我已经在输出之前对内容做了以下处理

function escape($string) {
    return str_replace(array('&','"',"'",''),
        array('&','"',''','<','>'),
        $string);
}

所以输出的内容是不会有特殊字符的问题。我尝试把内容放在里面括起来,但是都无效。

更令人奇怪的是,似乎这个错误只是出现在这篇文章中(也就是只针对特定的字符),在不包涵这篇文章的feed中验证就会通过,比如: http://validator.w3.org/feed/check.cg...。

我自己怀疑是atom标准对UTF-8的编码支持有问题,或者我还有什么地方没有设置好,不知道有没有好的解决办法。

你的代码没有问题,我仔细看了下你出现问题的那篇文章,开始没有丝毫头绪,后来干脆把它copy到vim里来看,然后我发现了这个

Atom验证时报错

看到没有,在"一种"和"如芒在背"之间有一个不可见字符,这种字符会引起第三方验证程序的编码错误,但是基本上不会影响阅读器的使用。去掉这个字符应该就没有问题了。这种字符一般都是切换输入法时出来的。

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
PHP -Leistungsstimmung für Websites mit hohem VerkehrPHP -Leistungsstimmung für Websites mit hohem VerkehrMay 14, 2025 am 12:13 AM

Thesecrettokeepingaphp-betriebene WebsiterunningSmoothyunderheavyLoadInvolvesseveralkeyStrategies: 1) ImplementoPCodeCachingWithopcachetoreducescholexexexcutiontime, 2) verwendetatabasequerycachingwithredolesendatabaSelaDaLoadaLoadaLoadaLoad, 3) LeveragecdnslikecloudLesendatabaselaSelaSelaSelaSelaSelaSelaSelaSelaSelaSeladinaSelaSelaSelaSelaSeladinaSelaSeladin

Abhängigkeitsinjektion in PHP: Code Beispiele für AnfängerAbhängigkeitsinjektion in PHP: Code Beispiele für AnfängerMay 14, 2025 am 12:08 AM

Sie sollten sich um die Abhängigkeitsinjektion (DI) kümmern, da Ihr Code klarer und leichter zu warten ist. 1) DI macht es modularer durch Entkopplung von Klassen, 2) verbessert die Bequemlichkeit von Tests und Code -Flexibilität, 3) DI -Container verwenden, um komplexe Abhängigkeiten zu verwalten, aber auf die Auswirkungen auf die Leistung und die kreisförmigen Abhängigkeiten zu achten, 4) Die beste Praxis besteht darin, sich auf abstrakte Schnittstellen zu verlassen, um lose Koupleln zu erreichen.

PHP -Leistung: Ist es möglich, die Anwendung zu optimieren?PHP -Leistung: Ist es möglich, die Anwendung zu optimieren?May 14, 2025 am 12:04 AM

Ja, optimizingaphpapplicationSispossiblandinential.1) ImplementCachingusedapcutoredatabaSeload.2) optimizedatabases-withindexing, effizienteQuerien und AnconnectionPooling.3) EnhanceCodewithbuilt-Infunktionen, Vermeidung von Globalvariablungen und UsusepcodeCodeCecess

PHP -Leistungsoptimierung: Der ultimative LeitfadenPHP -Leistungsoptimierung: Der ultimative LeitfadenMay 14, 2025 am 12:02 AM

TheKeyStrategieS significantBoostPhpapplicationPlicationperformanceare: 1) UseOpCodeCaching-likeopcachetoreduceExecutiontime, 2) optimizedatabaseInteractionswithprepararedStatements undProperIndexing, 3) configureWebserverSLIKENGINXWITHPHP-FPMFRMFRETBETTERPERSPRIGUNG, 4), 4), 4), 4), 4))

PHP -Abhängigkeitsinjektionsbehälter: Ein schneller StartPHP -Abhängigkeitsinjektionsbehälter: Ein schneller StartMay 13, 2025 am 12:11 AM

APHPDependencyInjectionContainerisatoolthatmanagesClass -Abhängigkeiten, EnhancingCodemodularität, Testbarkeit und Maschinenbarkeit.

Abhängigkeitsinjektion im Vergleich zum Service -Locator in PHPAbhängigkeitsinjektion im Vergleich zum Service -Locator in PHPMay 13, 2025 am 12:10 AM

Wählen Sie die Abhängigkeitsinjektion (DI) für große Anwendungen. Der Servicelocator ist für kleine Projekte oder Prototypen geeignet. 1) DI verbessert die Testbarkeit und Modularität des Codes durch Konstruktorinjektion. 2) Servicelocator erhält Dienstleistungen durch die Zentrumregistrierung, was bequem ist, aber zu einer Erhöhung der Codekupplung führen kann.

PHP -Leistungsoptimierungsstrategien.PHP -Leistungsoptimierungsstrategien.May 13, 2025 am 12:06 AM

PhpapplicationscanbeoptimizedforspeedandefficiencyBy: 1) EnabgingOpcacheinphp.ini, 2) usePreparedStatementsWithpdoFordatabasequeries, 3) Ersatzloopswitharray_Filterandarray_mapfordataprozessing, 4) Konfigurieren von), 4), implementieren, 5)

PHP -E -Mail -Validierung: Stellen Sie sicher, dass E -Mails korrekt gesendet werdenPHP -E -Mail -Validierung: Stellen Sie sicher, dass E -Mails korrekt gesendet werdenMay 13, 2025 am 12:06 AM

PhpemailvalidationInvolvesthreesteps: 1) Formatvalidationusing -RegularexpressionStocheckTheemailformat; 2) DnsvalidationToensurethedomainhasavalidmxRecord;

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft