2016-09-21 3 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); 
    } 
?> 

Я хочу хранить только первые десять слов из строки. Как я могу это сделать? В настоящее время он сохраняет первую строку.Прочтите только первые десять слов из текстового файла, используя php

+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

Пожалуйста, вы можете объяснить работу функции в 2 до 3 трех строки –

+0

Было бы трудно объяснить Regex в 2 - 3 строках. Я бы посоветовал учить регулярное выражение на каком-то этапе, хотя – 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