我创建了一个表单,用户从下拉菜单中选择日期和选项(列出路径中的所有文件)并提交。提交时,用户的输入以特定格式写入其他文件,但也显示在表单下方,以便用户可以看到最终输出。输出,特别是包含日期,然后是基于所选选项的链接(用户可以进行多项选择)。
示例:
用户从日期选择器中选择08-01-2014,从下拉列表中选择option1.txt
。现在已经以这种格式输出到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" );
?>
在窗体下显示用户输入的PHP代码( index.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>",
它只适用于单个条目,我必须手动添加相同的行,以便我可以将它应用于另一个条目。
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用basename
从完整路径中获取文件名:
$filename = basename($url,'.txt');
其中$url
是.txt文件的路径
答案 1 :(得分:0)
您可以使用preg_replace
来使用正则表达式来完成工作。
$current = preg_replace(
'/(.+)\.(.{2,3})$/i',
'<a href="test.php">\1</a>',
$current
);