我正在尝试将标题数据更改为网址。我需要从以下动态数据中从“截止日期”开始删除所有文本,这些数据来自$ title:
纽约截止日期2010年5月14日(紧急)
新罕布什尔州截止日期2010年5月19日
新泽西截止日期
我希望结果应该是这样的
新约克
新汉普郡
新泽西
这是我试过的代码
$newurl = strip_tags(str_replace("deadline","","$title"));
$code_entities_match = array( '"' ,'!' ,'@' ,'#' ,'$' ,'%' ,'^' ,'&' ,'*' ,'(' ,')' ,'+' ,'{' ,'}' ,'|' ,':' ,'"' ,'<' ,'>' ,'?' ,'[' ,']' ,'' ,';' ,"'" ,',' ,'.' ,'_' ,'/' ,'*' ,'+' ,'~' ,'`' ,'=' ,' ' ,'---' ,'--','--');
$code_entities_replace = array('' ,'-' ,'-' ,'' ,'' ,'' ,'-' ,'-' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'-' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'-' ,'' ,'-' ,'-' ,'' ,'' ,'' ,'' ,'' ,'-' ,'-' ,'-','-');
$newtitle = str_replace($code_entities_match, $code_entities_replace, $newurl);
$urltitle = strtolower($newtitle);
不幸的是,结果是:
新纽约的最后期限-MAY-14-2010紧急
新汉普郡截止日-MAY-19 2010
新泽西 -
任何人都可以提供帮助吗?
答案 0 :(得分:2)
您可以将preg_replace用作:
$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
答案 1 :(得分:2)
这是一种非正则表达方式
$str = 'New York deadline May 14th, 2010 (urgent)';
$title = str_replace( ' ', '-', current( explode( ' deadline', $str ) ) );