Salve newzenk. Você não explicou exatamente qual é a dificuldade, mas acho que está acontecendo o seguinte, você está querendo usar php depois que a página já foi carregada, o PHP é executado no servidor, que só te retorna uma página html, então, não dá pra você passar uma variável de js para um script php em uma página que já foi renderizada, mesmo pq não tem mais nada de php, só html e javascript quando a página esta carregada.
O que você pode fazer para contornar isso, é "mandar a variável" para a própria página, passando como parâmetro na URL, e ai ler a variável no seu php, mais ou menos assim (isso vale pra ceps no formato XXXXX-XXX).
<?php
if (isset($_GET['cep'])) {
$cep = array();
preg_match('/(\d{5})-(\d{3})/', $_GET['cep'], $cep);
if (count($cep) != 3) {
$msg_erro = "Formato do CEP inválido"; //Você pode usar essa mensagem pra colar na tela se passarem um cep inválido
} else {
$num_cep = $cep[1].$cep[2];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://viacep.com.br/ws/$num_cep/json"); //TROCAR ' POR " - texto com aspas simples não interpretam variáveis.
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILETIME, true);
$end = curl_exec($ch);
$json = $end;
$obj = json_decode($json);
$txtcep_endereço = $obj->{'logradouro'};
$txtcep_bairro = $obj->{'bairro'};
$txtcep_cidade = $obj->{'localidade'};
$txtcep_estado = $obj->{'uf'};
curl_close($ch);
}
}
?>
Novamente, você não consegue executar métodos de javascript "de dentro" de um script php.
O que você pode fazer agora, é recarregar a página passando o valor do campo cep para o GET.