Ist es notwendig, in Kopfzeilen nach ‘Content-Type’ zu suchen?

Es gab eine ältere Frage, die ich beantworte, wenn jemand die HTTP- und HTTPS-Protokolle von den URLs ihrer Website entfernen wollte:

add_action( 'plugins_loaded', 'output_buffering' ); function output_buffering() { ob_start( 'remove_protocols' ) ); } function remove_protocols( $buffer ) { $content_type = NULL; foreach ( headers_list() as $header ) { if (strpos( strtolower( $header ), 'content-type:' ) === 0 ) { $pieces = explode( ':', strtolower( $header ) ); $content_type = trim( $pieces[1] ); break; } } if ( is_null( $content_type ) || substr( $content_type, 0, 9 ) === 'text/html' ) { $return = preg_replace( '~=\s*["\']\s*https?:(.*?)["\']~i', '="$1"', $buffer ); if ( $return ) { $buffer = $return; } } return $buffer; } 

Als Ergebnis gibt es Folgendes:

   Some Link Some Alt 

Allerdings habe ich die remove_protocols() -function vereinfacht, die mir die gleichen Ergebnisse liefert:

 function remove_protocols( $buffer ) { $buffer = preg_replace( '~=\s*["\']\s*https?:(.*?)["\']~i', '="$1"', $buffer ); return $buffer; } 

Muss ich in meiner ursprünglichen function nach content-type in Kopfzeilen suchen? Bei einigen Nachforschungen fand ich eine ähnliche Frage zu Stack Overflow, die von der Situation abhängt. Ich gehe davon aus, dass es sicher wäre, stattdessen meine vereinfachte Version zu verwenden, aber ich würde gerne eine Bestätigung erhalten, wenn ich das richtig verstehe.

Solutions Collecting From Web of "Ist es notwendig, in Kopfzeilen nach ‘Content-Type’ zu suchen?"

Im Zusammenhang mit dieser Frage ist es ja so. Wenn Sie den Header des Inhaltstyps nicht überprüfen, wissen Sie nicht, ob es sich um eine HTML-Seite oder ein Bild handelt, und obwohl es unwahrscheinlich ist, dass die Regex mit einem Bild übereinstimmt, besteht das Risiko.

Eine andere Möglichkeit, diesen Code zu schreiben, ist, ihn an template_redirect oder sogar an get_header zu get_header , um 100% sicher zu sein, dass es sich um HTML-Seiten handelt und nicht um RSS, JSON, XML usw., für die diese URL-Transformation nicht erforderlich ist herzlich willkommen.

Wenn du noch einmal auf die ursprüngliche Frage zurückblickst, wirst du es natürlich auch auf den Admin-Seiten haben wollen … also ist deine ursprüngliche Lösung vielleicht die umfassendste, die tatsächlich sein kann.

OTOH, und nicht sehr mit dieser Frage verwandt, könnten Sie damit enden, zu viel zu ersetzen, wie die kanonische URL, die das doppelte Inhaltsproblem verursachen könnte.