如何将字符串转换为多变量?
How to convert string to multiple variable?
我想创建一个电子表格,用户可以在文本区域输入多个电子邮件地址。
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<br><br>
<textarea name="email"></textarea>
<input type="submit" name="submit" value="Submit">
</form>
当用户在 textarea.like 下图中键入多个电子邮件时
<?php
echo $_POST["name"].'<br>';
echo $_POST["email"].'<br>'; //make the three email convert to three variable.
?>
有什么想法吗???
foreach ($_POST["email"] as $email) {
// anyidea
}
$_POST["email"][0] = 'peter@gmail.com';
$_POST["email"][1] = 'mary@gmail.com';
$_POST["email"][2] = 'super@yahoo.com';
非常感谢。
您可以在 PHP http://php.net/manual/en/function.explode.php
中使用分解函数
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
您可以尝试按照模式 \s*,\s*
拆分您的 CSV 电子邮件列表。这将处理逗号分隔符之前或之后的任意数量的空格。
$input = "peter@gmail.com, mary@gmail.com , super@yahoo.com";
$emails = preg_split('/\s*,\s*/', $input);
print_r($emails);
Array ( [0] => peter@gmail.com [1] => mary@gmail.com [2] => super@yahoo.com )
这就是我要做的,
$emails = array_filter(array_map('trim', explode(',', $_POST['email'])));
Explode 根据第一个参数 array_map 将字符串分解为数组,其工作方式有点像循环并将 trim 应用于每个元素,其中 trim 是白色 space(从两边删除空的 spaces)。数组过滤器删除任何虚假的数组元素。比如''空字符串.
所以这会处理
之类的事情
example@email.com, ,,someotheremail@email.com
输出
array(
'example@email.com',
'someotheremail@email.com'
)
如果你真的想变得灵活,就这样做
$emails = array_filter(array_map('trim', preg_split('/(,|\||\s)/', $_POST['email'])))
与上面的功能相同,但允许您使用 spaces 逗号或竖线作为分隔符。
我想创建一个电子表格,用户可以在文本区域输入多个电子邮件地址。
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<br><br>
<textarea name="email"></textarea>
<input type="submit" name="submit" value="Submit">
</form>
当用户在 textarea.like 下图中键入多个电子邮件时
<?php
echo $_POST["name"].'<br>';
echo $_POST["email"].'<br>'; //make the three email convert to three variable.
?>
有什么想法吗???
foreach ($_POST["email"] as $email) {
// anyidea
}
$_POST["email"][0] = 'peter@gmail.com';
$_POST["email"][1] = 'mary@gmail.com';
$_POST["email"][2] = 'super@yahoo.com';
非常感谢。
您可以在 PHP http://php.net/manual/en/function.explode.php
中使用分解函数// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
您可以尝试按照模式 \s*,\s*
拆分您的 CSV 电子邮件列表。这将处理逗号分隔符之前或之后的任意数量的空格。
$input = "peter@gmail.com, mary@gmail.com , super@yahoo.com";
$emails = preg_split('/\s*,\s*/', $input);
print_r($emails);
Array ( [0] => peter@gmail.com [1] => mary@gmail.com [2] => super@yahoo.com )
这就是我要做的,
$emails = array_filter(array_map('trim', explode(',', $_POST['email'])));
Explode 根据第一个参数 array_map 将字符串分解为数组,其工作方式有点像循环并将 trim 应用于每个元素,其中 trim 是白色 space(从两边删除空的 spaces)。数组过滤器删除任何虚假的数组元素。比如''空字符串.
所以这会处理
之类的事情 example@email.com, ,,someotheremail@email.com
输出
array(
'example@email.com',
'someotheremail@email.com'
)
如果你真的想变得灵活,就这样做
$emails = array_filter(array_map('trim', preg_split('/(,|\||\s)/', $_POST['email'])))
与上面的功能相同,但允许您使用 spaces 逗号或竖线作为分隔符。