PHP5引入了一個面向對象的文件包裝器,SplFileObject。我想我只是發現爲什麼幾乎沒有人使用它。它純粹是面向行的,沒有fread()方法 - 對應的frwite似乎暗示了這一點。用fread方法擴展SplFileObject
所以現在我想知道我是否可以擴展它。但我不確定什麼是更好的解決方法。 SplFileObject在將文件指針($ fp)分開時不是特別有用 - 它是私有屬性或ZE內部資源。那麼如何擴展它以獲得fread方法?
- 如果請求只是一個特定的大小和與fgets讀太遠,直到下一個\ n換行符實現FREAD()爲()字符串收集環用於fgets,與最終的追求。
- 使用自定義構造函數,該函數第二次打開文件並存儲輔助文件指針,以防我想調用fread()而不是父類方法。
我會去fgets解決方案循環,但它聽起來很繁瑣和緩慢,並提供更多的潛在隱患。 OTOH打開輔助文件指針似乎不是一個好方法,也需要一個自定義析構函數。
你需要什麼'FREAD()'呢? – rojoca 2010-10-13 21:39:02
讀取整個文件。只是想傳遞一個文件對象來獲得它的元信息。 – mario 2010-10-13 21:48:45
在這種情況下,只需添加一個調用'file_get_contents($ this-> getPathname());'的方法。如果你想能夠使用'fread',最好是定義你自己定製的類,它可以使用文件處理函數來實現你需要的所有功能。 – rojoca 2010-10-13 22:07:50