PHP 正则表达式婚配替换,导致APACHE停止工作
PHP 正则表达式匹配替换,导致APACHE停止工作
今天发现,模板引擎里的一段代码,当匹配很多的中文文字时,APACHE会停止工作。
$source = "习近平强调,要深入抓好铸魂育人,认真贯彻全军政治工作会议精神,掌握部队思想动态,有针对性抓好思想教育,
引导官兵坚决听党指挥,争做新一代革命军人。要深入抓好练兵备战,强化当兵打仗、带兵打仗思想,培育战斗精神,
抓好实战化军事训练,不断提高履行使命任务能力。要深入抓好正风肃纪,巩固和深化群众路线教育实践活动成果。";
$source=preg_replace("/([^a-zA-Z0-9_]{1,1})+(copy|fputs|fopen|file_put_contents|fwrite|eval|phpinfo)+( |\()/is", "", $source);
var_dump($source);
这一段正则的意思是什么? 把^去掉好像就可以?应该如何解决,谢谢
------解决思路----------------------
([^a-zA-Z0-9_]{1,1})+ 至少匹配一个除了 a-zA-Z0-9的字符
(copy
------解决思路----------------------
fputs
------解决思路----------------------
fopen
------解决思路----------------------
file_put_contents
------解决思路----------------------
fwrite
------解决思路----------------------
eval
------解决思路----------------------
phpinfo)+ 后面紧接这这些函数中的任意一个
(
------解决思路----------------------
\() 后面紧接着空格或“(”
is 不区分大小写,忽略换行
<br />$source = "习近平强调,要深入抓好铸魂育人,认真贯彻全军政治工作会议精神,掌握部队思想动态,有针对性抓好思想教育,<br />引导官兵坚决听党指挥,争做新一代革命军人。要深入抓好练兵备战,强化当兵打仗、带兵打仗思想,培育战斗精神,<br />抓好实战化军事训练,不断提高履行使命任务能力file_put_contents(。要深入抓好正风肃纪,巩固和深化群众路线教育实践活动成果。";<br /><br />$new=preg_replace("/([^a-zA-Z0-9_]{1,1})+(copy<br><font color='#FF8000'>------解决思路----------------------</font><br>fputs<br><font color='#FF8000'>------解决思路----------------------</font><br>fopen<br><font color='#FF8000'>------解决思路----------------------</font><br>file_put_contents<br><font color='#FF8000'>------解决思路----------------------</font><br>fwrite<br><font color='#FF8000'>------解决思路----------------------</font><br>eval<br><font color='#FF8000'>------解决思路----------------------</font><br>phpinfo)+( <br><font color='#FF8000'>------解决思路----------------------</font><br>\()/is", "", $source);<br /><br />echo $new; //。要深入抓好正风肃纪,巩固和深化群众路线教育实践活动成果。<br />
作用可能是替换掉这些函数copy
------解决思路----------------------
fputs
------解决思路----------------------
fopen
------解决思路----------------------
file_put_contents
------解决思路----------------------
fwrite
------解决思路----------------------
eval
------解决思路----------------------
phpinfo
------解决思路----------------------
wamp能运行
^ 是“除了”某某
[^a-zA-Z0-9_] 这表示 除了 a-zA-Z0-9_ 这些字符集合之外的字符都匹配
看起来,也没什么问题,不知道apache停掉的原因,可以看看apache的日志
------解决思路----------------------
打开错误提示没有? 另外,楼主是怎么知道Apache停止工作的。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



To set up a CGI directory in Apache, you need to perform the following steps: Create a CGI directory such as "cgi-bin", and grant Apache write permissions. Add the "ScriptAlias" directive block in the Apache configuration file to map the CGI directory to the "/cgi-bin" URL. Restart Apache.

The steps to start Apache are as follows: Install Apache (command: sudo apt-get install apache2 or download it from the official website) Start Apache (Linux: sudo systemctl start apache2; Windows: Right-click the "Apache2.4" service and select "Start") Check whether it has been started (Linux: sudo systemctl status apache2; Windows: Check the status of the "Apache2.4" service in the service manager) Enable boot automatically (optional, Linux: sudo systemctl

To delete an extra ServerName directive from Apache, you can take the following steps: Identify and delete the extra ServerName directive. Restart Apache to make the changes take effect. Check the configuration file to verify changes. Test the server to make sure the problem is resolved.

This article will explain how to improve website performance by analyzing Apache logs under the Debian system. 1. Log Analysis Basics Apache log records the detailed information of all HTTP requests, including IP address, timestamp, request URL, HTTP method and response code. In Debian systems, these logs are usually located in the /var/log/apache2/access.log and /var/log/apache2/error.log directories. Understanding the log structure is the first step in effective analysis. 2. Log analysis tool You can use a variety of tools to analyze Apache logs: Command line tools: grep, awk, sed and other command line tools.

This article introduces several methods to check the OpenSSL configuration of the Debian system to help you quickly grasp the security status of the system. 1. Confirm the OpenSSL version First, verify whether OpenSSL has been installed and version information. Enter the following command in the terminal: If opensslversion is not installed, the system will prompt an error. 2. View the configuration file. The main configuration file of OpenSSL is usually located in /etc/ssl/openssl.cnf. You can use a text editor (such as nano) to view: sudonano/etc/ssl/openssl.cnf This file contains important configuration information such as key, certificate path, and encryption algorithm. 3. Utilize OPE

There are 3 ways to view the version on the Apache server: via the command line (apachectl -v or apache2ctl -v), check the server status page (http://<server IP or domain name>/server-status), or view the Apache configuration file (ServerVersion: Apache/<version number>).

Apache connects to a database requires the following steps: Install the database driver. Configure the web.xml file to create a connection pool. Create a JDBC data source and specify the connection settings. Use the JDBC API to access the database from Java code, including getting connections, creating statements, binding parameters, executing queries or updates, and processing results.

When the Apache 80 port is occupied, the solution is as follows: find out the process that occupies the port and close it. Check the firewall settings to make sure Apache is not blocked. If the above method does not work, please reconfigure Apache to use a different port. Restart the Apache service.
