所以基本上我打开一个大文件(我认为它很大 - 19MB)并试图梳理出任何不是4个字母的内容.com并在今天的日期从注册表中删除。所以我在下面尝试做的就是调出文件,并在其中的每一行找到日期符合字符串且字符数为35或更少的字符串(在剥离字符之前)。
然后我希望它检查它是.com没有小部件并且不包含连字符。
我错过了什么?
<?php
date_default_timezone_set('UTC');
$extension = '.com';
$lines = file('PoolDeletingDomainsList.txt');
//$lines = file('testdomains.txt');
$date = date('n/j/Y');
echo "<b>4 Letter premiums for ". $date .":</b><br />";
foreach($lines as $line)
if ((false !== strpos($line,$date)) && (35 <= strlen($line))) {
$line = preg_replace('/12:00:00 AM,AUC\b/','<br />', $line);
$line = preg_replace('/,9\/28\/2013/', '', $line);
if ((false !== strpos($line, $extension)) && (0 === preg_match('#\d#',$line)) && (0 === preg_match('/-/', $line))){
echo $line;
}
}
?>
答案 0 :(得分:1)
如果您想要第35行字符或更少,请尝试(35 >= strlen($line)
而不是(35 <= strlen($line)
。就个人而言,我更喜欢按照相反的方式订购比较,例如strlen($line) <= 35
,我认为它更具可读性,可以避免像您刚刚犯的那样的错误:)