3

いくつかの文があります。6語以上からなる文章を選ばなければなりません。そしてそれらはデータベースに挿入されます。

<?php
    require_once 'conf/conf.php';
    $text = " Poetry. Do you read poetry while flying? Many people find it relaxing to read on long flights. Poetry can be divided into several genres, or categories. ";
    $sentences = explode(".", $text);
    foreach ($sentences as $sentence) {
       if (count(preg_split('/\s+/', $sentence)) > 6) {
           $save = $sentence. ".";
           $sql = mysql_query("INSERT INTO tb_name VALUES('','$save')");
       }
    }
?>

結果は、データベースに挿入された 2 番目の文のみです => 「飛行中に詩を読みますか?」多くの人は、長時間のフライトで読書をするのがリラックスできると感じています。」一方、3 番目の文も挿入する必要があります。私を助けてください、ありがとう:)

4

2 に答える 2

3

ここにあなたが探しているソリューションがあります。ID 値が指定されておらず、テーブルへのキーであるため、複数の行を追加することはできません。文を同じ行に追加したいので、1 つのクエリを実行する必要があります。

$text = " Poetry. Do you read poetry while flying? Many people find it relaxing to read on long flights. Poetry can be divided into several genres, or categories. ";
$sentences = explode(".", $text); $save = array();
foreach ($sentences as $sentence) {
   if (count(preg_split('/\s+/', $sentence)) > 6) {
       $save[] = $sentence. ".";
   }
}
if( count( $save) > 0) {
    $sql = mysql_query("INSERT INTO tb_name VALUES('','" . implode( ' ', $save) . "')");
}

これで、両方の文がデータベースの同じ行に挿入され、スペースで区切られます。最初のパラメーターを に変更すると、それらが区切られているものを変更できますimplode()

生成されるクエリは次のとおりです。

INSERT INTO tb_name VALUES('',' Do you read poetry while flying? Many people find it relaxing to read on long flights. Poetry can be divided into several genres, or categories.')
于 2012-06-28T18:52:02.343 に答える
1

交換:

$sentences = explode(".", $text);

これとともに:

$newSentences = array();
$sentences = preg_split("/(\.|\?|\!)/", $text, -1, PREG_SPLIT_DELIM_CAPTURE);

$odd = false;
foreach($sentences as $sentence) {
    $sentence = trim($sentence);
    if($sentence != '') {
        if(!$odd) {
            $newSentences[] = $sentence;
        } else {
            $newSentences[count($newSentences) - 1] .= $sentence;
        }
        $odd = !$odd;
    }
}

.または?またはで終わる文を区切り!ます。foreach は文を組み立て直すだけです。

例: http://codepad.org/kk3PsVGP

于 2012-06-28T18:52:31.077 に答える