卡住了file_get_contents

时间:2014-03-02 04:28:53

标签: php

人。请帮我找出问题所在。我的ftvgirlsbay.com网站上有一个脚本:

    <?php
    define('C', 16); // NUMBER OF ROWS
    define('D', 6); // NUMBER OF CELLS

    $file = @file_get_contents('http://ftvgirlsbay.com/design/tables/gals.txt');
    if($file === FALSE) { 
        echo "<h2>Make file gals.txt with data!</h2>";
        return FALSE; 
    }
    $file = explode("\r\n", $file);
    $thumbs = array();
    while(list(,$el) = each($file)) {
        $el = explode('|', $el);
        if(isset($el[0]) && isset($el[1]))
            $thumbs[] = array($el[0], $el[1]);
    }
    //print_r($thumbs);
    $size = sizeof($thumbs);
    if($size < C*D) {
         echo "<h2>More data needed. You have $size, you need ".C*D."!</h2>";
         return FALSE;
    }

    $range = range(0, $size - 1);
    shuffle($range);
    //print_r($range);
?>
<table align=center>
<?php
    $num = 0;
    for($i = 0; $i < C; $i++) {
        echo '<tr align=center>'."\r\n";
        for($k = 0; $k < D; $k++) {
            echo '<td><a href="'.$thumbs[$range[$num]][1].'">FTV '.$thumbs[$range[$num]][0].' Gallery</a>&nbsp;&nbsp;&nbsp;&nbsp;</td>'."\r\n";
            $num++;
        }
        echo '</tr>'."\r\n";
    }
?>
</table>

此脚本的结果: &#34;需要更多数据。你有1,你需要96!&#34; (http://ftvgirlsbay.com/random_scripts/test.php

如果这部分

$file = @file_get_contents('http://ftvgirlsbay.com/design/tables/gals.txt');

更改为

$file = @file_get_contents('http://sexsticker.info/ftvgirlsbay.com/pictable/gals.txt');

它运作得很好

http://ftvgirlsbay.com/random_scripts/test2.php

因此,如果我链接到我服务器上的.txt文件,则脚本只读取1行。 如果我链接到远程服务器上的.txt - 脚本可以使用所有行

1 个答案:

答案 0 :(得分:1)

我发现了你的问题,并且能够复制这个问题。

问题在于

中的\r
$file = explode("\r\n", $file);

删除\r

$file = explode("\n", $file);

两台服务器可能不同。一个可能在Linux上,而另一个在Windows服务器上。