/ / Como você iria higienizar os URLs nesta função? - php, url, output, sanitize

Como você higienizar os URLs nesta função? - php, url, output, sanitize

Eu sou novo em PHP e tenho dificuldade em tentar limpar a saída que essa função cria. Qualquer resposta será bem vinda.

Função está abaixo:

function getTemplateBreadcrumbs($path, $title){

$path = str_replace("/", "/", $path);

$breadcrumbs = "<ul>n";
$breadcrumbs .= "  <li><a href="/">Home</a></li>n";

$directories = explode("/", $path);
$tempPath = "/";

for($x=1; $x < count($directories)-2; $x++){
if($directories[$x] != null){

$tempPath .= $directories[$x] . "/";

$linkText = getPageVariable("pageTitle", $_SERVER["DOCUMENT_ROOT"] . $tempPath . "index.php");
if($linkText == null){
$linkText = ucwords(str_replace("-", " ", $directories[$x]));
}

$breadcrumbs .= "  <li><a href="" . $tempPath . "">$linkText</a></li>n";
}
}

$breadcrumbs .= "  <li>" . $title . "</li>n";
$breadcrumbs .= "</ul>n";

return $breadcrumbs;
}

Respostas:

1 para resposta № 1

Usar filter_var() com o FILTER_SANITIZE_URL bandeira.

$url = filter_var($tempPath , FILTER_SANITIZE_URL);

1 para resposta № 2

você pode depurar usando echo, print_r(), var_dump() Eu uso:

echo htmlspecialchars(print_r($var));

exemplo de como você pode usar:

function getTemplateBreadcrumbs($path, $title){

//rest of the code
echo "<pre>";
echo htmlspecialchars(print_r($breadcrumbs));
echo "</pre>";
return $breadcrumbs;
}

se você quiser testar de outra parte do código:

$teste = getTemplateBreadcrumbs("/home/index", "Home Page");
echo "<pre>";
echo htmlspecialchars(print_r($teste));
echo "</pre>";