Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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-从特定位置读取TXT_Php_Parsing_Text_Position - Fatal编程技术网

PHP-从特定位置读取TXT

PHP-从特定位置读取TXT,php,parsing,text,position,Php,Parsing,Text,Position,我在PHP文本解析方面遇到问题 我有一个txt文件,其中包含此类信息: sometext::sometext.0=整数:254 我需要的是在PHP中获取254的最后一个值作为变量。 在此txt文件中,最后一个值可以从0更改为255 “sometext::sometext.0=INTEGER:”这部分根本不会改变。 它有36个符号的长度,所以我需要用PHP将36个符号之后的内容转换成变量 谢谢。尝试使用: 演示:也许可以 在这里查看它的实际操作(调整以匹配您的示例数据):尝试读取文件 对于解析,我

我在PHP文本解析方面遇到问题 我有一个txt文件,其中包含此类信息:

sometext::sometext.0=整数:254

我需要的是在PHP中获取254的最后一个值作为变量。 在此txt文件中,最后一个值可以从0更改为255

“sometext::sometext.0=INTEGER:”这部分根本不会改变。 它有36个符号的长度,所以我需要用PHP将36个符号之后的内容转换成变量

谢谢。

尝试使用:

演示:

也许可以

在这里查看它的实际操作(调整以匹配您的示例数据):

尝试读取文件


对于解析,我使用split。我在这里写了一封信。但是sscanf似乎是更好的选择。

因为您知道字符串总是这种形式,所以您可以使用该函数提取您想要的字符串部分。然后,如果需要,使用将其设置为整数

注意:我的计数显示您试图获取的数字从第33位开始(下面变成32位,因为substr是基于0的),而不是第36位

您可以通过以下方式获得您想要的:

$the_str = 'sometext::sometext.0 = INTEGER: 254';
$num = intval(substr($the_str, 32));

@user1466766没问题^ ^ ^
sscanf
是一个非常强大的工具:-)问题是每次都必须重新计算长度。OP说“这部分根本没有变化。它有36个符号的长度”。按照上面所示运行代码不会打印任何内容,因为
substr()
$text
@GreenMatt结束后开始-是的,这就是我包含codepad.org示例的原因,正如我提到的,该示例已调整以匹配示例数据。也许你错过了OP的陈述,即在他感兴趣的数据出现之前,他的实际数据“有36个符号的长度”。@ghoti:正如我的回答中显而易见的,我没有错过OP关于长度的陈述。我还看到您的代码板示例使用了正确的起点。然而,所有这些在答案中并不明显,我怀疑不是每个人都会关注这一联系。我只是想帮点忙,抱歉我冒犯了你。
$text = "sometext::sometext.0 = INTEGER: 254";    
print substr($text, 37);
$the_str = 'sometext::sometext.0 = INTEGER: 254';
$num = intval(substr($the_str, 32));