通过php文件替换多个字符串

时间:2016-04-11 20:40:25

标签: javascript php ajax string str-replace

这里有我的功能,按下按钮激活它,发送两个输入ID以形成一个字符串:

var str = "headingText=" + $("#headingText").val() +
    "&centerText=" + $("#centerText").val();

$.ajax({
    url: "indexpdf.php",
    data: str,
    cache: false,
    success: function (result) {
        console.log("Success!");
    }
});

现在我的indexpdf.php文件:

<?
$headingText = trim(isset($_POST['headingText']) ? $_POST['headingText'] : '');
$centerText = trim(isset($_POST['centerText']) ? $_POST['centerText'] : '');

$initialpdf = file_get_contents('file_html.php');

$initialpdf = str_replace(array(
        '%headingText%',
        '%centertext%'
    ), array (
        $headingText,
        $centerText,
    ), $initialpdf);

$fp = fopen('file_html2.php','w');
file_put_contents('file_html2.php', $initialpdf);
?>

此处的目标是从第一页的输入中取出两个字符串并使用它们来替换所有&#34;%headingText%&#34;和&#34;%centerText%&#34;标签在&#34; file_html.php&#34;然后最后将其保存为&#34; file_html2.php&#34;。

该文件保存正常,但字符串替换不起作用..

3 个答案:

答案 0 :(得分:0)

您的ajax来电未设置为任何方法。它会自动使用$_GET。如果您希望它使用$_POST,您可以使用简写:

使用POST获取的页面永远不会被缓存,因此jQuery.ajaxSetup()中的cache和ifModified选项对这些请求没有影响。

$.post("indexpdf.php", data: str,function (result) {
        console.log("Success!");
});

或者只需将“方法”选项添加到ajax

$.ajax({
    url: "indexpdf.php",
    data: str,
    method: "POST",
    cache: false,
    success: function (result) {
        console.log("Success!");
    }
});

答案 1 :(得分:0)

默认情况下,

$.ajax使用GET方法。如果服务器端代码期望接收POST数据,则必须添加:

$.ajax({
method: "POST",
...
});

此外,如果您使用file_put_contents(),则无需fopen()

答案 2 :(得分:0)

不是传递查询字符串供所有人查看,而是按如下方式传递JSON对象:

        var jsonData = {}
        jsonData.headingText = $("#headingText").val();
        jsonData.centerText = $("#centerText").val();

        $.ajax({
            url: "indexpdf.php",
            data: jsonData,
            cache: false,
            success: function (result) {
                alert("Success!");
            }
        });

这更清洁,更安全。访问数据可以在PHP文件中保持不变。