在PHP中的特定点编辑文件的十六进制?

时间:2011-07-22 21:18:13

标签: php

我正在努力实现的目标:

我的服务器上有两个基本文件,根据用户输入根据需要进行编辑/复制。我希望用javascript中的用户输入和PHP中的文件编辑来完成大部分工作,因为我最好使用javascript。我需要做的是编辑特定点的文件,并根据某些用户输入字符串的长度更改十六进制值。

我在没有寻求帮助的情况下尽我所能,但现在我肯定需要它。

其中一个文件的结构方式是:三个空的十六进制值,然后是一个等于设置字符串长度的十六进制值,设置字符串,三个空的十六进制值,一个等于长度的十六进制值设置的值字符串,最后是值字符串。一个例子是:

06 76 6F 6C 75 6D 65 00 00 00 02 37 38

06是“音量”字符串的长度,

76 6F 6C 75 6D 65是“音量”字符串,

02是卷的值字符串的长度,“78”

37 38是设置值,“78”

我可以自己将用户输入转换为十六进制,但我不知道如何用十六进制写入文件,或者用十六进制打开它,或者去我需要的地方......

另外,由于某种原因,000webhost不会让我上传txt文件或我需要使用的文件,所以有没有办法使用php的zip文件?

最后一件事,如何在javascript和php之间传输变量而不将它们写入html元素?

3 个答案:

答案 0 :(得分:0)

您是否尝试使用带有fopen标记的'b'来阅读文件?这就是我在C中所做的事情。之后,您可以将数据读入数组并根据需要迭代元素。

答案 1 :(得分:0)

你不需要做任何特殊的事情来写成十六进制。只需存储您的值并输出它,php是二进制安全的。 (不要存储字符串“76”,存储值为76的字符。)

然后使用各种文件命令来读取和写入你的文件,如@myeviltacos所说。

你做(或多或少)需要将你的变量放在html元素中来传递它们。

您有四种选择:

带有隐藏元素的表单,然后提交。

使用网址中的变量创建一个网址并转到该网址。

使用ajax并执行前两个选项。

最后你可以使用jQuery让它自动为你做。使用$.ajax()并将data属性设置为变量。

答案 2 :(得分:0)

向过去的自我(以及其他任何人在这里结束并且像我一样困惑)的消息:

十六进制不是一种数据,而是一种表示。虽然对于十六进制编辑器和其他程序来说,将二进制数据显示为十六进制是有用的,但在编程期间没有理由将数据转换为十六进制字符串。