0

私はスタックオーバーフローが初めてです。文字列から複数の単語を抽出する関数を作成しています。問題は、番号を返すことです。別の $cuerpo で試しましたが、うまくいきません。4 が返されました。助けてください。どうもありがとう。これが私のコードです。

<?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))));
?>
4

1 に答える 1

0

あなたのエラーは次の行から来ています:

$salidas = array_push($total,$a);

// ........

if($salidas == "") {
    $salida = "No se encontraron las palabras";
} else {
    $salida = $salidas;
}
return $salida;

関数array_pushは配列内の要素の数を返すため、要素が 1 つの場合は 1 を返します...

$total次のように、代わりに戻る必要があると思います。

if($salidas == "") {
    $salida = "No se encontraron las palabras";
} else {
    $salida = $total;
}

また、$cuerpo関数内でグローバル変数として宣言する必要があります。

于 2013-07-02T07:25:19.860 に答える