编写一个php文件来更新网页中的HTML


Writing a php file to update HTML in web page

我需要写一个php文件,我可以'包括'在一个网页。当我在任何页面上包含该文件时,我需要它解析页面中的HTML,并向页面中的所有img元素添加一个新的CSS类。

问题是,我的朋友们,这是可能的吗?请记住,我希望能够通过简单地包含我的php文件来对许多页面执行此操作。

谢谢! !

这个要在服务器端用PHP完成吗?因为在客户端使用Javascript更容易完成,因为HTML已经形成了。你可以包含这段javascript

// Plain javascript example
function addImgClass() {
  var images = document.getElementsByTagName("img");
  var numImg = images.length;
  for (var i=0; i<numImg; i++) {
    images[i].className = images[i].className + " " + "your-new-CSS-class";
  }
}
<!-- add to your html -->
<body onload="addImgClass();">
 etc. etc.

或者如果你已经在使用jQuery,那就更容易了。如果您恰好有Dojo或Prototype可供使用,其他Javascript框架也可以实现相同的功能,但语法略有不同。

// jQuery example
$(document).ready(function() {
  $("img").addClass("your-new-CSS-class");
});

是和不是。

不,因为你不能简单地在你的页面中包含一个php文件,并让它处理其他内容…这是不可能的,因为HTML内容不会被PHP处理,而是直接输出。

是的,你可以间接地做到这一点:例如,将HTML加载到PHP的DOM文档中,修改它,并输出结果结构。

然而,正如Michael所提到的,这是更好的完成客户端Javascript…这样做的好处是,你将在最终形成的HTML上工作;(唯一的)缺点是,如果JS被禁用(虽然现在不太可能),它将无法工作。

这很容易实现,也是PHP的一大优点。然而,要记住的一件事是,如果你包含另一个文件的文件是一个.html文件,它不会被PHP解析,所以include不会被找到;确保你所有的文件都是.php,并为每个文件设置适当的标题,如果它是一个CSS文件,说。

正如@Michael在评论中指出的那样,可以告诉PHP解析器查找.html文件,但是最好的做法是只让它解析本地.php文件。