There are similar questions in SO, but I couldn\'t find any exactly like this. I need to remove everything up to (and including) a particular delimiter. For example, given t
Sample String:
$string = 'value:90|custom:hey I am custom message|subtitute:array';
convert string to array
$var = explode('|', $string);
Check Results:
Array(
[0] => value:90
[1] => custom:hey I am custom message
[2] => subtitute:array)
Declare an array variable
$pipe = array();
Loop through string array $var
foreach( $var as $key => $value ) {
// get position of colon
$position = strrpos( $value, ':' );
// get the key
$key = substr( $value, 0, $position );
//get the value
$value = substr( $value, $position + 1 );
$pipe[$key] = $value; }
Final Result:
Array(
[value] => 90
[custom] => hey I am custom message
[subtitute] => array)
Use this preg_replace call:
$str = 'File:MyFile.jpg';
$repl = preg_replace('/^[^:]*:/', '', $str); // MyFile.jpg
OR else avoid regex and use explode like this:
$repl = explode(':', $str)[1]; // MyFile.jpg
EDIT: Use this way to avoid regex (if there can be more than one : in string):
$arr = explode(':', 'File:MyFile.jpg:foo:bar');
unset($arr[0]);
$repl = implode(':', $arr); // MyFile.jpg:foo:bar
Shorter codes:
To return everything BEFORE the FIRST occurence of a character, use strtok
. Example:
strtok(16#/en/go, '#')
will return 16
To return everything AFTER the FIRST occurence of a character, use strstr
. Example:
strstr(16#/en/go, '#')
will return #/en/go
(Includes search character
'#')substr(strstr(16#/en/go, '#'), 1)
will return /en/go
To return everything AFTER the LAST occurrence of a character, use strrchr
. Example:
strrchr(16#/en/go, '/')
will return /go
(Includes search character
'/')substr(strrchr(16#/en/go/, '/'), 1)
will return go
$str = "File:MyFile.jpg";
$position = strpos($str, ':');//get position of ':'
$filename= substr($str, $position+1);//get substring after this position
Two simple ways:
$filename = str_replace('File:', '', 'File:MyFile.jpg');
or
$filename = explode(':', 'File:MyFile.jpg');
$filename = $filename[1];
You could use explode
to do this: link.
Something like:
$string = "File:MyFile.jpg";
list($protocol,$content) = explode(":", $string);
echo $content;