Ich habe mehrere ähnliche Fragen gefunden, aber bisher konnte mir keine helfen.
Ich versuche, den ‘src’ aller Bilder in einem HTML-Block auszugeben, also verwende ich DOMDocument()
. Diese Methode funktioniert tatsächlich, aber ich erhalte auf einigen Seiten eine Warnung, und ich kann nicht herausfinden, warum. In einigen Beiträgen wurde vorgeschlagen, die Warnung zu unterdrücken, aber ich möchte lieber herausfinden, warum die Warnung generiert wird.
Warnung: DOMDocument::loadHTML(): htmlParseEntityRef: kein Name in Entity, Zeile: 10
Ein Beispiel dafür post->post_content
das den Fehler erzeugt, ist –
On Wednesday 21st November specialist rights of way solicitor Jonathan Cheal of Dyne Drewett will be speaking at the Annual Briefing for Rural Practice Surveyors and Agricultural Valuers in Petersfield.
<br>
Jonathan is one of many speakers during the day and he is specifically addressing issues of public rights of way and village greens.
<br>
Other speakers include:-
<br>
<ul>
<li>James Atrrill, Chairman of the Agricultural Valuers Associates of Hants, Wilts and Dorset;</li>
<li>Martin Lowry, Chairman of the RICS Countryside Policies Panel;</li>
<li>Angus Burnett, Director at Martin & Company;</li>
<li>Esther Smith, Partner at Thomas Eggar;</li>
<li>Jeremy Barrell, Barrell Tree Consultancy;</li>
<li>Robin Satow, Chairman of the RICS Surrey Local Association;</li>
<li>James Cooper, Stnsted Oark Foundation;</li>
<li>Fenella Collins, Head of Planning at the CLA; and</li>
<li>Tom Bodley, Partner at Batcheller Monkhouse</li>
</ul>
Ich kann noch ein paar weitere Beispiele dafür posten post->post_content
enthält, ob das hilfreich wäre?
Ich habe den Zugriff auf eine Entwicklungsseite vorübergehend zugelassen, sodass Sie einige Beispiele sehen können [Note – links no longer accessable as question has been answered] –
- Fehler – http://test.dynedrewett.com/specialist-solicitor-speaks-at-petersfield-update/
- Kein Fehler – http://test.dynedrewett.com/restrictive-covenants-in-employment-contracts/
Irgendwelche Tipps, wie man das Problem lösen kann? Danke.
$dom = new DOMDocument();
$dom->loadHTML(apply_filters('the_content', $post->post_content)); // Have tried stripping all tags but <img>, still generates warning
$nodes = $dom->getElementsByTagName('img');
foreach($nodes as $img) :
$images[] = $img->getAttribute('src');
endforeach;
Das Anzeigen der Zeile, die den Fehler verursacht hat, würde das Debuggen definitiv erleichtern.
– einsamer Tag
1. Februar 2013 um 14:27
??? Die Warnung ist eingeschaltet
DOMDocument::loadHTML();
also ist die Zeile, die den Fehler verursachtdom->loadHTML(apply_filters('the_content', $post->post_content));
– David Gard
1. Februar 2013 um 14:29
Zeile 10 des Inhalts, den Sie analysieren …
– einsamer Tag
1. Februar 2013 um 14:40 Uhr
Ok, mit dir. In einem Fall ist es so
James Cooper, Stnsted Oark Foundation;
. Ich dachte, es könnte daran liegen;
Das hat das Problem verursacht, aber es hat nicht geholfen, sie alle auszutauschen (es gab vorher mehrere).– David Gard
1. Februar 2013 um 14:43
@DavidGard Meine beste Vermutung ist dann, dass es ein kaufmännisches Und-Zeichen ohne Escapezeichen gibt (
&
) irgendwo im HTML. Dies lässt den Parser denken, dass wir uns in einer Entitätsreferenz befinden (z. B©
). Wenn es soweit ist;
, es denkt, dass die Entität vorbei ist. Dann erkennt es, dass das, was es hat, nicht mit einer Entität übereinstimmt, sendet also eine Warnung und gibt den Inhalt als Klartext zurück.– einsamer Tag
1. Februar 2013 um 14:49