Php 是否可以使用自定义模式拆分文件内容?
是否可以将文件内容拆分为具有特定模式的部分 这就是我想要实现的目标:Php 是否可以使用自定义模式拆分文件内容?,php,regex,parsing,file-get-contents,Php,Regex,Parsing,File Get Contents,是否可以将文件内容拆分为具有特定模式的部分 这就是我想要实现的目标: 使用文件获取内容读取文件 类似注释区域之间的只读内容 我不确定这有多复杂,但基本上如果我正在解析一个大型html文件,只想向浏览器显示特定的小部件(模式是注释边界),如下所示: $file = file_get_contents('http://example.com/'); $widgets = explode('<!-- widget -->', $file); 样本: <html> <
- 使用文件获取内容读取文件
- 类似注释区域之间的只读内容
$file = file_get_contents('http://example.com/');
$widgets = explode('<!-- widget -->', $file);
样本:
<html>
<head>
<title>test</title>
</head>
<body>
this content should not be parsed.. ignored
<!-- widget -->
this is the widget. i want to parse this content only from the file
<!-- widget -->
</body>
</html>
测试
不应分析此内容。。忽略
这是小部件。我只想从文件中解析此内容
是否可以使用php和正则表达式或任何东西来解析边界之间的内容
我很抱歉,但我试图尽可能多地解释我想要实现的目标。希望有人能帮助我。这当然是可能的,但实际上不需要使用正则表达式。我可能会这样做:
$file = file_get_contents('http://example.com/');
$widgets = explode('<!-- widget -->', $file);
$file=file\u获取内容('http://example.com/');
$widgets=explode(“”,$file);
现在,
$widget
([1]、[3]、[5]
,等等)的奇数元素包含了这些边界之间的内容。您可以使用正则表达式实现您想要的内容(或者如果您只使用拆分,您可能只需要使用它)。检查文档。使用explode()的另一个答案可能也适用
$text = file_get_contents('/path/to/your/file');
$array = split('<!-- widget -->', $text);
$text=file\u获取内容('/path/to/your/file');
$array=split(“”,$text);
第一个条目将是第一次出现
之前的所有内容,最后一个元素将是最后一个
之后的所有内容。每一个奇数元素都是你要寻找的
$pattern=“/([\s\s]+)/”;
$match=preg\u match\u all($pattern,$string,$match\u array);
变量转储($match\u数组);
非常非常好。快速提问..explode和split之间有什么实际区别吗?不完全一样,split()支持正则表达式,而explode不支持。老实说,如果您不打算使用正则表达式,您可能应该使用explode(),因为它可能更快(与php核心加载与正则表达式相关的内容以进行拆分而不是explode有关)。好的,谢谢您的解释。。是的,我会尽量避免使用正则表达式,因为它可以使用explode,不需要将事情复杂化。