Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php函数不能与javascript一起使用_Php_Javascript - Fatal编程技术网

Php函数不能与javascript一起使用

Php函数不能与javascript一起使用,php,javascript,Php,Javascript,我有一些php和javascript,一切正常,我没有收到任何错误消息。我可以将数据毫无错误地发布到数据库中。一切看起来都不错,但我不能在php中使用某些函数 例如 我有一个textarea,我用ajax将它的数据发送到一个php文件。在php文件中需要使用str_replace函数。我可以在同一个php文件中向数据库插入数据,不会出现任何错误,但我尝试使用的str_replace或mysqli_real_escape_string等函数不起作用 原因是什么 这里是密码 $(".edit

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

例如

我有一个textarea,我用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);

?>

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


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

您可能应该执行以下操作:

$yeniyazi=nl2br($yeniyazi)

如果确实要手动替换,请使用正则表达式


$yeniyazi=preg\u replace(“/\r?\n/s”、“
”、$yeniyazi)

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

$val = str_replace("\\n" , "<br>", $val);
$val=str_替换(\\n“,“
”,$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

  • XHTML1.0

问题是:

....
if (rowcount == 5) {
    openShipments += '\n';
    rowcount = 0;
}
....
当使用下面的
\\n
按钮时,它会工作:

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

请确保对特殊字符使用双引号作为\n(发生在我身上)。我知道你的答案有双引号,以防你没有复制。JSON_encode将数组/对象转换成字符串。您似乎已经在处理字符串,因此不需要json_编码。还有一个好处,它将处理不同形式的新行(即。\r\n、\n\r\n和\r)