Php函数不适用于javascript


Php function do not work with javascript

我有一些php和javascript,一切正常,没有收到任何错误消息。我可以在没有任何错误的情况下将数据发布到数据库中。一切看起来都很好,但我不能在php中使用某些函数。

示例。

我有一个文本区域,我用ajax将其数据发送到一个php文件。在php文件中需要使用str_replace函数。我可以在同一个php文件中将数据插入到数据库中而不会出现任何错误,但我尝试使用的函数,如str_replace或mysqli_real_escape_string等,都不起作用。

原因是什么?

这里是代码。

    $(".editBoxButton").click(function(){
        var yazi = jQuery('#editInput').val();
            $.ajax({
                type: 'POST' ,
                url : 'ajax/editEntry.php',
                    data: {
                    text: yazi,
                    },
                success : function(d){ 
                alert(d);
                location.reload();  //refresh
                }
            });
    });

ajax/editEntry.php

<?php
$yeniyazi=$_POST['text'];   
$yeniyazi = str_replace("'n", "<br>", $yeniyazi);
$s=$yeniyazi;
echo json_encode($s);
?>

在警报中,我静止不动。它不会被替换。

我没有收到任何错误。只有str_replace不起作用,这是我的问题。除了strreplace,它工作正常

您可能只需要执行以下操作:

$yeniyazi = nl2br($yeniyazi);

如果您真的想手动替换,请使用regex。

$yeniyazi = preg_replace("/'r?'n/s", "<br />", $yeniyazi);

实际上,您必须用另一个转义符或使用单引号。

$val = str_replace("''n" , "<br>", $val);

或者你可以在一行中这样做:

<?php 
echo json_encode(nl2br($_POST['text']));   

我希望这个例子能帮助你:

<?php
// Order of replacement
$str     = "Line 1'nLine 2'rLine 3'r'nLine 4'n";
$order   = array("'r'n", "'n", "'r");
$replace = '<br />';
// Processes 'r'n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $str);
 // Outputs F because A is replaced with B, then B is replaced with C, and so on...
// Finally E is replaced with F, because of left to right replacements.
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// Outputs: apearpearle pear
// For the same reason mentioned above
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

我在javascript和PHP中使用'n也有问题。

当前环境:

  • PHP 5.3.10

  • Javascript

  • XHTML 1.0

问题:

....
if (rowcount == 5) {
    openShipments += ''n';
    rowcount = 0;
}
....

使用以下''n时工作:

....
if (rowcount == 5) {
    openShipments += '''n';
    rowcount = 0;
}
....