On 18 May 2010 13:32, Ashley Sheridan <a...@ashleysheridan.co.uk> wrote:
> On Tue, 2010-05-18 at 13:09 +0200, Peter Lind wrote:
> On 18 May 2010 12:35, Andre Polykanine <an...@oire.org> wrote:
> > Hello Peter,
> > Hm... I see I need to specify what I'm really doing. Actually, I need
> > to change the letters in the text. It's a famous and ancient crypting
> > method: you divide the alphabet making two parts, then you change the
> > letters of one part with letters for other part (so A becomes N, B
> > becomes O, etc., and vice versa). it works fine and slightly with
> > strtr or str_replace... but only if the text is not in utf-8 and it
> > doesn't contain any non-English letters such as Cyrillic what I need.
> > What my regex does is the following: it sees an A, well it changes it
> > to N; then it goes through the string and sees an N... what does it
> > do? Surely, it changes it back to A! I hoped (in vain) that there
> > exists a modifier preventing this behavior... but it seems that it's
> > false(
> > Thanks!
> Hmmm, what comes to mind is using your string as an array and
> translating one character after another, building your output string
> using a lookup table. Not entirely sure how that will play with utf8
> characters, you'd have to try and see.
> I don't think you'll get any of PHPs string functions to do the work
> for you - they'll do the job in serial, not parallel.
> WWW: http://plphp.dk / http://plind.dk
> LinkedIn: http://www.linkedin.com/in/plind
> Flickr: http://www.flickr.com/photos/fake51
> BeWelcome: Fake51
> Couchsurfing: Fake51
> If you're wanting to use the Caesar cypher (for that's what it is) then why
> not just modify the entire string, character by character, to use a character
> code n characters ahead. For example, a capital A is ascii 65, you want to
> change it to an N to add 14 to that. Just keep n the same throughout and it's
> easy to convert back.
You probably overlooked the part where the OP points out he's not
using ascii but utf8. If it was just ascii, using str_rot13() would be
the weapon of choice I'd say (note that adding 14 to every character
of an ascii string will turn lots of it into gibberish - you have to
wrap round when you reach a certain point).
WWW: http://plphp.dk / http://plind.dk
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php