如何操作 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))."'";

Demo

您可以使用 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" 来防止此类漏洞的优势。