PHP删除'';如果字符串不';不存在
我正在运行以下代码:PHP删除'';如果字符串不';不存在,php,Php,我正在运行以下代码: $stmt = $pdo_conn->prepare("SELECT * from admin where support_emails = :support_emails and logged = :logged and disabled = :disabled "); $stmt->execute(array(':support_emails' => 'Y', ':logged' => 'in', ':disabled' =>
$stmt = $pdo_conn->prepare("SELECT * from admin where support_emails = :support_emails and logged = :logged and disabled = :disabled ");
$stmt->execute(array(':support_emails' => 'Y', ':logged' => 'in', ':disabled' => ''));
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($records) > 0) {
foreach($records as $records2) {
if(filter_var($records2["email"], FILTER_VALIDATE_EMAIL)) {
$SupportEmailList = $records2["email"].', '.$SupportEmailList;
}
if(!empty($SupportEmailList)) {
$SupportEmailList = substr($SupportEmailList, 0, -2); // removes last 2 characters (`, `) from end of string
}
}
}
返回
email1@domain1.com, email2@domain2.com
当我在SQL中运行时
我补充说:
if(!empty($SupportEmailList)) {
$SupportEmailList = substr($SupportEmailList, 0, -2); // removes last 2 characters (`, `) from end of string
}
如果最后一个结果不存在,但似乎正在创建以下内容,则要从字符串末尾删除“”,“
”:
email1@domain1.com, email2@domain2.c
而不是:
email1@domain1.com, email2@domain2.com
试试看。可以将字符列表作为第二个参数传递,以选择要从字符串的开头/结尾修剪的内容:
$example_1 = 'email1@domain1.com, email2@domain2.com';
$example_2 = 'email1@domain1.com, email2@domain2.com, ';
$example_1 = trim($example_1, ', ');
$example_2 = trim($example_2, ', ');
var_dump($example_1); // string(38) "email1@domain1.com, email2@domain2.com"
var_dump($example_2); // string(38) "email1@domain1.com, email2@domain2.com"
var_dump(explode(', ', $example_1));
// array(2) { [0]=> string(18) "email1@domain1.com" [1]=> string(18) "email2@domain2.com" }
试试看。可以将字符列表作为第二个参数传递,以选择要从字符串的开头/结尾修剪的内容:
$example_1 = 'email1@domain1.com, email2@domain2.com';
$example_2 = 'email1@domain1.com, email2@domain2.com, ';
$example_1 = trim($example_1, ', ');
$example_2 = trim($example_2, ', ');
var_dump($example_1); // string(38) "email1@domain1.com, email2@domain2.com"
var_dump($example_2); // string(38) "email1@domain1.com, email2@domain2.com"
var_dump(explode(', ', $example_1));
// array(2) { [0]=> string(18) "email1@domain1.com" [1]=> string(18) "email2@domain2.com" }
我建议将结果保存在一个数组中,并使用(或join)以逗号连接它们 这样,您就不必处理尾随逗号问题
$email_address = array();
foreach($records as $records2) {
if(filter_var($records2["email"], FILTER_VALIDATE_EMAIL)) {
array_push($email_address, $records2["email"]);
}
}
$comma_separated_email_address = implode(",", $email_address);
echo $comma_separated_email_address ;
我建议将结果保存在一个数组中,并使用(或join)以逗号连接它们 这样,您就不必处理尾随逗号问题
$email_address = array();
foreach($records as $records2) {
if(filter_var($records2["email"], FILTER_VALIDATE_EMAIL)) {
array_push($email_address, $records2["email"]);
}
}
$comma_separated_email_address = implode(",", $email_address);
echo $comma_separated_email_address ;
您可以使用
分解
和内爆
再次拆分字符串
$data = explode(',', $elements);
$cleanedData = implode(',', $data);
您可以修剪数据中的空间修剪$data数组中的所有值
for ($i = 0; $i < count($data); $i++)
$data[$i] = trim($data[$i]);
for($i=0;$i
您可以再次使用分解和内爆来拆分字符串
$data = explode(',', $elements);
$cleanedData = implode(',', $data);
您可以修剪数据中的空间修剪$data数组中的所有值
for ($i = 0; $i < count($data); $i++)
$data[$i] = trim($data[$i]);
for($i=0;$i
我不明白您的问题,请删除“,”如果它不存在?无论如何,您应该使用PDO::fetch_NUM
获取数据。这样,您将收到一系列电子邮件,如['email1@domail.com', 'email2@mail.com“]
然后如果你不喜欢”email1@domail.com, email2@mail.com“
用于用字符串连接元素。我不理解您的问题,请删除”“如果它不存在?无论如何,您应该使用PDO::fetch_NUM
获取数据。这样,您将收到一系列电子邮件,如['email1@domail.com', 'email2@mail.com“]
然后如果你不喜欢”email1@domail.com, email2@mail.com“
用于用字符串连接元素。执行以下操作:
$emails = " email1@domain1.com , fsdfsdffdsffds , email2@domain2.com,sddsfsdsd ";
$emails = array_map('trim',explode(',',$emails));
$out = array_map(function($email){
return (filter_var($email, FILTER_VALIDATE_EMAIL)) ? $email : null;
},$emails);
$emails = implode(',',array_filter($out));
print_r($emails);
// email1@domain1.com,email2@domain2.com
做它:
您想将每个emailadres添加到由分隔的字符串中,?是的,基本上创建一个字符串,其中所有从数据库返回的电子邮件地址由逗号分隔。您想将每个emailadres添加到由分隔的字符串中,?是的,基本上创建一个字符串,其中所有从数据库返回的电子邮件地址由逗号分隔
从字符串的开头和结尾修剪字符(,
)。你想做什么?如果要按拆分,
请尝试explode()
。trim仅用于字符串的开头和结尾。@SenseeException我刚才回答OP的问题:从字符串结尾删除“,”。尽管这似乎取决于某种解释。我回答了一个关于trim是否仅删除“,”,"自始至终,。已删除问题注释:-)trim()
修剪字符串开头和结尾的字符(,
)。你想做什么?如果要按拆分,
请尝试explode()
。trim仅用于字符串的开头和结尾。@SenseeException我刚才回答OP的问题:从字符串结尾删除“,”。尽管这似乎取决于某种解释。我回答了一个关于trim是否仅删除“,”,"自始至终,。问题注释已删除:-)