2016-09-21 10 views
-1
<?php 
    include 'db_connection.php'; 

    if (isset($_POST['submit'])) { 

    $file = fopen("quiz3.txt","r") or die("Unable to open file!"); 

    $line = fgets($file); 

    $sql = "INSERT INTO quiz3 (FromFile) VALUES ('".$line."')"; 

    $result = mysqli_query($conn,$sql); 

    if (!$result) { 

     echo mysqli_error($conn); 
    } 
    else 
    { 
     echo "Your File Has Been Read & Stored In Database Successfully<br>Line Stored = "; 
     echo $line; 
    } 

    fclose($file); 
    } 
?> 

私は最初の10単語だけを保存したい。どうやってやるの? 現在、最初の行が保存されています。phpを使用してテキストファイルから最初の10単語だけを読む

+1

http://stackoverflow.com/questions/5956610/how-to-select-first-10-words-of-a-sentence – Farkie

答えて

2
function get_words($sentence, $count = 10) { 
    preg_match("/(?:\w+(?:\W+|$)){0,$count}/", $sentence, $matches); 
    return $matches[0]; 
} 

$file = fopen("quiz3.txt","r") or die("Unable to open file!"); 

$line = fgets($file); 

$convertedLine = get_words($line); 

$sql = "INSERT INTO quiz3 (FromFile) VALUES ('".$convertedLine ."')"; 

$result = mysqli_query($conn,$sql); 
+0

次の3 3の2の機能の動作を説明してくださいすることができますlines –

+0

2〜3行でRegexを説明するのは少し難しいでしょう。私はいくつかの段階で正規表現を学ぶことをアドバイスしますが – virepo

+0

おかげさまでお付き合いありがとうございます。私はそれを学ぶでしょう。 –

0

データにカンマまたはその他の記号が含まれているかどうかは不明です。 これは簡単な解決策であるかもしれませんし、CJK単語でも機能します。

<?php 
    function cut_words($source, $number_take){ 
     $result = ""; 
     $wc = 0; 
     $source = str_replace(" ", " ", $source); // Simple sanity 
     $string = explode(" ", $source); 
     while ($wc < $number_take){ 
      if(isset($string[$wc])){ // Prevent index out of bound. 
       $result .= $string[$wc]; 
       if($wc < $number_take) { 
        $result .= " "; 
       } 
      $wc++; 
      } else { 
       break; 
      } 
     } 
     $result = trim($result); 
     return $result; 
    } 

    $line = cut_words($line, 10); 

    ?> 
+0

は少し長めに見えます – virepo

+0

特に正規表現と比較してください;) – HZS

関連する問題