1

多年来,我一直在尝试使用所有类型的“file、file_get_contents、fopen、opendir 等”来完成我正在尝试做的事情,但对我来说却无能为力,遗憾的是,这超出了我的理解范围。但我在这里学习。

我想做的事?我与 LucidWorks 合作,我建立了一个 Intranet 搜索,它搜索给定“C://example/example/...”的特定路径,并对所有文件进行全文搜索。在我的 Intranet 网站上搜索的输出很简单:

  • 文件名
  • 带有突出显示的关键字的正文标题
  • 文件路径

现在,这还不够,我懒惰的同伴希望能够单击文档标题(它确实有一个完整的路径到它后面的文档,只是为了更好地描绘它“C:/Ex/ex/ ex/docs/sap/text.txt(或任何其他终止))并在本地打开它。

这是我认为与我要完成的内容相关的代码部分。我内置的“解决方案”不起作用,但它可能会让您了解我在这里要完成的工作。

$searchParams = array(
                'hl' => 'true',
                'hl.fl' => 'body'
            );

            $response = $LWS->search($query, $offset, $limit, $searchParams);

            if ($response->response->numFound > 0) {

                foreach ($response->response->docs as $doc) {
                    ?>

                    <div id="resultbox">
                        <span id="resulttitle"> <?php echo "<a href={$doc->id}'>{$doc->title}</a><br />"; ?> </span> 

                        <?php
                        $content = (("{$doc->id}'>{$doc->title}"));
                        print_r( '<a href= ' . fopen(str_replace('%', ' ', $content), "r+") . '>Open File</a><br />');
                        ?>

                        <SPAN ID="copytext"  >
                            <?php echo substr($content, -100); ?> 
                            <br></SPAN>

                        <div id="sbody">
                            <?php
                            echo "..." . $response->highlighting->{$doc->id}->body[0] . "...<br /><br />";
                        }
                        echo '<br />';
                        return;
                    } else {
                        echo "No results for \"" . $query . "\"";
                        return;
                    }
                    ?>

上面还有一些代码,但与所提出的问题无关。

所以你们去吧伙计们,我希望得到帮助,并能够学习新的东西:)

4

1 回答 1

2

看起来好像您正试图将文件的内容放入href锚/链接 ( <a>) 标记的属性中。

相反,您需要做的是使用链接到指定文件的 url。在您的实现中,这可能看起来像这样;

print_r('<a href="' . $content . '">Open File</a><br />');

并且输出看起来像;

<a href="file:/C:/path/to/your/file.txt">Open File</a><br />
于 2013-06-07T12:45:05.380 回答