Computer Webmaster Gaming Console Graphics Forum

Welcome to the Computer Webmaster Gaming Console Graphics Forum forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

MK PitStop Main Earn $25 Earn Money Posting Extras Members Blogs Image Hosting User Pages
Go Back   Computer Webmaster Gaming Console Graphics Forum > Webmaster Forum > Website Coding > PHP
Register FAQ/Rules Become A V.I.P. Member Search Today's Posts Mark Forums Read

PHP PHP for some can be one of the hardest website programming codes, so do you need help on your PHP script, if it is php4, php5 or lower this is the place for you for any PHP help.

Google
Reply
 
LinkBack Thread Tools Display Modes
Old 05-20-2007, 5:33 PM   #1
Patrick
 
Patrick's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default split with regex

Hello All,

Been beating my head on the wall trying to get this working. Especially
because of my *tweener level of php and regex experience.

I have this $filename = C17AA001.000

I want to split it like this $a = C17AA $b = 001 $c = .000

I have tried this but can't get it to work.

list($a, $b, $c,) = split("^[0-9a-zA-Z]{5}[0-9]{3}\.[0-9]{3}",$filename);

echo $a;
echo $b;
echo $c;

What am I missing here? Two days of googling and php.net have not
cleared me up.

Patrick



*tweener - between novice and guru
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Advertisements
Old 05-20-2007, 5:33 PM   #2
Tom
 
Tom's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default split with regex

On Fri, 04 May 2007 13:35:19 -0400, Patrick wrote...
>
>Hello All,
>
>Been beating my head on the wall trying to get this working. Especially
>because of my *tweener level of php and regex experience.
>
>I have this $filename = C17AA001.000
>
>I want to split it like this $a = C17AA $b = 001 $c = .000
>
>I have tried this but can't get it to work.
>
>list($a, $b, $c,) = split("^[0-9a-zA-Z]{5}[0-9]{3}\.[0-9]{3}",$filename);
>
>echo $a;
>echo $b;
>echo $c;
>
>What am I missing here? Two days of googling and php.net have not
>cleared me up.
>
>Patrick
>
>
>
>*tweener - between novice and guru


If the text is always in the format, including number of characters, the substr
function may be easier to work with...

$a = substr('C17AA001.000', 0, 4);
$b = substr('C17AA001.000', 5, 7);
$c = substr('C17AA001.000', 8, 11);

Tom
--
Newsguy.com - Basic Accounts $39.95 / 12 months

 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Old 05-20-2007, 5:33 PM   #3
Rami Elomaa
 
Rami Elomaa's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default split with regex

Patrick kirjoitti:
> Hello All,
>
> Been beating my head on the wall trying to get this working. Especially
> because of my *tweener level of php and regex experience.
>
> I have this $filename = C17AA001.000
>
> I want to split it like this $a = C17AA $b = 001 $c = .000
>
> I have tried this but can't get it to work.
>
> list($a, $b, $c,) = split("^[0-9a-zA-Z]{5}[0-9]{3}\.[0-9]{3}",$filename);
>
> echo $a;
> echo $b;
> echo $c;
>
> What am I missing here? Two days of googling and php.net have not
> cleared me up.


The reg ex argument you give to split is not the entire string pattern,
just the delimiter. You tell what pattern splits the string into pieces.
Now you're giving it the entire string pattern that does match the
whole string but so it basicly splits the string into two, the empty
before the string and the empty after the string.

You should be using preg_match 'stead of split. Try something like this:

preg_match("^[0-9a-zA-Z]{5}[0-9]{3}\.[0-9]{3}",$matches,$filename);
list($a, $b, $c,) = $matches;

HTH

--
Rami.Elomaa@gmail.com

"Wikipedia on vähän niinq internetin raamattu, kukaan ei pohjimmiltaan
usko siihen ja kukaan ei tiedä mikä pitää paikkansa." -- z00ze
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Old 05-20-2007, 5:33 PM   #4
Aerik
 
Aerik's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default split with regex

You're using split wrong - it's for "splitting it on boundaries formed
by the case-sensitive regular expression" - the regex is the dividing
boundary, not the text you're matching.

Try this:

$filename = 'C17AA001.000';
preg_match("/([0-9a-zA-Z]{5})([0-9]{3})(\.[0-9]{3})/",$filename,
$matches);
//print_r($matches);
list($x, $a, $b, $c,) = $matches;//discard x
echo $a;
echo $b;
echo $c;

Aerik (a tweener myself)
http://www.wikidweb.com - the Wiki Directory of the Web


 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Old 05-20-2007, 5:33 PM   #5
Patrick
 
Patrick's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default split with regex

Aerik wrote:

> You're using split wrong - it's for "splitting it on boundaries formed
> by the case-sensitive regular expression" - the regex is the dividing
> boundary, not the text you're matching.
>
> Try this:
>
> $filename = 'C17AA001.000';
> preg_match("/([0-9a-zA-Z]{5})([0-9]{3})(\.[0-9]{3})/",$filename,
> $matches);
> //print_r($matches);
> list($x, $a, $b, $c,) = $matches;//discard x
> echo $a;
> echo $b;
> echo $c;
>
> Aerik (a tweener myself)
> http://www.wikidweb.com - the Wiki Directory of the Web
>
>


Sweet and thanks. That did it for me. And being able to get that part
working allowed me to finish and successfully test my php script which
basically renames a directory of files from

this

C17AC000.000
C17AC001.000
C17AC002.000
C17AC003.000
C17AC004.000
C17AC005.000
C17AC006.000

to this

C17AC.000
C17AC.001
C17AC.002
C17AC.003
C17AC.004
C17AC.005
C17AC.006

Regards,
Patrick
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Featured Websites
Free Space
Free Space
Free Space Free Space
Reply
Tags: ,




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Featured Websites




All times are GMT +1. The time now is 10:10 PM.


Powered by: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.0.0
Cheap Computers
MK PitStop Copyright 2005 - 2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98