eregi_replace help!
| From: | David | Date: | Thu, 06 Dec 2001 02:51:00 +0000 |
| Subject: | eregi_replace help! | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-76817@lists.php.net to get a copy of this message | ||
Hi,
I have a rather annoying eregi_replace which I can't get to work.
I have a string, $page which contains a webpage. In the page links are
denoted like so:
###LINK###Link Name###URL or Section###ELINK###
There are a number of these in $page.
I need to use eregi_replace() to replace the above string with a proper
link:
<a href="URL or Section">Link Name</a>
Not too bad, right?
However, If need to do some manipulation on the "URL or Section" bit.
If it is a URL (begining with "http://", "ftp://", etc) then it just needs
to be put there, ie:
###LINK###PHP###http://www.php.net/###ELINK### = <a
href="http://www.php.net">PHP</a>
But if it is a section on the site like this:
###LINK###Hello###Main.Section 1.Section 2.Hello World###ELINK###
It need to be replaced with this:
<a href="/main.section_1.section_2.hello_world.php">Hello</a>
Here is the rather long (an not working) eregi_replace call I have:
$page = eregi_replace("###LINK##(.*)####(.*)###ELINK###", "<a
href=\".(eregi("^http://", \\2) ? trim(\\2) :
(strtolower(str_replace("\\",
"_", eregi_replace("(/|
|:|\*|\?|<|>|\|)","_",trim(\\2)))).".php")).">\\1</a>",
$page);
1. I dont think the regular express is really right
2. I'm getting the message "Warning: Unexpected character in input: '\'
(ASCII=92) state=1 in c:\users\david\help\www\generate.php on line 24"
serval times, which is the above line.
Any ideas on how to make this work would be great! Thanks!
Regards,
David