我是新的stackoverflow。但我需要帮助,看,我正在做一个函数,从字符串中提取多个单词。问题是它返回数字。 我试过用另一个$ cuerpo,但它不工作,它返回我4. 请帮助我。非常感谢。 这是我的代码。PHP使用Stripos和array_push
<?php
$cuerpo = " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec viverra metus in turpis scelerisque, a mollis purus egestas. Quisque viverra rhoncus nisi, at semper nisi lobortis eu. Ut porttitor mattis orci. Quisque laoreet interdum libero, ut tristique velit tempus nec. Donec id auctor mi. Proin in quam ligula. Aenean suscipit pharetra pharetra.";
function extrae_cadenas($arraystring, $cuerpodos) {
$total = array();
$arr = array();
$arraynum = count($arraystring);
$cont = 0;
$contador_substr = 1;
if(is_array($arraystring))
{
foreach($arraystring as $current)
{
$cont=$cont+1;
$on=strlen($current);
if($cont == $arraynum)
{
break;
}
else
{
if($contador_substr > 1)
{
$pos = $pos + $on;
}
else
{
$pos = stripos($cuerpodos,$current);
}
if($pos==true)
{
$a = substr($cuerpo,$pos,30);
$salidas = array_push($total,$a);
}
else
{
}
}
$contador_substr = $contador_substr + 1;
}
if($salidas == "")
{
$salida = "No se encontraron las palabras";
}
else
{
$salida = $salidas;
}
return $salida;
}
else
{
return "No";
}
}
print_r(extrae_cadenas(array("_lorem_","_ipsum_"),str_replace(" ","_",str_replace("\n","_",$cuerpo))));
?>
请考虑正确地缩进您的代码,这样很难阅读。 – Tomdarkness
RTFM:http:// stripos。你用错了。它不返回“真”。如果找到该值,则返回“int”(如果值位于字符串的起始处,则返回0);如果未找到,则返回布尔值FALSE。 –
我试图改变这一点:如果 ($ POS == FALSE){ } 其他 { $ A = SUBSTR($ cuerpo,$ POS,30); $ salidas = array_push($ total,$ a); } 但没有任何反应,它又回到了我4. – Darkness