PHP anında bir HTML web sayfasının içeriğini değiştirme

1 Cevap php

Ben bir HTML belgeyi yüklemek ve PHP metin var değiştirmek istiyorum. Örneğin, böyle bir belge varsa:

<html>
<head><title>Test - Example.com</title></head>
<body>
<p><a href="http://www.example.com">Link number 1: Example.com</a></p>
<p>Link number 2: Example.com - some random text</p>
</body>
</html>

Ben ikinci fıkra aktif link () eklemek istiyorum. Ama ilk paragrafın veya belgenin başlığı gibi Example.com dize oluşur diğer yerlerde, dokunmak istemiyorum. Ben dikkate belgenin yapısını almak gerekir Yani ben, bunun için düzenli ifadeler kullanamazsınız. Bu sorunu çözmek için nasıl Herhangi bir fikir? Ayrıca ben alınacak HTML belgeleri canlı web sayfalarını olabilir, bu yüzden vb hataları, JavaScript kodu, içerebilir

1 Cevap

Bunu yapmak için "doğru" bir şekilde istediğiniz tam olarak bağlantıya aşağı kazmak için XPath'i kullanabilirsiniz sonra, HTML alabilirsiniz PHP'nin DOM nesnesi aracılığıyla olacaktır. Tabii ki, DOM geçersiz biçimlendirme konusunda son derece seçici ve tarayıcılar güzel idare oldukça basit hataları üzerine kustum edebilirsiniz. Eğer DOM aracılığıyla içeriği yuvarlak bozamaz önce hataların kötü düzeltmek için giriş masaj gerekebilir.

Ben buldum kötü stop-dead-in-DOM's-pistlerde hata birden fazla html ve / veya vücut blokları (gerçek sayfa içeriğini önce kendi kendine yeten bloğu yerleştirirken, örneğin bir aptal sunucu) yaşıyor.