Andy
Andy

Reputation: 3021

Split a file name and only take one part for use

I have a $value such as 22214-HAV.jpg or 22214 HAV.jpg (notice no dash)

I want to run a quick function to pull only the number from filename.

Upvotes: 1

Views: 208

Answers (3)

KingCrunch
KingCrunch

Reputation: 132071

A quick solution, which make use of PHPs type juggling

$number = (int) $filename;

Upvotes: 5

Alin P.
Alin P.

Reputation: 44386

preg_match('/^\d+/' ,'22214-HAV.jpg', $matches);
var_dump($matches[0]);

Observations:

  1. This will only match numbers starting exactly from the beginning. Any position can be allowed by removing ^.
  2. This will match any sequence of digits and not actual numbers. Numbers can be restricted by using ([1-9]\d*|0) in place of \d+.
  3. If no match is found $matches[0] will be null and not an empty string.

Further reading:

  1. http://www.php.net/manual/en/function.preg-match.php
  2. http://www.regular-expressions.info/reference.html

Upvotes: 4

nik
nik

Reputation: 3678

You can use explode for this

   //for '-'
            list($reqval)=explode('-', $value); 
    //for space
            list($reqval)=explode(' ', $value); 


        echo $reqval

Upvotes: 1

Related Questions