str_replace问题

I am trying to change title data into URL. I need to get rid off all text starting from "deadline" from the following dynamic data which I get from $title:

New York deadline May 14th, 2010 (urgent)
New Hampshire deadline May 19th, 2010
New Jersey deadline

I expect the result should be like this
new-york
new-hampshire
new-jersey

Here is the code I have tried

$newurl = strip_tags(str_replace("deadline","","$title"));
$code_entities_match = array( '&quot;' ,'!' ,'@' ,'#' ,'$' ,'%' ,'^' ,'&' ,'*' ,'(' ,')' ,'+' ,'{' ,'}' ,'|' ,':' ,'"' ,'<' ,'>' ,'?' ,'[' ,']' ,'' ,';' ,"'" ,',' ,'.' ,'_' ,'/' ,'*' ,'+' ,'~' ,'`' ,'=' ,' ' ,'---' ,'--','--');
$code_entities_replace = array('' ,'-' ,'-' ,'' ,'' ,'' ,'-' ,'-' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'-' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'-' ,'' ,'-' ,'-' ,'' ,'' ,'' ,'' ,'' ,'-' ,'-' ,'-','-');
$newtitle = str_replace($code_entities_match, $code_entities_replace, $newurl);
$urltitle = strtolower($newtitle);

Unfortunately, the results are:
new-york-deadline-may-14th-2010-urgent
new-hampshire-deadline-may-19th-2010
new-jersey-

Anyone can help?

You can use preg_replace as:

$str = 'New York deadline May 14th, 2010 (urgent)';

$to = array('/deadline.*/','/^\s+|\s+$/','/\s+/');
$from = array('','','-');
$str = strtolower(preg_replace($to,$from,$str));

echo $str; // prints new-york

Here's a non-regex way

$str = 'New York deadline May 14th, 2010 (urgent)';
$title = str_replace( ' ', '-', current( explode( ' deadline', $str ) ) );