may be by following functions will be easier to extract the needed sub parts from a string:
<?php
after ('@', 'biohazard@online.ge');
before ('@', 'biohazard@online.ge');
between ('@', '.', 'biohazard@online.ge');
after_last ('[', 'sin[90]*cos[180]');
before_last ('[', 'sin[90]*cos[180]');
between_last ('[', ']', 'sin[90]*cos[180]');
?>
here comes the source:
<?php
function after ($this, $inthat)
{
if (!is_bool(strpos($inthat, $this)))
return substr($inthat, strpos($inthat,$this)+strlen($this));
};
function after_last ($this, $inthat)
{
if (!is_bool(strrevpos($inthat, $this)))
return substr($inthat, strrevpos($inthat, $this)+strlen($this));
};
function before ($this, $inthat)
{
return substr($inthat, 0, strpos($inthat, $this));
};
function before_last ($this, $inthat)
{
return substr($inthat, 0, strrevpos($inthat, $this));
};
function between ($this, $that, $inthat)
{
return before ($that, after($this, $inthat));
};
function between_last ($this, $that, $inthat)
{
return after_last($this, before_last($that, $inthat));
};
function strrevpos($instr, $needle)
{
$rev_pos = strpos (strrev($instr), strrev($needle));
if ($rev_pos===false) return false;
else return strlen($instr) - $rev_pos - strlen($needle);
};
?>