我在facebook open graph api上工作,用户可以在时间轴上发布视频。 现在我们播放视频的页面我们称之为视频播放页面,我们动态生成元属性。过程如
现在,在为页面生成元信息时,我们首先检查meta_seo表上是否有某些信息,如果找到,我们生成元标记,否则从视频对象中检索它们,这也将包含一些信息,因此FB og:title我们有一些关于视频标题的信息。
使用开放图形API在FB时间轴上发布效果非常好。
但是发布的标题需要进行一些更改。
视频标题可采用此格式存储在数据库中。
因此,当我们将视频发布到FB时间线时,某些视频可能在标题的最后没有mysite.com。但我们需要始终追加mysite.com。
基于以上可能性,我编写了一个脚本
$haystack1 = "Title1- Online class - mysite.com";
$haystack2 = "Title2 - Online Class";
$needle = 'mysite.com';
if(strripos($haystack1,$needle) === false){
echo $haystack1.' | '.'MySite.com';
}else{
echo $haystack1 ;
}
if(strripos($haystack2,$needle) === false){
echo $haystack2.' | '.'MySite.com';
}else{
echo $haystack2 ;
}
以上代码效果很好。但我的问题是,有没有更好的方法来实现这一点,或者我可以按照我上面指出的方式来实现。
我没有将此标记为Facebook,因为它与Facebook没有关系,也没有任何问题在FB或图形api /开放图上发布。
答案 0 :(得分:1)
您可以使用正则表达式来提高灵活性:
if (preg_match('/\s*(-|\|)?\s*'.str_replace('.', '\.', $needle).'\s*$/i', $haystack1)) {
// do something if exists
echo $haystack1;
} else {
echo $haystack1.' | '.'MySite.com';
}
因此脚本将输出:
video title1 => video title1 | MySite.com
video title2 => video title2 | MySite.com
video title - mysite.com => video title - mysite.com
video title | MySite.com => video title | MySite.com
你需要吗?或者您想通过 |替换 - mysite.com MySite.com 也是?
我建议使用数组存储干草堆,然后在foreach中使用我的答案。