PHP 使用 file_get_contents 从.txt文件中获取最后五个单词
PHP Get last five words from .txt-file using file_get_contents
我正在寻找一种有效的方法,可以在长轮询时使用file_get_contents从.txt文件中读取最后一个单词,例如 5 个单词。我尝试使用下面的注释代码研究解决方案,但它破坏了长轮询——这在显示.txt文件的全部内容时效果很好。
我也查看了file_get_contents的offset
参数,但我不知道如何在我的代码中对其进行良好的(或功能)改编。我想这将涉及首先计算所述.txt文件中的所有单词(它本身是动态的),然后以某种方式将单词数减去 5?可能有一个比这更简单的解决方案,如果没有,我该如何通过替代解决方案来解决它?
get_data.php
$id = $_COOKIE["currentID"];
$filepath = 'stories/'.$id.'.txt';
if (file_exists($filepath)) {
$lastmodif = isset($_GET['timestamp']) ? $_GET['timestamp'] : 0;
$currentmodif = filemtime($filepath);
while($currentmodif <= $lastmodif){
sleep(1);
clearstatcache();
$currentmodif = filemtime($filepath);
}
// I've tried:
// Attempt to getting the last five words of .txt file, does NOT work
$str = file_get_contents($filepath);
$words = explode(' ', $str);
$last = join(" ", array_slice($words, -5, 5));
$response = array();
/* $response['data'] = file_get_contents($filepath); */ //use if not attempting to get last 5 words
$response['data'] = $last; //part of "what I've tried"
$response['timestamp'] = $currentmodif;
echo json_encode($response);
}
else{
// if file doesn't exist
echo('nada data, son.');
}
?>
应用程序.js(用于上下文)
$(function(){
$.longpolling({
pollURL: './get_data.php',
successFunction: pollSuccess,
errorFunction: pollError
});
});
function pollSuccess(data, textStatus, jqXHR){
var json = eval('(' + data + ')');
$('#response').html(json['data']);
document.getElementById('notificationsound').play();
console.log('file updated');
}
function pollError(jqXHR, textStatus, errorThrown){
console.log('Long Polling Error: ' + textStatus);
}
为什么不做:
$lastfive = explode(" ", trim(preg_replace("/^(['s'S]+)(( ([^ ]+)){5})$/m", "$2", $code)));
此外,在分析从服务器检索的代码时,切勿使用 eval
。请尝试改用JSON.parse(data)
。
相关文章:
- 从输入值中删除最后一个单词
- Javascript/jQuery替换tamil语言输入框中的最后一个单词
- Regex:使用javascript测试最后一个单词后的url中是否存在最后一个斜杠
- 使用JavaScript匹配URL中的最后一个单词
- 添加一个“;以及“;到String-js/Angular中的最后一个单词
- 如何在文本区域中获取最后一个单词的位置
- PHP 使用 file_get_contents 从.txt文件中获取最后五个单词
- 打印出字符串中所有单词的最后一个字符
- 正则表达式获取 / 和 / 之间的 URL 中的最后一个单词
- 使用正则表达式提取句子中的最后几个单词
- 如何使用正则表达式获取第一个和最后一个单词
- 正则表达式,用于从 TitleCase(驼峰大小写)获取最后一个单词
- 字符字符串中最后一个单词的第一个字母
- Javascript - 获取一行中的最后一个单词
- 在最后一个单词 Javascript 之前附加字符串
- 如何添加<br/>在最后一个单词上加标签
- 如何使用Javascript正则表达式从可能的单词列表中获取单词的最后一次出现
- 在CodeMirror中查找自定义语言模式的段落的第一个单词和最后一个单词
- 如何在保持第一个和最后一个字符相同的情况下对单词进行加扰?(JS)
- 谷歌地图标记.getPosition只使用最后一个单词