我尝试从可以读取rss的工具Feed Notifier更改配置文件feeds.dat。 http://www.feednotifier.com/
动态地在Php中。 (然后我可以拉进来。)
我想要修改一个网址。
在这个例子中,我确实有“默认”网址: http://www.feednotifier.com/welcome.xml
如果我尝试用另一个str_replace它,它就会失败(Feed Notifier)。
所以,我尝试使用hexa类。同样的问题。
有人知道如何更改网址吗?
答案 0 :(得分:1)
由于文件包含二进制信息,因此必须使用二进制标志打开和写入。
比如fopen('feeds.dat', 'wb+');
您知道该.dat
文件的文件格式吗?如果您没有手册,则需要反向工程,并且提取信息。
url http://www.feednotifier.com/welcome.xml
之前可能有二进制格式的长度,例如
31http://www.feednotifier.com/welcome.xml
所以在更改该网址时,您还需要更改有效内容信息。文件内部可能还有校验和,必须更改。所有依赖都是开发人员决定实施的格式。
小心将数据或配置文件发布到互联网,因为可能包含用户名和密码,而且有些人非常善于提取这些信息。
要使PHP在二进制文件中使用数据类型,您需要pack();
函数及其所有格式代码:http://php.net/pack
要了解数据类型:http://en.wikipedia.org/wiki/Data_type,http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
有关如何进行逆向工程的提示:通过Feed通知软件向数据文件添加条目(右键单击托盘,首选项或添加Feed)。然后查看文件改变了什么。添加另一个Feed并再次查看已更改的内容。是否有类似时间戳的数据类型?标识?那里有什么字符串(大多以null-byte
终止或以paylod开头),那里有什么数字,它们以何种方式改变。该程序是否仍可用于更改(二进制安全!)值?