如何操作 PHP 中的文本以包含单引号和逗号
How to manipulate text in PHP to have single quote and coma
我的问题一定很简单,但我不知道该怎么做:
$input = "Hello, Beautiful, World";
和
$expected_output = "'Hello','Beautiful','World'";
我知道我可以按 explode(" ", $input);
拆分文本
但是如何加入 ', ?
为什么我需要它?
我需要它来准备 MySQL 查询,例如
SELECT value FROM tab_settings WHERE name IN ('Hello', 'Beautiful', 'World')
来自 $input
您可以使用下面的代码段来实现同样的效果
echo "'".implode("','",explode(", ", $input))."'";
您可以使用 REGEXP
SELECT * FROM author WHERE aut_name REGEXP 'hello|benny|meny';
阅读此处Logical AND operator in mySql REGEXP?
这可能回答了您的具体问题:
<?php
$subject = "Hello, Beautiful, World";
preg_match_all('/(\w+)/', $subject, $words);
$words = $words[1];
$tokens = [];
array_walk($words, function($word) use (&$tokens) {
$tokens[] = "'" . $word . "'";
});
$tokens = implode(',', $tokens);
var_dump($tokens);
输出显然是:
string(27) "'Hello','Beautiful','World'"
但请允许我们在这里提供提示:
您以这种基于字符串的方式构建 sql 查询的策略最终是一个非常糟糕的主意,因为它使您的代码容易受到通常称为 "sql injection attacks" 的攻击。你想阻止它。
请开始阅读结合使用 "prepared statements" 和 "parameter binding" 来防止此类漏洞的优势。
我的问题一定很简单,但我不知道该怎么做:
$input = "Hello, Beautiful, World";
和
$expected_output = "'Hello','Beautiful','World'";
我知道我可以按 explode(" ", $input);
但是如何加入 ', ?
为什么我需要它? 我需要它来准备 MySQL 查询,例如
SELECT value FROM tab_settings WHERE name IN ('Hello', 'Beautiful', 'World')
来自 $input
您可以使用下面的代码段来实现同样的效果
echo "'".implode("','",explode(", ", $input))."'";
您可以使用 REGEXP
SELECT * FROM author WHERE aut_name REGEXP 'hello|benny|meny';
阅读此处Logical AND operator in mySql REGEXP?
这可能回答了您的具体问题:
<?php
$subject = "Hello, Beautiful, World";
preg_match_all('/(\w+)/', $subject, $words);
$words = $words[1];
$tokens = [];
array_walk($words, function($word) use (&$tokens) {
$tokens[] = "'" . $word . "'";
});
$tokens = implode(',', $tokens);
var_dump($tokens);
输出显然是:
string(27) "'Hello','Beautiful','World'"
但请允许我们在这里提供提示:
您以这种基于字符串的方式构建 sql 查询的策略最终是一个非常糟糕的主意,因为它使您的代码容易受到通常称为 "sql injection attacks" 的攻击。你想阻止它。
请开始阅读结合使用 "prepared statements" 和 "parameter binding" 来防止此类漏洞的优势。