在php中提取字符串的不同部分

在php中提取字符串的不同部分,php,string,strip,Php,String,Strip,我有一个网站,其所有故事的标题如下: new job alert from chicago {latest reservation : 3/5/2011} new job alert from NY {latest reservation : 3/4/2011} new job alert from LA {latest reservation : 3/3/2011} 现在在php中,我需要提取最新的预订部分 $atest_reservation = ? $story_title_witho

我有一个网站,其所有故事的标题如下:

new job alert from chicago {latest reservation : 3/5/2011}
new job alert from NY {latest reservation : 3/4/2011}
new job alert from LA {latest reservation : 3/3/2011}
现在在php中,我需要提取最新的预订部分

$atest_reservation = ?

$story_title_without_reservation_date = ?
我尝试了strstr或preg_replace等功能,但未能成功实现我的目标

谢谢

试试看

substr ( string $string , int $start [, int $length ] )
为了获得前16个字符,需要

substr ($string , 0, 15 )
因此,请尝试将所有字符串保存在变量或数组中,并使用此函数获取所需的任何部分

如果您有任何疑问,请在下面发表评论:

试试看

substr ( string $string , int $start [, int $length ] )
为了获得前16个字符,需要

substr ($string , 0, 15 )
因此,请尝试将所有字符串保存在变量或数组中,并使用此函数获取所需的任何部分


如果您有任何疑问,请在下面发表评论:

我不确定您具体想提取哪些部分,但以下内容应该可以:

preg_match_all/new.*from.*{最新预订:.*}/,$data,$matches


如果我正确地读取了工作通知名称、城市和通知日期,那么这将与匹配。它将匹配所有的部分,但如果您逐行进行此操作,则可以使用标准的preg_匹配,而不是preg_match_all。

我不确定您在特定情况下尝试提取哪些部分,但以下操作应该可以:

preg_match_all/new.*from.*{最新预订:.*}/,$data,$matches

如果我正确地读取了工作通知名称、城市和通知日期,那么这将与匹配。它将匹配所有这些项,但如果您逐行执行此操作,则可以使用标准预匹配,而不是预匹配所有项。

简单,请执行以下操作:

$entry = "new job alert from chicago {latest reservation : 3/5/2011}"

$string = explode("{", $entry);
echo $string[0]; // new job alert from chicago 
echo $string[1]; // latest reservation : 3/5/2011}
然后根据需要进行清理。

简单,请执行以下操作:

$entry = "new job alert from chicago {latest reservation : 3/5/2011}"

$string = explode("{", $entry);
echo $string[0]; // new job alert from chicago 
echo $string[1]; // latest reservation : 3/5/2011}
$str = 'new job alert from LA {latest reservation : 3/3/2011}';

preg_match('/^(.*) \{latest reservation : ([^\}]*)\}$/', $str, $matches);

list(,$story_title_without_reservation_date, $latest_reservation) = $matches;

// $story_title_without_reservation_date = "new job alert from LA"
// $latest_reservation = "3/3/2011"
然后根据需要进行清理。

另一种选择是使用

$str = 'new job alert from LA {latest reservation : 3/3/2011}';

preg_match('/^(.*) \{latest reservation : ([^\}]*)\}$/', $str, $matches);

list(,$story_title_without_reservation_date, $latest_reservation) = $matches;

// $story_title_without_reservation_date = "new job alert from LA"
// $latest_reservation = "3/3/2011"
另一个选择是使用


在{上爆炸,然后剥去}在{上爆炸,然后剥去}你如何计算16个字符?他想将标题与日期分开,但不确定这是如何解决的。通过这个,他可以得到前15个字符,这是一个示例,以便让他找到正确的索引和长度。我知道这不是一个有效的答案,因为他的str长度未知,他只想将他得到的字符串分成两段,一个有标题,一个有日期,你的答案和这两个都不一样。你怎么计算16个字符?他想将标题与日期分开,但不确定这是如何解决的。通过这个,他可以得到前15个字符,这是一个示例,以便让他找到正确的索引和长度。我知道这不是一个有效的答案,因为他的str长度未知,他只想将他得到的字符串分成两段,一个有标题,一个有日期,你的答案都不符合。