我有一些句子。我必须选择由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')");
}
}
?>
结果只是插入数据库=>的第二句话"你在飞行时读诗吗?许多人发现在长途飞行中阅读很放松。而第三句也应插入。请帮助我,谢谢:)
这是您正在寻找的解决方案。您无法添加多行,因为您的 ID 值未指定,它是表中的键。由于要将句子添加到同一行,因此需要执行一个查询。
$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.')
替换:
$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;
}
}
它将以 .
或 ?
或 !
结尾的句子分开。福拉奇只是重新组合句子。
此处的示例:http://codepad.org/kk3PsVGP