2011-04-20 120 views
0

我該如何保留p =並在其上面添加OR /20?我的意思是我想檢查兩個字符串。如何在stripos中添加if語句?

<?php if (false==stripos(get_permalink($post->ID), 'p=')) { ?> 
+1

BTW使用===運算符來檢查錯誤值的原因STR(I)POS還可以返回0 – PeeHaa 2011-04-20 21:37:12

+0

更重要的是,只是避免'完全stripos'。 PHP有一個叫''stristr'](http://php.net/stristr)的可愛函數,它不需要布爾平等探測。 – mario 2011-04-20 21:44:04

+0

@mario:我認爲strpos速度更快,內存使用更少 – PeeHaa 2011-04-20 21:49:45

回答

1

你不能用一個單一的通話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()可以返回0false - 而那些意思不一樣。

+0

你的意思就像'if(false == stripos(get_permalink($ post-> ID),'p ='))|| if(false == stripos(get_permalink($ post-> ID),'/ 20'))'? – EnexoOnoma 2011-04-20 21:36:53

+0

@Punkis不,我的意思是在一個條件下將兩個stripos()調用相結合 - 我用一個示例編輯了我的答案。 – 2011-04-20 21:38:50

+0

我不知道我不能得到它的工作..這是工作時,我只有P =雖然 – EnexoOnoma 2011-04-20 21:45:28

0

你必須兩次調用它:

if( false===stripos(get_permalink($post->ID), 'p=') || 
    false===stripos(get_permalink($post->ID), '/20') 
) {