我有一个表单,允许用户上传文本文件或将文件内容复制/粘贴到文本区域中。我可以很容易地区分这两个变量,并将它们输入的任何一个放入字符串变量中,但从那里我该怎么做呢?
我需要迭代字符串的每一行(最好不要担心不同机器上的换行符),确保它只有一个标记(没有空格、制表符、逗号等),清理数据,然后根据所有行生成SQL查询。
我是一个相当好的程序员,所以我知道如何做的一般想法,但我已经很久没有使用PHP了,我觉得我在搜索错误的东西,因此得到了无用的信息。我遇到的关键问题是,我想逐行读取字符串的内容。如果它是一个文件,那就很容易了。
我主要在寻找有用的PHP函数,而不是如何实现的算法。有什么建议吗?
发布于 2009-09-22 21:33:50
对包含文本的变量执行preg_split
,并遍历返回的数组:
foreach(preg_split("/((\r?\n)|(\r\n?))/", $subject) as $line){
// do stuff with $line
}
发布于 2012-12-25 18:55:46
如果您需要在不同的系统中处理换行符,您可以简单地使用PHP预定义常量PHP_EOL (http://php.net/manual/en/reserved.constants.php)并简单地使用explode来避免正则表达式引擎的开销。
$lines = explode(PHP_EOL, $subject);
发布于 2013-07-12 18:45:17
它过于复杂和丑陋,但在我看来,这是一条可行的道路:
$fp = fopen("php://memory", 'r+');
fputs($fp, $data);
rewind($fp);
while($line = fgets($fp)){
// deal with $line
}
fclose($fp);
https://stackoverflow.com/questions/1462720
复制相似问题