从文件特殊字符读取数据的问题

时间:2011-01-15 10:16:56

标签: php special-characters

我之前的问题和这个问题都有点相关。请查看我的previous question我没有找到任何其他方法来反序列化数据,因此使用字符串操作

我可以从文件中获取整个内容,但无法从此内容中获取特定字符串。

我想从这些内容中搜索特定的字符串,但是当字符串中的第一个特殊字符到达时,函数将停止工作。如果我正在搜索特殊字符之前找到的内容,则可以正常工作。

当遇到字符串中的第一个特殊字符并立即停止处理时,PHP的字符串操作功能无法正常工作,因此它们没有给我正确的输出。

最初看起来像(^@

:"Mage_Core_Model_Message_Collection":2:{s:12:"^@*^@_messages";a:0:{}s:20:"^@*^@_lastAddedMessage";N;}

但是当我回音时,它们显示为?

以下是我尝试过的代码

$file='/var/www/html/products/var/session/sess_ciktos8icvk11grtpkj3u610o3';
$contents=file_get_contents($file);
$contents=htmlspecialchars($contents);
//$contents=htmlentities($contents);
echo $contents;

$restData=strstr($contents,'"id";s:4:"');
echo $restData;
$id=substr($restData,0,strpos($restData,'"'));
echo $id;

我将default_charset更改为iso-8859-1以及utf-8但未同时使用

请告诉我如何解决这个问题。 感谢。

1 个答案:

答案 0 :(得分:2)

您看到^@的这些字符实际上是空字节。它们没有任何正确的显示,也没有显示它们 - 它是引擎中受保护属性的内部表示。你不应该搞砸他们。

至于解决问题,知道你寻求什么样的解决方案真是太好了 - 你想要达到什么样的结果?