Convertir retornos de carro en salto de línea en html
El lenguaje HTML no interpreta los retornos de carro introducidos en el texto. La forma de poner un salto de línea en HTML es con la etiqueta <br>.
Si queremos que al mostrar un texto respete los retornos de carro tendremos que o bien introducir el texto entre etiquetas <pre> o bien sustituir los retornos de carro por <br>, y para esto tenemos varias posbilidades:
Usar la función nl2br que devuelve el texto con los <br> introducidos ya en las posiciones de los retornos de carro.
Otra posbilidad es usar alguna de las funciones destinadas a sustituir un texto por otro en una cadena. Por ejemplo:
para textos tipo DOS:
$texto=str_replace ( "\r\n", "<br>", $texto);
para textos tipo UNIX:
$texto=str_replace ( "\n", "<br>", $texto);
Recordamos la diferencia entre los fines de línea de tipo DOS que es "\r\n" y los de tipo UNIX que es simplemente "\n".
Otra posibilidad sería dividir el texto en líneas distintas y después gestionar las líneas por separado. Esto viene ilustrado con el siguiente ejemplo:
<?php
echo '<head>
<title>'.$_SERVER[PHP_SELF].'</title>
</head>
<html>
<body>';
$texto='PHP es un lenguaje de programación
que reúme unas características
muy especiales. Tiene una curva de
aprendizaje muy equilibrada,
es decir lo básico se aprende con
gran rapidez.
Es flexible y potente y multiplataforma.
Y por si todo esto fuera poco,
también es LIBRE.';
echo $texto;
echo '<p>';
$textodividido=split("\n",$texto);
foreach ($textodividido AS $linea)
{
echo $linea;
echo '<br>';
}
echo '</body>
</html>';
?>
Pasar una variable de JavaScript a PHP
Esto ya es algo más complicad, hay que tener en cuenta que PHP se ejecuta en el servidor mientras que JavaScript se ejecuta en el cliente; esto obliga a recargar la página para enviar los datos de la variable JavaScript al servidor. La recarga se puede hacer de diversas formas.
A continuación el ejemplo de código:
<?php
echo '<head>
<title>'.$_SERVER[PHP_SELF].'</title>
</head>
<html>
<body>';
echo '<script languaje="JavaScript">
var varjs="variable en JavaScript ";
</script>';
if (! isset($_POST[variable_php]))
{
echo '<form action="'.$_SERVER[PHP_SELF].'" method=post name=pasar>
<input type=hidden name=variable_php></form>';
echo '<script languaje="JavaScript">
document.pasar.variable_php.value=varjs;
document.pasar.submit();
</script>';
}
echo "Valor de la variable en PHP: $_POST[variable_php] <br>";
echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";
echo '</body>
</html>';
?>
Hacer que una variable contenga el nombre de otra variable
En ocasiones resulta útil poder usar una variable que contenga el nombre de otra variable. Vemos un ejemplo:
$base="total";
entonces si ejecutamos:
${$base}=127;
es equivalente a
$total=127;
Una utilidad de esta característica del lenguaje es poder asignar valores a variables partiendo de arrays asociativos:
$registro=array("articulo" => "procesador", "cantidad" => 125, "precio" => 210);
foreach ($registro AS $indice => $contenido)
${$indice}=$contenido;
y con esto estaríamos haciendo las asignaciones:
$articulo="procesador";
$cantidad=125;
$precio=210;