我有这段代码:
$getClass = $params->get('pageclass_sfx');
var_dump($getClass); die();
上面的代码返回:
string(24) "sl-articulo sl-categoria"
如何检索我想要的特定单词而不考虑其位置?
我见过人们为此使用数组,但这取决于您输入这些字符串的位置(我认为),这些位置可能会有所不同。
例如:
$myvalue = $params->get('pageclass_sfx');
$arr = explode(' ',trim($myvalue));
echo $arr[0];
$arr[0]
会返回:sl-articulo
$arr[1]
会返回:sl-categoria
感谢。
答案 0 :(得分:2)
你可以将strtr与strpos结合使用:
$word = 'sl-categoria';
$page_class_sfx = $params->get('page_class_sfx');
if (false !== ($pos = strpos($page_class_sfx, $word))) {
// stupid because you already have the word... But this is what you request if I understand correctly
echo 'found: ' . substr($page_class_sfx, $pos, strlen($word));
}
如果您已经知道这个词,不确定是否要从字符串中获取单词...您想知道它是否在那里? false !== strpos($page_class_sfx, $word)
就足够了。
答案 1 :(得分:0)
如果您确切知道要查找的字符串,那么stripos()
就足够了(如果您需要区分大小写,则为strpos()
)。例如:
$myvalue = $params->get('pageclass_sfx');
$pos = stripos($myvalue, "sl-articulo");
if ($pos === FALSE) {
// string "sl-articulo" was not found
} else {
// string "sl-articulo" was found at character position $pos
}
答案 2 :(得分:0)
如果您需要检查某个单词是否在字符串中,您可以使用preg_match
函数。
if (preg_match('/some-word/', 'many some-words')) {
echo 'some-word';
}
但是这个解决方案可以用于一小部分需要的单词。
对于其他情况,我建议你使用其中一些。
$myvalue = $params->get('pageclass_sfx');
$arr = explode(' ',trim($myvalue));
$result = array();
foreach($arr as $key=> $value) {
// This will calculates all data in string.
if (!isset($result[$value])) {
$result[$value] = array(); // or 0 if you don`t need to use positions
}
$result[$value][] = $key; // For all positions
// $result[$value] ++; // For count of this word in string
}
// You can just test some words like follow:
if (isset($result['sl-categoria'])) {
var_dump($result['sl-categoria']);
}