Php 爆发并解决每个问题

Php 爆发并解决每个问题,php,mysql,foreach,explode,Php,Mysql,Foreach,Explode,用户在如下框中输入URL: google.net 谷歌网站 然后我尝试验证/检查URL,以便: function check_input($data) { $data = trim($data); $data = mysql_real_escape_string($data); return $data; } 验证后: $flr_array = explode("\n", $flr_post); 因此,我可以验证每个URL。但是mysql\u real\u escap

用户在如下框中输入URL:

  • google.net
  • 谷歌网站
  • 然后我尝试验证/检查URL,以便:

    function check_input($data) {
        $data = trim($data);
        $data = mysql_real_escape_string($data);
        return $data;
    }
    
    验证后:

    $flr_array = explode("\n", $flr_post);
    
    因此,我可以验证每个URL。但是
    mysql\u real\u escape\u string
    查找URL之间的空格并添加:

    <--print_r information-->
    google.net\r\ngoogle.com
    
    
    google.net\r\n google.com
    
    我的URL应该如下所示:

  • google.net
  • 谷歌网站
  • 如何删除
    \r
    ,因为它会破坏其他一切? 有没有更好的方法验证URL


    尝试使用
    str\u replace
    ,但运气不佳。

    改用preg\u split

    $parts = preg_split('/[\n\r]+/', $data);
    
    它将在有一个或多个\n或\r的任何位置拆分

    你用mysql\u real\u escape\u字符串做什么?这是用于以后的数据库吗?在进行其他处理之前,不要进行转义。这种处理可能会破坏m_r_e_s()的转义功能,并且仍然容易受到sql注入的攻击


    m_r_e_s()必须是在sql查询字符串中使用字符串之前对字符串所做的最后一件事。

    请改用preg_split

    $parts = preg_split('/[\n\r]+/', $data);
    
    它将在有一个或多个\n或\r的任何位置拆分

    你用mysql\u real\u escape\u字符串做什么?这是用于以后的数据库吗?在进行其他处理之前,不要进行转义。这种处理可能会破坏m_r_e_s()的转义功能,并且仍然容易受到sql注入的攻击


    m_r_e_s()必须是在sql查询字符串中使用字符串之前对字符串所做的最后一件事。

    验证URL的最佳方法是使用PHP函数,如下所示:

    if( ! filter_var($url, FILTER_VALIDATE_URL))) {
      echo 'BAD URL';
    } else {
      echo 'GOOD_URL';
    }
    

    验证URL的最佳方法是使用PHP函数,如下所示:

    if( ! filter_var($url, FILTER_VALIDATE_URL))) {
      echo 'BAD URL';
    } else {
      echo 'GOOD_URL';
    }
    

    您应该使用正则表达式来验证$flr_数组中的URL

    使用,如果有匹配项,它将用结果填充$matches变量(如果您在函数调用中提供)。这是php.net对此的看法:


    “如果提供了匹配项,则它将被搜索结果填充。$matches[0]将包含与完整模式匹配的文本,$matches将包含与第一个捕获的括号子模式匹配的文本,依此类推。”

    您应该使用正则表达式验证$flr\u数组中的URL

    使用,如果有匹配项,它将用结果填充$matches变量(如果您在函数调用中提供)。这是php.net对此的看法:


    “如果提供了匹配项,则会用搜索结果填充。$matches[0]将包含与完整模式匹配的文本,$matches将包含与第一个捕获的括号子模式匹配的文本,依此类推。”

    这就是单引号和双引号之间的区别所在:

    $flr_array = explode('\r\n', $flr_post);
    

    这就是单引号和双引号的区别所在:

    $flr_array = explode('\r\n', $flr_post);
    
    可以使用:nl2br()-在字符串中的所有换行符之前插入HTML换行符

    例如:

    <?php
        echo nl2br("Welcome\r\nThis is my HTML document");
    ?>
    
    
    
    输出:

    Welcome<br />
    This is my HTML document
    
    欢迎您
    这是我的HTML文档
    来源:

    您可以使用:nl2br()-在字符串中的所有换行符之前插入HTML换行符

    例如:

    <?php
        echo nl2br("Welcome\r\nThis is my HTML document");
    ?>
    
    
    
    输出:

    Welcome<br />
    This is my HTML document
    
    欢迎您
    这是我的HTML文档

    来源:

    哇,我从没听说过这个功能。触摸一下,先生!PHP的过滤功能将改变你的生活!哇,我从没听说过这个功能。触摸一下,先生!PHP的过滤功能将改变你的生活!使用PDO准备的语句来进一步避免sql注入。使用PDO准备的语句来进一步避免sql注入。