You are here: Re: preg_replace backreference value as a key to array « PHP Programming Language « IT news, forums, messages
Re: preg_replace backreference value as a key to array

Posted by Chung Leong on 09/14/06 20:28

Dave wrote:
> Hi,
>
> This is an interesting problem I'm faced with. I have been trying all sorts
> of functions to fix it and my last resort is to ask you guys and girls.
>
> I have an array:
> $arr([3]=>"aaa",[104]=>"bbb",[345]=>"ccc",[n]=>"etc");
> $html='<html>....<a href="page.php?var=3">3</a><a
> href="page.php?var=345">345</a> ...<a
> href="page.php?var=n">n</a>...</html>';
>
> I'm trying to get a value from URLs in HTML and use it as a key to output
> the value of $arr.
> i.e. matching the: /page.php?var=(345)/ will output: "ccc";
>
> Here is what I've tried but can't quite get there:
> $html=preg_replace('/(href="page\.php\?)(var=)([0-9]+)/si','\\1var=' .
> eval('\$c=\'\3\'; return \$c;'),$html);
> Outputs the matched var: i.e. 345, but:
>
> $html=preg_replace('/(href="page\.php\?)(var=)([0-9]+)/si','\\1var=' .
> eval('\$c=\'\3\'; return \$arr[\$c];'),$html);
> Won't output anything.
>
> I tried to see if the backreferencfe value is really what it seems
> (integer), but when I do:
> $html=preg_replace('/(href="page\.php\?)(var=)([0-9]+)/si','\\1var=' .
> eval('\$c=\'\3\'; \$c=gettype(\$c); return \$c;'),$html);
> it shows it's a string. If I try: \$c*1, outputs is 0. If I try
> settype(\$c,"integer"), the output again is 0.
>
> Another strange thing. This: "return \$c;" returns the 345, but return
> strlen(\$c); returns 2.
>
> Please, save me from this madness! :)

Read the following:

http://fi.php.net/manual/en/function.parse-url.php
http://fi.php.net/manual/en/function.parse-str.php

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация