PHP - Colocar frase

   
Vista:

Colocar frase

Publicado por The Loko (2 intervenciones) el 25/05/2015 02:01:34
Hola a todos antes que nada lo siento si provoco spam pero necesito postear unas funciones que e estado practicando para un examen, pero si alguien se aburre les dejo una cuestion que me trae de cabeza

1) Como re-ordenar una frase poniendo la primera letra y la ultima consecutivamente, ejemplo.

$frase="HOLA"
resultado= HAOL

$frase2="1234567"
resultado="1726354"

Solucion que me dio un amigo
Si a alguien se le ocurre otra manera o como simplificarlo no estaría mal, sino también me sirve
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$texto="1234567";
echo $texto;
echo "<hr>";
 
if (strlen($texto)%2==1){ //Si es IMPAR
	$limite=floor(strlen($texto)/2);
 
		for ($i=0 ; $i <= $limite ; $i++){
		echo substr($texto, $i, 1);
 
			if ( $i != $limite ) {
			echo substr($texto, strlen($texto) -$i-1, 1);
			}
		}
} else { // Si es PAR
	$limite=floor(strlen(($texto)/2));
 
		for ($i=0; $i <= $limite; $i++){
			echo substr($texto, $i, 1);
			echo substr($texto, strlen($texto)-$i-1, 1);
		}
}
?>

<-- Chuletario esto lo podeis ignorar son los apuntes que necesito para mi examen -->
formulario.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<html>
<head><title>Pruebas para Examen</title></head>
<pre>
<center>
<body>
<?php
$inicio=time();
setcookie('inicio', $inicio);
?>
<h3>Los campos marcados con un "*" son obligatorios.</h3>
	<form method="post" action="validar.php" name="uno">
		<table border="1">
			<tr>
				<td>Introduce tu nombre*: </td>
				<td><input type="text" name="nombre" pattern="[A-Za-z]{1,20}" required title="Introduce s&oacute;lo letras"></td>
			</tr>
			<tr>
				<td>Introduce tu primer apellido*: </td>
				<td><input type="text" name="apellido1" pattern="[A-Za-z]{1,20}" required title="Introduce s&oacute;lo letras"></td>
			</tr>
			<tr>
				<td>Introduce tu segundo apellido: </td>
				<td><input type="text" name="apellido2" pattern="[A-Za-z]{1,20}" title="Introduce s&oacute;lo letras"></td>
			</tr>
			<tr>
				<td>Introduce tu edad*: </td>
				<td><input type="text" name="edad" pattern="[0-9]{1,2}" required title="Introduce s&oacute;lo n&uacute;meros" size="2" maxlength="2"></td>
			</tr>
			<tr>
				<td>Intoduce tu DNI*: </td>
				<td><input type="text" name="numdni" pattern="[0-9]{8}" required maxlength="8" size="8" title="Introduce los 8 n&uacute;meros de tu DNI"> - <input type="text" name="letdni" required pattern="[A-Z]{1}" title="Introduce la letra de tu DNI" maxlength="1" size="1">
			</tr>
			<tr>
				<td>Selecciona tu sexo*: </td>
				<td>Hombre: <input type="radio" name="genero" value="Hombre" required> <br> Mujer: <input type="radio" name="genero" value="Mujer" required></td>
			</tr>
			<tr>
				<td>Selecciona tu deporte favorito*: </td>
				<td>
					<select name="deporte" required>
						<option value="futbol">F&uacute;tbol</option>
						<option value="basket">Baloncesto</option>
						<option value="f1">F&oacute;rmula uno</option>
					</select>
				</td>
			</tr>
			<tr>
				<td>Introduce un texto para mostrarlo al reves:</td>
				<td><input type="text" name="texto" pattern="[A-Za-z]{1,100}" title="Introduce solo letras"></td>
			</tr>
			<tr>
				<td>Introduce una frase:</td>
				<td><input type="text" name="frase" pattern="[A-Za-z]{1,100}" title="Introduce solo letras"></td>
			</tr>
			<tr>
				<td>Introduce palabra a buscar en la frase:</td>
				<td><input type="text" name="palabra" pattern="[A-Za-z]{1,100}" title="Introduce solo letras"></td>
			</tr>
			<tr>
				<td colspan="2"><center><input type="submit" name="enviar" value="Pulsa para enviar"></center></td>
			</tr>
		</table>
	</form>
</body>
</center>
</pre>
</html>
validar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<html>
<head></head>
<pre>
<body>
<center>
		<?php
		function letra_dni($dni) {
        return substr("TRWAGMYFPDXBNJZSQVHLCKE",strtr($dni,"XYZ","012")%23,1);
		}
 
		function reves($cadena){
		$len=strlen($cadena)-1;
		$rev="";
		for ($i=$len;$i>=0;$i--){
		$rev.=$cadena[$i];
		}
		print ("<tr>");
		print ("<td>Tu texto al reves es: ".$rev."</td>");
		print ("</tr>");
		}
 
		function vida(){
		$finish=time();
		$total=$finish-$_COOKIE['inicio'];
			if ($total<30){
			return $total;
			}
			else {
			return 0;
			}
		}
 
		if (isset($_POST['enviar'])){
		if (vida()>0){
		print ("<table border='1'>");
			print ("<tr>");
				print ("<td>"."Tu nombre es: ".$_POST['nombre']."</td>");
			print ("</tr>");
			print ("<tr>");
				print ("<td>"."Tu primer apellido es: ".$_POST['apellido1']."</td>");
			print ("</tr>");
			if ($_POST['apellido2']==""){
				print ("<tr>");
				print ("<td>No has introducido segundo apellido</td>");
			}
			else {
				print ("<tr>");
				print ("<td> Tu segundo apellido es: ".$_POST['apellido2']."</td>");
			}
			print ("<tr>");
				print ("<td>Tienes ".$_POST['edad']." a&ntilde;os</td>");
			print ("</tr>");
			if ($_POST['letdni']==letra_dni($_POST['numdni'])){
				print ("<tr>");
					print ("<td>Tu DNI es ".$_POST['numdni']."-".$_POST['letdni']."</td>");
				print ("</tr>");
			}
			else {
				print ("<tr>");
					print ("<td>Tu DNI no es v&aacute;lido</td>");
				print ("</tr>");
			}
			print ("<tr>");
					print ("<td>Tu Sexo es: ".$_POST['genero']."</td>");
			print ("</tr>");
			print ("<tr>");
					print ("<td>Tu deporte favorito es: ".$_POST['deporte']."</td>");
			print ("</tr>");
			if ($_POST['texto']==""){
				print ("<tr>");
					print ("<td>No has introducido texto.</td>");
				print ("</tr>");
			}
			else {
				reves($_POST['texto']);
			}
			if ($_POST['frase']==""){
				print ("<tr>");
					print ("<td>No has introducido ninguna frase.</td>");
				print ("</tr>");
			}
			else {
				if ($_POST['palabra']==""){
				print ("<tr>");
					print ("<td>No has introducido ninguna palabra.</td>");
				print ("</tr>");
				}
					else {
						if (strstr($_POST['frase'],$_POST['palabra'])==true){
							print ("<tr>");
								print ("<td>La palabra '".$_POST['palabra']."' se encuentra en la frase</td>");
							print ("</tr>");
						}
						else {
							print ("<tr>");
								print ("<td>La palabra '".$_POST['palabra']."' no se encuentra en la frase</td>");
							print ("</tr>");
						}
					}
			}
		print ("<tr rowspan='4'>");
			print ("<td colspan='2'>Hoy es dia ".date("d")." de ".date("m")." del ".date("Y")."</td>");
		print ("</tr>");
		print ("<tr rowspan='4'>");
			print ("<td colspan='2'>Los datos son correctos? <br> <a href='uno.php'>Si</a><br><a href='javascript:history.back(1)'>No</a></td>");
		print ("</tr>");
		print ("</table>");
		}
		else {
		print ("Has estado mas de 30 segundos sin darle a enviar.<a href='uno.php'>Volver atras</a>");
		}
		}
		else {
			print ("Por favor, rellena primero el formulario.");
		}
		?>
</center>
</body>
</pre>
</html>

bienvenido.php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 if (isset($_COOKIE['contador'])) {
	//si la cookie se a enviado aumenta en uno el valor almacenado
	setcookie ('contador', $_COOKIE['contador'] +1, time() + 365 *24 *60 *60);
	$mensaje = "Enhorabuena has visitado la pagina " . $_COOKIE['contador']. " veces";
 
 } else {
	 //Si es la primera vez que entramos y la cookie no se a enviado nunca
	 //genera la cookie "contador" con el valor 1
	 setcookie ('contador', 1, time() + 365 *24 *60 *60);
	 $mensaje = "Bienvenido a mi pagina web";
 }
 echo $mensaje ;
formatos.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
		echo "<hr>";
 
				/* Aade espacios a la derecha hasta tener 10 caracteres */
		         function estamos_formateando($parametro) {
					echo "<pre>";
					printf("-[%-10s]-\n ", $parametro);
					echo "</pre>";
				}
 
				/* aade asteriscos a la derecha hasta tener 10 caracteres */
				function estamos_formateando2($parametro) {
					echo sprintf("-[%'*10s]-\n", $parametro);
 
				}
 
				estamos_formateando("hola");
				estamos_formateando2("adios");
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Colocar frase

Publicado por xve (5513 intervenciones) el 25/05/2015 08:06:13
Hola The Loko, creo que lo he disminuido un poco...

1
2
3
4
5
6
7
8
9
10
<?php
$texto="1234567";
echo $texto;
echo "<hr>";
 
if (strlen($texto)>=3)
{
	echo $texto[0].$texto[strlen($texto)-1].substr($texto,1,strlen($texto)-2);
}
?>

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Colocar frase

Publicado por The Loko (2 intervenciones) el 25/05/2015 10:13:57
Hola xve.

Lo e probado el código y me daba como resultado esto:

1234567
---------------------
1723456

Solo me ordena las tres primeras letras, pero apartir de la 4ª posicion, sigue poniendo todas las letras en orden, de todos modos muchas gracias por el esfuerzo, pero con el ejemplo que tenia también me sirve ^^

Un saludo a todos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Colocar frase

Publicado por xve (5513 intervenciones) el 25/05/2015 14:32:51
Cierto, entendí mal lo que querías hacer... ;(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar