首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告: file_get_contents():文件名不能在

警告: file_get_contents():文件名不能在
EN

Stack Overflow用户
提问于 2014-07-16 19:31:09
回答 1查看 3.9K关注 0票数 0

我正在我的服务器上尝试这个新脚本,但我似乎不明白为什么它总是给我带来以下错误:

警告: file_get_contents():文件名不能空在第51行中的/include/classes/spin_Artile.php中

-> $string = file_get_contents($filesrand(1,count($files)) -1);

代码语言:javascript
复制
<?PHP
class Spintax
{
    public function process($text)
    {
        return preg_replace_callback(
            '/\{(((?>[^\{\}]+)|(?R))*)\}/x',
            array($this, 'replace'),
            $text
        );
    }

    public function replace($text)
    {
        $text = $this->process($text[1]);
        $parts = explode('|', $text);
        return $parts[array_rand($parts)];
    }
}
?>

<?PHP
ob_start();
$files = glob("spintax_articles/*.txt");
$spintax = new Spintax();
$string = file_get_contents($files[rand(1, count($files)) -1]);
echo $spintax->process($string);
$page = ob_get_contents();
ob_end_flush();
$fp = fopen("content.txt","w");
fwrite($fp,$page);
fclose($fp);
?>
EN

回答 1

Stack Overflow用户

发布于 2014-07-16 19:39:28

如果有实际匹配的文件,那么您可能会得到一个比最大值大1的随机索引。使用:

代码语言:javascript
复制
$string = file_get_contents($files[rand(1, count($files)-1)]);

注意-1的位置。

如果没有文件,您应该使用一个条件来检查。

代码语言:javascript
复制
<?php
$files = glob("spintax_articles/*.txt");

if(!empty($files)) {

    $spintax = new Spintax();
    $string  = file_get_contents($files[mt_rand(1, count($files)-1)]);

    $fp = fopen("content.txt", "w");
    fwrite($fp, $spintax->process($string));
    fclose($fp);
}
?>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24789164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档