Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查文本文件中是否存在日期和字符串_Php_Regex_Match_Strpos - Fatal编程技术网

Php 如何检查文本文件中是否存在日期和字符串

Php 如何检查文本文件中是否存在日期和字符串,php,regex,match,strpos,Php,Regex,Match,Strpos,我有一个php函数来记录用户: if(isset($_POST['enter'])){ if($_POST['name'] != "" && trim($_POST['name'])!= "" ){ $_SESSION['name'] = stripslashes(htmlspecialchars($_POST['name'])); $text_message = "<div class='msgln'&g

我有一个php函数来记录用户:

if(isset($_POST['enter'])){
if($_POST['name'] != "" && trim($_POST['name'])!= "" ){
$_SESSION['name'] = stripslashes(htmlspecialchars($_POST['name']));
        
$text_message = "<div class='msgln'><span class='chat-time'>".date("F j, g:i A")."</span> <b class='user-name'>".$_SESSION['name']."</b> </div>";
file_put_contents("users.html", $text_message, FILE_APPEND | LOCK_EX);
我想检查日期-只有日期和小时,而不是分钟和用户名。由于我使用12小时的时间,我如何检查PM和AM

输出:

1月18日上午7:33 1月18日上午7:41

1月18日上午7:45


为了简化:我想检查1月18日上午7点用户名。

我认为很难做到这一点,因为您的日期字符串没有存储在数据库中,简而言之,如果已经插入日期字符串,您就无法对其进行比较,因为例如,如果您在users.html中有这些输入:

1月18日上午7:00埃瓦拉 1月18日上午7:31一无所知 然后您收到了一个插入新用户的请求,因此您需要检查该用户是否已经使用

username = "evara" && date = January 18, 7:01 AM
所以你不能比较它们。但如果已经插入了用户名,为什么不进行比较呢

如果false==strpos$chck,$\u会话['name']{ //文件内容 }
我认为很难做到这一点,因为您的日期字符串没有存储在数据库中,简而言之,如果已经插入日期字符串,您就无法对其进行比较,因为如果您在users.html中有这些输入:

1月18日上午7:00埃瓦拉 1月18日上午7:31一无所知 然后您收到了一个插入新用户的请求,因此您需要检查该用户是否已经使用

username = "evara" && date = January 18, 7:01 AM
所以你不能比较它们。但如果已经插入了用户名,为什么不进行比较呢

如果false==strpos$chck,$\u会话['name']{ //文件内容 } 序列dateF j,g.'.$\u会话['name']不能存在,因为日期和用户名之间有一些字符

您可以使用一个简单的正则表达式,比如1月18日,9:[0-9]{2}AM

序列dateF j,g.'.$\u会话['name']不能存在,因为日期和用户名之间有一些字符

您可以使用一个简单的正则表达式,比如1月18日,9:[0-9]{2}AM

$date = date('F j, g:[0-9]{2} A');
$match = preg_match('~' . $date . '~', $text_message);

if (strpos($text_message, $_SESSION['name']) === false && !$match) {
    echo "match not found";
    // file_put_contents()
}
else {
    echo "match found";
}