如何从一堆html页面中删除特定行?

时间:2012-10-27 10:24:57

标签: javascript html php

我有一堆HTML页面,每页都包含一行在页面顶部,行是

<?xml version="1.0" encoding="UTF-8" ?>
当我在localhost上运行时,

页面打开得很好,现在我已经将文件上传到服务器了,它给了我一个错误。错误是,

Parse error: syntax error, unexpected T_STRING in /home/a7597163/public_html/secretary.html on line 1

当我删除此行时,页面显示没有任何错误,但问题是我无法手动删除每一行,有人可以告诉我如何从每个页面中删除该行...我尝试使用此

document.body.innerHTML = document.body.innerHTML.replace( /<?xml version="1.0" encoding="UTF-8" ?>/g, "");

但没有奏效。

由于

4 个答案:

答案 0 :(得分:2)

如果是PHP错误。它正在被服务器端抛出,远在客户端看到它之前,JavaScript有时间对其进行操作。所以没有JavaScript可以解决这个问题。

所以在这里,解决方案是修改或者强烈地删除源代码,因为当打开短标签时,PHP文件本身在语法上是不正确的。

如果您的托管服务提供商允许您修改 php.ini ,则可以执行short_open_tag=Off。 但这也会导致任何其他<? ... ?> PHP块停止工作。

答案 1 :(得分:1)

您遇到的问题是您的实时系统上的PHP解释器已启用“short_tags”,因此它会将<?解释为PHP标记的开头。

您将无法对页面进行任何操作,因为它们永远不会被加载。最好的办法是在开发机器上编写一个脚本来进行更改,然后重新上传更改后的页面。

脚本的外观很大程度上取决于您在本地使用的操作系统。

答案 2 :(得分:1)

首先,您收到错误的原因是您的服务器由于某种原因允许使用短标签。即服务器的<?<?php相同。这充其量是个问题,但可能最好禁用它。

现在,有数以万计的程序可以在文件中查找和替换。其中一个受欢迎的程序是sed所以,你可以这样做:

$ find your/project/directory -type f -name "*.html" | sed -i 's/<[?]xml[^>]\+>//'
-i

sed选项使其替换文件,因此您可能需要先创建备份。

在Linux或Macintosh上。

我在SO How can you find and replace text in a file using the Windows command-line environment?上找到了关于在Windows上做同样事情的这个帖子,但是你的代码编辑器也可以这样做。

答案 3 :(得分:0)

如果您有权访问php.ini,则必须执行以下操作:

打开它并设置:

  

short_open_tag的值为=开

  

short_open_tag的值为=关

否则,将该行更改为

<?php echo 'xml version="1.0" encoding="UTF-8"'; ?>

编辑: 如果您没有该访问权限,可以尝试这种方式:

<<??>?xml version="1.0" encoding="utf-8"?>