簡體   English   中英

如何從一堆html頁面中刪除特定行?

[英]How to remove particular line from a bunch of html pages?

我有一堆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, "");

但沒有工作。

謝謝

如果是PHP錯誤。 它被扔到服務器端 ,很早在客戶端看到它並且JavaScript有時間對其采取行動之前。 因此,沒有JavaScript可以解決這個問題。

因此,這里的解決方案是在源代碼處修改或刪除行 ,因為在短標簽打開時, 該行在語法上不正確。

如果您的托管服務提供商允許您編輯php.ini ,則可以執行short_open_tag=Off 但這還會導致任何其他<? ... ?> <? ... ?> PHP塊停止工作。

您遇到的問題是,實時系統上的PHP解釋器已打開“ short_tags”,因此它解釋<? 作為PHP標記的開始。

您將無法對頁面進行任何操作,因為它們將永遠不會被加載。 最好的選擇是在開發機器上編寫腳本進行更改,然后它們重新上傳更改的頁面。

腳本的外觀很大程度上取決於您在本地使用的操作系統。

首先,出現錯誤的原因是服務器出於某種原因允許使用短標簽。 <? 為您的服務器意味着與<?php相同。 充其量是有問題的,但最好禁用它。

現在,有成千上萬的程序可以在文件中查找和替換。 sed是這樣一種受歡迎的程序,因此,您可以執行以下操作:

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

sed -i選項使它可以替換文件,因此您可能要先創建一個備份。

在Linux或Macintosh上。

我在SO上找到了該線程。 如何使用Windows命令行環境查找和替換文件中的文本? 關於在Windows上執行相同的操作,但可能您的代碼編輯器也可以執行此操作。

如果您可以訪問php.ini,則必須執行以下操作:

打開並設置:

short_open_tag的值為=開

short_open_tag的值為=關閉

否則,將該行更改為

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

編輯:如果您沒有該訪問權限,則可以嘗試這種骯臟的方式:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM