2014-03-04 84 views
0

文件中獲取數據,我從文件中有一個數據,像這樣:從FSEEK()PHP

1234567890abcde1234567890

我想從這些數據採取一些具體的數據。所以我得到價值:「abcde」,其數據位於11-15。在這裏,我在出現PHP和輸出使用FSEEK()是:

資源ID#3

這裏是使與上述輸出的代碼:

<?php 

$fp = fopen('data/tes.txt', 'r'); 

// read some data 
$data = fgets($fp, 25); 

// move back to the beginning of the file 
// same as rewind($fp); 
fseek($fp, 11); 
echo $fp; 

?> 

而,我想在第11-15位獲取數據。請幫幫我。

回答

0

你犯了很容易的錯誤,你迴應資源而不是數據。

變化

fseek($fp, 11); 
echo $fp; 

echo fseek($fp, 11); 

記得在的成功,FSEEK,返回0;否則,返回-1。如果你想搜索數據更好的解決方案將使用preg_match

<?php 
    $data = file_get_contents("data/tes.txt"); 
    $matches = array(); 
    preg_match("/[a-z]+/", $data, $matches); 
    print_r($matches); 
?> 

嘗試上面的代碼。如果要將字符串從/切割到特定位置,也可以使用substr()函數。

<?php 
    $data = file_get_contents("data/tes.txt"); 
    echo substr($data, 11, 4); 
    ?> 
+0

哦對不起,我剛剛意識到我錯了打印變量。 除此之外,如果我使用substr(),我沒有得到數據以前的位置11. 所以,實際上。我有一個變量來存儲一個位置的值,我將在前一個位置取5個位置和5個位置。 當提到數據的時候,我可以得到這個值: 左 - > abcde和右 - > 23456 你有解決方法嗎?謝謝師傅。 – user3193610

+0

將您的數據放到您的帖子中。解決方案很簡單,只需使用子模式juse preg_match或preg_match_all即可。我需要知道數據如何看起來像 – Robert

+0

,所以,本質上我有一個字符串的文件/數據內容到一定的長度(大約500萬字符串 - > .... acgtccagt ...)。例如,有150個位置的信息,我被要求在10和10個位置後面的位置(139-149和151-161)之前就位。我如何檢索該值? – user3193610