<hr>I want to remove this text.<embed src="stuffinhere.html"/>
I tried using regex but nothing works.
Thanks in advance.
P.S. I tried this: $str = preg_replace('#(<hr>).*?(<embed)#', '$1$2', $str)
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You’ll get a lot of advice to use an HTML parser for this kind of thing. You should do that.
The rest of this answer is for when you’ve decided that the HTML parser is too slow, doesn’t handle ill formed (i.e. standard in the wild) HTML, or is a pain in the ass to integrate into the system you don’t control. I created the following small shell script
and it did remove the text, so I’d check your source documents and any other PHP code around your RegEx. You’re not feeding preg_replace the string you think you are. My best guess is your source document has irregular case, or there’s whitespace between the <hr /> and <embed>. Try the following regular expression instead.
The “i” modifier says “make this search case insensitive”. The “s” modifier says “the [.] character should also match my platform’s line break/carriage return sequence”
But use a proper parser if you can. Seriously.