使用 php 从文本文件中只读取前十个单词
Read only first ten words from a text file using php
<?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);
}
?>
我只想存储该行的前十个单词。我怎样才能做到这一点?
目前正在保存第一行。
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);
不确定您的数据是否包含逗号或其他符号。
这可能是一个快速的解决方案,它也适用于 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);
?>
<?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);
}
?>
我只想存储该行的前十个单词。我怎样才能做到这一点? 目前正在保存第一行。
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);
不确定您的数据是否包含逗号或其他符号。 这可能是一个快速的解决方案,它也适用于 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);
?>