0

我创建了一个表单,用户从下拉菜单中选择日期和选项(列出路径中的所有文件)并提交它。提交后,用户的输入会以某种格式写入其他文件,但也会显示在表单下方,以便用户查看最终输出。输出,特别是包含日期和基于所选选项的链接(用户可以进行多项选择)。

例子:

用户从日期选择器和option1.txt下拉列表中选择 08-01-2014。现在已经以file.js这种格式输出:

'08-01-2014' : '<a href="/path/option1.txt" target="_blank"><span>option1.txt</span></a>',

并且还以这种格式显示在表单下方(option1.txt 带有下划线,因为它是一个链接,但不知道我是否可以在此处为显示目的加下划线):

08-01-2014 : option1.txt

所以我的问题是如何修改写下用户输入的代码,以便显示它的代码可以读取文件并显示08-01-2014 : option1没有.txt.

写下用户输入的 PHP 代码(writedown.php):

<?php
    $pickdate = $_POST['date'];
    $workout = $_POST['workout'];
    $date = '   \''.$pickdate .'\' : \'<a href="../routines/'.$workout.'" target="_blank"><span>'.$workout.'</span></a>\',' .PHP_EOL;
    $file = 'test.js';
// Open the file to get existing content
    $current = file_get_contents($file);
// Append a new workout to the file
    $current .= $date;
    $current = preg_replace('/};/', "", $current);
    $current = $current.'};';
// Write the contents back to the file
    file_put_contents($file, $current);
    header( "location:index.php" );
?>

在表单 ( index.php )下方显示用户输入的 PHP 代码:

<?php
    $file = "test.js";
    $current = file_get_contents( $file );
    $current = preg_replace('/var codropsEvents = {/', "", $current);
    $current = preg_replace('/,/', "<br>", $current);
    $current = preg_replace('/\'/', " ", $current);
    $current = preg_replace('/ /', " ", $current);
    $current = preg_replace('/};/', "", $current);
    //$current = preg_replace('/option1.txt/', "<a href='test.php'>option1</a>", $current);
    echo $current;
?>

我尝试了我所知道的一切,我可以在互联网上找到,我能得到的最接近的是上面代码中的注释行

//$current = preg_replace('/option1.txt/', "<a href='test.php'>option1</a>",

它仅适用于单个条目,我必须手动添加同一行,以便将其应用于另一个条目。

任何帮助将不胜感激。

4

2 回答 2

1

您可以只使用basename从完整路径中获取文件名:

$filename = basename($url,'.txt');

$url.txt 文件的路径在哪里

于 2014-08-01T18:52:15.920 回答
0

您可以使用preg_replace正则表达式来完成这项工作。

$current = preg_replace(
    '/(.+)\.(.{2,3})$/i',
    '<a href="test.php">\1</a>',
    $current
);
于 2014-08-01T18:49:29.583 回答