我有一个包含用户代理数组的缓存文件。
当我打印每个用户代理时,这就是它的样子:
@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/6\..*Safari/.*$@
@^Mozilla/5\.0 \(X11; U; Linux.*; .*; rv\:1\.9\..*\) Gecko/.* Firefox/.* Maemo Browser 1\.7\..*$@
@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/7\..*Safari/.*$@
@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/8\..*Safari/.*$@
@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/6\..* Safari/.*$@
@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\) .*Iron/7\..* Safari/.*$@
@^Mozilla/5\.0 \(.*Linux i686.*\) AppleWebKit/.* \(KHTML, like Gecko\).*Chrome/9\..*Safari/.*$@
ect ect....
现在看起来这些用户代理已被转义,因此我stripslashes()
了。
我也注意到这里有一些无效字符(@
,^
,.*$@
),所以我str_replaced()
没有任何字符。
最终结果:
Mozilla/5.0 (.Linux i686.) AppleWebKit/. (KHTML, like Gecko).Chrome/6..Safari/
Mozilla/5.0 (X11; U; Linux.; .; rv:1.9..) Gecko/. Firefox/. Maemo Browser 1.7.
Mozilla/5.0 (.Linux i686.) AppleWebKit/. (KHTML, like Gecko).Chrome/7..Safari/
Mozilla/5.0 (.Linux i686.) AppleWebKit/. (KHTML, like Gecko).Chrome/8..Safari/
Mozilla/5.0 (.Linux i686.) AppleWebKit/. (KHTML, like Gecko) .Iron/6.. Safari/
Mozilla/5.0 (.Linux i686.) AppleWebKit/. (KHTML, like Gecko) .Iron/7.. Safari/
Mozilla/5.0 (.Linux i686.) AppleWebKit/. (KHTML, like Gecko).Chrome/9..Safari/
我打算将这些用户代理插入到数据库中(已经有数十万个),我担心它们仍然会以某种方式无效,我没有注意到。
如果我将这些插入数据库并且它们无效,那么我将不得不删除整个数据库,并从头开始......
所以我不想冒任何风险......
你们可以发现这些用户代理字符串有什么问题吗?
:)