如何将textarea中的空格或换行转换为逗号分隔的PHP数组

时间:2017-11-02 18:52:06

标签: javascript php html arrays

我正在尝试为我的数组获得类似a,b,c,d的结果 添加textarea字段中的任何格式

$mydomain = htmlspecialchars($_POST['domainlist']);
$domainlist = preg_replace('/\s+/', '', $mydomain);
$domainlist = preg_replace('#\s+#',',',trim($str));
$domainlist = explode(',', $mydomain);


$keyword = $_POST["keyword"]; 
foreach($domainlist as $domain) {
    $file = file_get_contents('http://' . $domain);
    $searchnum = $keyword ; 

    if (stripos($file, $searchnum) !== false) { 
        echo 'record found on '   .$domain. '<br/>';
    } 
    else {
        echo 'record not found ' .$domain.  ' <br/>';
    }
}
例如

(注意额外的空白区域)

用户添加

a,b  , c, d

or

a     b     c     d

or 

a

b

c

d

将全部导致

a,b,c,d

删除额外的空格,将新行转换为逗号,或将空格转换为逗号并删除多余的空格

任何想法?

2 个答案:

答案 0 :(得分:3)

由于您希望数组循环显示,因此您可以使用preg_split拆分所需的字符,并使用PREG_SPLIT_NO_EMPTY将消除任何额外内容。那么就不需要explode

$domainlist = preg_split('/[ ,\n\r]/', $mydomain, null, PREG_SPLIT_NO_EMPTY);

答案 1 :(得分:0)

您还可以使用str_replace查找空格和换行符char。但我建议使用preg_replace函数。

$mydomain = htmlspecialchars($_POST['domainlist']);
$domainlist = preg_replace(['/[\s]+/','/[\n]+/'], ",", $mydomain);

$domainlist = explode(',', $mydomain);

结果:http://sandbox.onlinephpfunctions.com/code/af212f55156ee5770a62adc4c5c70ae820e9c2df