PHP NSUpdate对TXT字符串的更新

PHP NSUpdate对TXT字符串的更新,php,dns,bind,named,Php,Dns,Bind,Named,iam使用NSUpdate从PHP更新DNS记录 一切正常,但当我想更新/添加TXT记录时出现了一些问题 添加文本记录并不像SPF的SRV那么难 不,是的 问题: 尝试添加类似“这是一个TXT记录”的内容 从PHP发送到NSUPDATE后(与其他记录一起使用) 绑定DNS服务器获取以下信息: TXT中的域“这”是“一个”TXT“记录” 但这是错误的!检查我的密码,四处张望..没用 代码: <?php if ($txt_true) { $tt

iam使用NSUpdate从PHP更新DNS记录

一切正常,但当我想更新/添加TXT记录时出现了一些问题

添加文本记录并不像SPF的SRV那么难

不,是的

问题: 尝试添加类似“这是一个TXT记录”的内容

从PHP发送到NSUPDATE后(与其他记录一起使用)

绑定DNS服务器获取以下信息: TXT中的域“这”是“一个”TXT“记录” 但这是错误的!检查我的密码,四处张望..没用

代码:

    <?php
        if ($txt_true) {
             $ttl2 = '36';
                // TXT string could be almost anything, just make sure it's quoted.
                // $txt_var = str_replace("'", "", $txt_var);
                // $txt_var = str_replace('"', "", $txt_var);
                //$txt_var = '"'. $txt_var.'"';
                $data .= "update add ".$sub.".".$domain.". ".$ttl2." IN TXT ".$txt_var."\n"; 

          }
function dns_update ($id_domain,$mydata) {
 global $nsupdate;

 if (domain_exists($id_domain)) {
  $infos = domain_infos($id_domain);
  $domain = $infos['domain'];
  $dnsip = $infos['dnsip'];
  $key = $infos['key'];
  if ($key != '') { $add = ' -y '.$key; }
  $data = "server $dnsip\n";
  $data .= "zone $domain\n";
  $data .= $mydata;
  $data .= "\n";
  $result = `echo "$data" | $nsupdate$add`;
  return $result;

 } else {
  return false;
 }
}
和Quote TXT记录发生在


HTML=>INPUT=>DO=>Wirte DB&Function=>NSUPDATE

您需要在文本数据周围加引号。如果包含任何嵌入引号,则需要对其进行转义:

$txt_var = str_replace('"', '\"', $txt_var);
$data .= "update add $sub.$domain. $ttl2 IN TXT \"$txt_var\"\n";
由于此字符串包含双引号,因此应在
echo
语句中使用单引号:

$result = `echo '$data' | $nsupdate$add`;

但是,更好的办法是使用API,而不是通过命令行执行此操作。请参阅库。

需要添加:在SQL DB中,strin被正确写入thx,即它;我很抱歉不能投票支持你,因为我的名誉/