Piszę skrypt, który pobiera stronę internetową i wykrywa, ile razy używa się takich rzeczy jak przycisk na facebooku. Ponieważ najlepiej byłoby to zrobić z DOM, postanowiłem użyć DOMDocument PHP.Przestrzenie nazw DOMDocument PHP
Jeden problem mam natknąć, choć jest dla elementów, takich jak Facebook jest jak przycisk:
<fb:like send="true" width="450" show_faces="true"></fb:like>
Ponieważ ten element technicznie posiada przestrzeń nazw „fb” DOMDocument generuje ostrzeżenie mówiąc to namespace prefix Nie określono. Następnie przystępuje do zerwania prefiksu, więc kiedy dojdę do tego elementu, jego znacznik nie jest już fb: jak, ale zamiast tego jak.
Czy istnieje sposób "wstępnej rejestracji" obszaru nazw? Jakieś sugestie?
to brzmiało jak bardzo proste rozwiązanie, więc zdecydowałem się na jego uruchomienie.Tutaj jest kod, który zakończył się dla każdego, kto nienawidzi regex.'// zapisz dowolne nazwy rozmieszczone w oddzielnych elementach, abyśmy mogli ponownie je dodać później' '$ postContent = preg_replace ('/ <(\ w +): (\ w +) /', '<\ 1 namespace =" \ 2 " ", $ postContent);' '// ponownie skonstruuj dowolne znaczniki z odstępami między nazwami ' ' $ postContent = preg_replace ('/<(\ w +) namespace = "(\ w +)"/',' <\ 1 : \ 2 ', $ postContent); ' – lupos