0

我有一个设置为自动加载到数据库的文本文件,但是在写入文件时,它以 a 结束分隔符,,但是它需要最后一行以 a 结束;以避免和 SQL 上传错误。这就是我所拥有的

('column1' , 'column2' , 'column3'),
('column1' , 'column2' , 'column3'),
('column1' , 'column2' , 'column3'),

这就是我需要的...

('column1' , 'column2' , 'column3'),
('column1' , 'column2' , 'column3'),
('column1' , 'column2' , 'column3');

写入此文件的脚本会不断添加,因此它永远不会知道最后一行是什么时候,直到它与其他函数一起完成。

所以在自动上传之前,我需要一些 PHP 代码来获取这个文件,转到最后一行并将最后一个字符从 更改,;

有谁知道如何只将最后一个更改,;

谢谢

好的,所以现在我感觉很傻,但我似乎无法编写代码来打开文件,进行更改然后根据您的答案关闭文件,我想让它保持简单,所以

$text = substr($actualText, 0, -1);
$text.=';';

是要走的路。有人可以给我完整的代码来打开 crawl_info.txt (这是我的文件)进行上面的编辑然后关闭它吗?

非常感谢。

4

3 回答 3

2

您可以简单地使用substr

$text = substr($actualText, 0, -1);
$text.=';';

这是假设句号确实是文件/变量中的最后一个字符。

于 2013-09-04T10:49:40.897 回答
0

你可以这样做:

$Arr = str_split($text);
//Split the text into array of characters
$NewText = '';
//Define the new text as empty
for($i = 0;$i < $Arr.length;$i++){
//Loop throught each character
if($i == (Arr.length - 1)){
//if it was the last character put a ;
$NewText .= ";";

}else{
//if not add the normal string
$NewText = $Arr[$i];

}
}

这可以帮助您将来进行操作,但如果您的目标只是您可以使用 Fluffeh 答案,因为它更简单。

于 2013-09-04T11:01:21.427 回答
0

如果无法更改生成代码,您可以使用负长度为 -1 的substr() 。然后添加';'。

于 2013-09-04T10:50:02.653 回答