我该如何保留p =并在其上面添加OR /20?我的意思是我想检查两个字符串。如何在stripos中添加if语句?
<?php if (false==stripos(get_permalink($post->ID), 'p=')) { ?>
我该如何保留p =并在其上面添加OR /20?我的意思是我想检查两个字符串。如何在stripos中添加if语句?
<?php if (false==stripos(get_permalink($post->ID), 'p=')) { ?>
你不能用一个单一的通话stripos()
串的两个部分测试:你必须调用stripos()
两次。
取决于你究竟想达到(不知道我真的undertand问题),你会&&
或||
结合这两个:
$link = get_permalink($post->ID);
if (stripos($link, 'p=')!==false && stripos($link, '/20')!==false) {
// the link contains both p= AND /20
}
或:
$link = get_permalink($post->ID);
if (stripos($link, 'p=')!==false || stripos($link, '/20')!==false) {
// the link contains p= OR (inclusive) /20
}
作为旁注:您应该使用===
或!==
,因为stripos()
可以返回0
或false
- 而那些意思不一样。
你的意思就像'if(false == stripos(get_permalink($ post-> ID),'p ='))|| if(false == stripos(get_permalink($ post-> ID),'/ 20'))'? – EnexoOnoma 2011-04-20 21:36:53
@Punkis不,我的意思是在一个条件下将两个stripos()调用相结合 - 我用一个示例编辑了我的答案。 – 2011-04-20 21:38:50
我不知道我不能得到它的工作..这是工作时,我只有P =虽然 – EnexoOnoma 2011-04-20 21:45:28
你必须两次调用它:
if( false===stripos(get_permalink($post->ID), 'p=') ||
false===stripos(get_permalink($post->ID), '/20')
) {
BTW使用===运算符来检查错误值的原因STR(I)POS还可以返回0 – PeeHaa 2011-04-20 21:37:12
更重要的是,只是避免'完全stripos'。 PHP有一个叫''stristr'](http://php.net/stristr)的可爱函数,它不需要布尔平等探测。 – mario 2011-04-20 21:44:04
@mario:我认为strpos速度更快,内存使用更少 – PeeHaa 2011-04-20 21:49:45