ฉันไม่แน่ใจว่าทำไมถึงไม่ได้กล่าวถึงในรายการคำตอบ ขออภัยถ้าฉันใช้เวลา 2 ปีในการดูคำถามนี้ ...
วิธีที่ง่ายและมีประสิทธิภาพมากที่สุดที่จะทำในสิ่งที่คุณต้องการจะทำสิ่งที่คุณต้องการจะใช้ตัวกรองอาปาเช่
เพียงแค่มี:
ExtFilterDefine css_changer mode=output intype=text/html cmd="/some/php/script.php"
SetOutputFilter css_changer
สคริปต์ที่เป็นไปได้:
#!/usr/bin/php
<?
#phpinfo(); // Uncomment to see ALL env variables
$host = $_ENV["HTTP_HOST"]; // www.site.com
$script_name = $_ENV["SCRIPT_NAME"]; // /theme/green/style.css
$pi = pathinfo($script_name);
$type = $pi['extension'];
#print "$host $script $type";
$stdin = STDIN;
while($line = fgets($stdin)){
$line = preg_replace('/a/', 'A', $line);
fwrite(STDOUT, $line);
}
fclose(STDOUT);
?>
สิ่งนี้จะเปลี่ยน "a" s ทั้งหมดเป็น "A"
อย่าลืมเปิดใช้งานตัวกรองใน httpd.conf เช่นนี้:
LoadModule ext_filter_module libexec/apache2/mod_ext_filter.so
คำถามนี้ได้รับการจัดอันดับอย่างแท้จริงใน Google และมีไม่มากในแง่ของฟอรัม