Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_File - Fatal编程技术网

php从文件内容返回元素

php从文件内容返回元素,php,file,Php,File,我相信这很简单,但是 我有一个文件,它保证只包含一些文本和一个更多的文本 如何将这些元素作为单独的变量返回给元素?您的文件只是文本,因此必须对其进行解析。一般来说,HTML并不完全适合使用常规操作进行解析,但是如果您知道确切的内容,就不会有问题 根据两个标记块之间的分隔符(假设它是\n),可以执行以下操作: $contents = file_get_contents("yourfile.html"); list($h1,$p) = explode("\n",$contents); fu

我相信这很简单,但是

我有一个文件,它保证只包含一些文本和一个更多的文本


如何将这些元素作为单独的变量返回给元素?

您的文件只是文本,因此必须对其进行解析。一般来说,HTML并不完全适合使用常规操作进行解析,但是如果您知道确切的内容,就不会有问题

根据两个标记块之间的分隔符(假设它是
\n
),可以执行以下操作:

$contents = file_get_contents("yourfile.html");
list($h1,$p) = explode("\n",$contents);
    function strBetween($au, $au2, $text) {//gets substring beetween $au and $au2 in $text
        $pau = strpos($text, $au);
        if($au2 !== '') {
            $pau2 = strpos($text, $au2,$pau);
            if($pau !== false && $pau2 !== false)
                return substr($text, $pau+strlen($au), $pau2-$pau-strlen($au));
            else
                return '';
        } else {
            return substr($text, $pau+strlen($au));
        }

    }
$contents = file_get_contents("yourfile.html");
$h1 = strBetween('<h1>', '</h1>', $contents);
$p = strBetween('<p>', '</p>', $contents);

这将为您提供
$h1
$p
中的两个文本块。如果需要做更多的工作,您可以从中解析其余的文本块。

您的文件只是文本,因此您必须对其进行解析。一般来说,HTML并不完全适合使用正常操作进行解析,但如果您知道确切的内容,则不应该进行解析一个问题

根据两个标记块之间的分隔符(假设它是
\n
),可以执行以下操作:

$contents = file_get_contents("yourfile.html");
list($h1,$p) = explode("\n",$contents);
    function strBetween($au, $au2, $text) {//gets substring beetween $au and $au2 in $text
        $pau = strpos($text, $au);
        if($au2 !== '') {
            $pau2 = strpos($text, $au2,$pau);
            if($pau !== false && $pau2 !== false)
                return substr($text, $pau+strlen($au), $pau2-$pau-strlen($au));
            else
                return '';
        } else {
            return substr($text, $pau+strlen($au));
        }

    }
$contents = file_get_contents("yourfile.html");
$h1 = strBetween('<h1>', '</h1>', $contents);
$p = strBetween('<p>', '</p>', $contents);

这将为您提供
$h1
$p
中的两个文本块。如果需要做更多工作,您可以从中解析其余的文本块。

如果您的文件是HTML文件,一般解决方案是:

  • 将其加载到一个
    • 如果您将HTML内容作为字符串
  • 使用DOM方法访问节点
    • 在这里,应该是完美的
  • 然后,一旦有了节点,工作就完成了;-)
    • 不是:如果您的HTML元素包含子元素,并且您希望整个内容(包括子标记)作为字符串,请查看,例如

如果您的文件是HTML文件,一般的解决方案是:

  • 将其加载到一个
    • 如果您将HTML内容作为字符串
  • 使用DOM方法访问节点
    • 在这里,应该是完美的
  • 然后,一旦有了节点,工作就完成了;-)
    • 不是:如果您的HTML元素包含子元素,并且您希望整个内容(包括子标记)作为字符串,请查看,例如

您可以使用以下内容:

$contents = file_get_contents("yourfile.html");
list($h1,$p) = explode("\n",$contents);
    function strBetween($au, $au2, $text) {//gets substring beetween $au and $au2 in $text
        $pau = strpos($text, $au);
        if($au2 !== '') {
            $pau2 = strpos($text, $au2,$pau);
            if($pau !== false && $pau2 !== false)
                return substr($text, $pau+strlen($au), $pau2-$pau-strlen($au));
            else
                return '';
        } else {
            return substr($text, $pau+strlen($au));
        }

    }
$contents = file_get_contents("yourfile.html");
$h1 = strBetween('<h1>', '</h1>', $contents);
$p = strBetween('<p>', '</p>', $contents);
函数strb介于($au,$au2,$text){//获取$text中$au和$au2之间的子字符串
$pau=strpos($text,$au);
如果($au2!=''){
$pau2=STRPO($text,$au2,$pau);
如果($pau!==false&&$pau2!==false)
返回substr($text,$pau+strlen($au),$pau2-$pau-strlen($au));
其他的
返回“”;
}否则{
返回substr($text,$pau+strlen($au));
}
}
$contents=file\u get\u contents(“yourfile.html”);
$h1=strb之间(“”,,$contents);
$p=strb之间(“”、“

”、$contents);
您可以使用以下内容:

$contents = file_get_contents("yourfile.html");
list($h1,$p) = explode("\n",$contents);
    function strBetween($au, $au2, $text) {//gets substring beetween $au and $au2 in $text
        $pau = strpos($text, $au);
        if($au2 !== '') {
            $pau2 = strpos($text, $au2,$pau);
            if($pau !== false && $pau2 !== false)
                return substr($text, $pau+strlen($au), $pau2-$pau-strlen($au));
            else
                return '';
        } else {
            return substr($text, $pau+strlen($au));
        }

    }
$contents = file_get_contents("yourfile.html");
$h1 = strBetween('<h1>', '</h1>', $contents);
$p = strBetween('<p>', '</p>', $contents);
函数strb介于($au,$au2,$text){//获取$text中$au和$au2之间的子字符串
$pau=strpos($text,$au);
如果($au2!=''){
$pau2=STRPO($text,$au2,$pau);
如果($pau!==false&&$pau2!==false)
返回substr($text,$pau+strlen($au),$pau2-$pau-strlen($au));
其他的
返回“”;
}否则{
返回substr($text,$pau+strlen($au));
}
}
$contents=file\u get\u contents(“yourfile.html”);
$h1=strb之间(“”,,$contents);
$p=strb之间(“”、“

”、$contents);
那么,这将从变量内容中删除
标记。我想这取决于他是否希望HTML标记作为变量内容的一部分。好吧,这将从变量内容中删除
标记。我想这取决于他是否希望HTML标记作为可变内容的一部分。