php将反斜杠添加到file_get_contents

时间:2020-04-24 15:22:16

标签: php

我有一个从sql studio生成的大型sql文件,该文件在其中创建数据库和表。我正在使用php的get_file_contents并逐行查看该行是否包含CREATE DATABASE来解析出数据库名称。问题是php在每个字符之前都添加了反斜杠,但我不确定如何停止。

USE [master]
GO
CREATE DATABASE [FOOBAR-DEV]
 CONTAINMENT = NONE
GO

// and so on for another 10,000 lines
$db = "FOOBAR-DEV";
$path = sprintf('%s/../../sql/%s/createdb.sql', __DIR__, $db);
$contents = file_get_contents($path);
$lines = explode("\n", $contents);
$name = null;
foreach ($lines as $key => $line) {
    $needle = 'CREATE DATABASE';
    // debug code
    if ($key <= 10) {
        $output->writeln($line);
    }
    if (strpos($line, $needle) !== false) {
        $output->writeln('found');
        $name = substr($line, strlen($needle));
        break;
    }
}
$output->writeln($name);

该行从未找到,因为我得到了: enter image description here

我在stripslashes上尝试过$line,但这似乎无济于事。我不相信我有魔术引号。 php -i中任何带有“魔术”的内容都只会显示Imagick设置。

如何删除$line中的反斜杠?

1 个答案:

答案 0 :(得分:0)

我不确定如何在php本身中解决问题,但是我能够在PhpStorm中将文件编码转换为utf-8,这似乎可以解决问题。