在solr结果中隐藏路径(id)



我使用的是Solr 7.5.0。使用Linux Mint Tara。我有一个程序,在solr中只能调用json结果的"id"。这是HTML代码:

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form action="solr2.php" method="post">
value:<input type="text" name="value">
<input type="submit" name="submit">
</form>
</body>
</html>

这是solr2.php代码:

<?php
$value = $_POST['value'];
$cari = file_get_contents("http://localhost:8983/solr/pdfindex/select?q=" .$value. "&rows=100&start=0&hl=true");
$contents = utf8_encode($cari);
$results = json_decode($cari);
$numFound = json_encode($results->response->numFound);
for ($i = 0; $i <= $numFound-1; $i++) {
$tab[$i] = $results->response->docs[$i]->id;
}
for ($i = 0; $i <= $numFound-1; $i++) {
echo '<tr>
<td style=text-align: center;><a
href="'.$tab[$i].'">'.$tab[$i].'</a></td>
</tr>';
}
?>

结果是:

/home/ken/Documents/referesi/umkm_digital/Strategi Pemberdayaan umkm Menghadapi Pasar Bebas Asean.pdf/home/kvin/Documents/referesi/umkm_digital/2012_Strategi-Pemberdayaan umkm Menghadapi Pasar Bebas Asean.pdf

问题是:我可以隐藏路径并只显示pdf标题吗?

对不起,我英语不好:(

在PHP中使用basename

给定一个包含文件或目录路径的字符串,此函数将返回尾随名称组件。

> php -r "var_dump(basename('/home/kevin/Documents/referensi/umkm_digital/Strategi Pemberdayaan UMKM Menghadapi Pasar Bebas Asean .pdf /home/kevin/Documents/referensi/umkm_digital/2012_Strategi Pemberdayaan UMKM Menghadapi Pasar Bebas Asean.pdf'));"
string(64) "2012_Strategi Pemberdayaan UMKM Menghadapi Pasar Bebas Asean.pdf"

还要注意,您应该转义发送给Solr的任何用户输入,否则您将使Solr服务器暴露于用户的恶意请求。如果用户是经过身份验证和信任的,这可能不是问题,但如果您使用的输入对您不应该信任的普通用户可用,请确保对其进行转义。

最简单的方法是使用库来访问Solr,例如Solarium。

最新更新