Foros del Web » Programando para Internet » PHP »

Juego: "¿Dónde está el error?"

Estas en el tema de Juego: "¿Dónde está el error?" en el foro de PHP en Foros del Web. Cita: Iniciado por stramin OYE abimaelrc tu aporte al manual de PHP sigue ahí!!! Bueno, no te puedo oir Pues al parecer entró y se ...

  #331 (permalink)  
Antiguo 06/05/2011, 16:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por stramin Ver Mensaje
OYE abimaelrc tu aporte al manual de PHP sigue ahí!!!
Bueno, no te puedo oir

Pues al parecer entró y se quedó

Desde hace un rato estoy tratando de preparar uno, que sé por qué es el error, pero no doy con la solución , cuando lo logre lo indico
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #332 (permalink)  
Antiguo 06/05/2011, 16:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Ya por fin, ok este es el ejercicio, cuando yo hago esto
Código PHP:
Ver original
  1. $xml = '<foo>
  2.     <candy att="fruits">fruits</candy>
  3.     <candy att="vegetable">vegetable</candy>
  4.     <candy att="pizza">pizza</candy>
  5.     <candy att="pizza">pizza</candy>
  6.     <candy att="twix">twix</candy>
  7. </foo>';
  8.  
  9. $obj = new SimpleXMLElement($xml);
  10. foreach($obj->xpath('//candy[not(@att=preceding-sibling::candy/@att)]/@att') as $v){
  11.     echo $v->att . '<br />';
  12. }
Imprime:

fruits
vegetable
pizza
twix

Evitando que se repitan. Pero si hago esto
Código PHP:
Ver original
  1. <?php
  2. $xml = '<foo>
  3.     <bar>
  4.         <baz>
  5.             <candy att="fruits">fruits</candy>
  6.         </baz>
  7.     </bar>
  8.     <bar>
  9.         <baz>
  10.             <candy att="vegetable">vegetable</candy>
  11.         </baz>
  12.     </bar>
  13.     <bar>
  14.         <baz>
  15.             <candy att="pizza">pizza</candy>
  16.         </baz>
  17.     </bar>
  18.     <bar>
  19.         <baz>
  20.             <candy att="pizza">pizza</candy>
  21.         </baz>
  22.     </bar>
  23.     <bar>
  24.         <baz>
  25.             <candy att="twix">twix</candy>
  26.         </baz>
  27.     </bar>
  28. </foo>';
  29.  
  30. $obj = new SimpleXMLElement($xml);
  31. foreach($obj->xpath('//candy[not(@att=preceding-sibling::candy/@att)]/@att') as $v){
  32.     echo $v->att . '<br />';
  33. }
Imprime:

fruits
vegetable
pizza
pizza
twix

Mostrando los que se repiten. ¿Por qué y cómo se puede solucionar en una sola línea usando xpath una sola vez?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #333 (permalink)  
Antiguo 06/05/2011, 16:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Juego: "¿Dónde está el error?"

Porque los elementos candy no están bajo el mismo nodo padre, así que no son nodos 'hermanos'.

Una posible solución podría ser:
Código PHP:
Ver original
  1. $obj = new SimpleXMLElement($xml);
  2. foreach($obj->xpath('//candy[not(@att=ancestor::bar/preceding-sibling::bar/descendant::candy/@att)]/@att') as $v){
  3.     echo $v->att . '<br />';
  4. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #334 (permalink)  
Antiguo 06/05/2011, 17:09
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Ohhhh, muy bueno , otra forma de lograrlo, aunque me gustó más el hacerlo así como lo ingresó David
Código PHP:
Ver original
  1. <?php
  2. $obj = new SimpleXMLElement($xml);
  3. foreach($obj->xpath('//bar[not(descendant::candy/@att=preceding-sibling::bar/descendant::candy/@att)]//candy/@att') as $v){
  4.     echo $v->att . '<br />';
  5. }

Y para aquellos que aprenden en forma gráfica o visual visiten http://zvon.org/xxl/XPathTutorial/Output/example16.html para entender como trabaja preceding-sibling.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #335 (permalink)  
Antiguo 06/05/2011, 19:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

También vi que se puede resolver algo así
Código PHP:
Ver original
  1. <?php
  2. $xml = '<foo>
  3.    <bar>
  4.        <baz>
  5.            <candy att="fruits">fruits</candy>
  6.        </baz>
  7.    </bar>
  8.    <bar>
  9.        <baz>
  10.            <candy att="vegetable">vegetable</candy>
  11.        </baz>
  12.    </bar>
  13.    <bar>
  14.        <baz>
  15.            <candy att="pizza">pizza</candy>
  16.        </baz>
  17.    </bar>
  18.    <bar>
  19.        <baz>
  20.            <candy att="pizza">pizza</candy>
  21.        </baz>
  22.    </bar>
  23.    <bar>
  24.        <baz>
  25.            <candy att="twix">twix</candy>
  26.        </baz>
  27.    </bar>
  28. </foo>';
  29.  
  30. $obj = new SimpleXMLElement($xml);
  31. foreach($obj->xpath('//candy[not(@att=preceding::candy/@att)]/@att') as $v){
  32.     echo $v->att . '<br />';
  33. }
Bueno existe mucho material para lograrlo

David tu turno
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #336 (permalink)  
Antiguo 06/05/2011, 20:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Juego: "¿Dónde está el error?"

Una fácil: ¿cuál sería la sintaxis correcta para escribir el texto literal '{$variable}' dentro de comillas dobles?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #337 (permalink)  
Antiguo 09/05/2011, 08:08
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Bueno deje tiempo para que alguien contestara, pero ya que nadie lo hace,
Código PHP:
Ver original
  1. <?php
  2. $variable = 'foo';
  3. echo "'{$variable}'"; // imprime foo
  4. echo "'{\$variable}'"; // imprime '{$variable}'
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #338 (permalink)  
Antiguo 09/05/2011, 08:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Juego: "¿Dónde está el error?"

¿que hay de nuevo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #339 (permalink)  
Antiguo 09/05/2011, 14:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 18 años, 11 meses
Puntos: 839
Respuesta: Juego: "¿Dónde está el error?"

Correcto. Podría pensarse que es \{$variable} pero la llave de apertura no es válida para la secuencia de escape.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #340 (permalink)  
Antiguo 09/05/2011, 19:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

¿Por qué si hago
Código PHP:
Ver original
  1. <?php
  2. $colors = array('red', 'blue', 'green', 'yellow');
  3. foreach ($colors as &$color) {
  4.     $color = strtoupper($color);
  5. }
  6. foreach ($colors as $key => $color) {
  7.     $color = strtoupper($color);
  8. }
  9. print_r($colors);
muestra como resultado
Código PHP:
Ver original
  1. (
  2.     [0] => RED
  3.     [1] => BLUE
  4.     [2] => GREEN
  5.     [3] => GREEN
  6. )
? ¿Y de que forma se podría obtener el resultado correcto en mayuscula sin quitar el segundo foreach?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #341 (permalink)  
Antiguo 09/05/2011, 19:48
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Juego: "¿Dónde está el error?"

lo mas seguro me gane la vecina de abimael (lo sabremos pronto)...
pero supongo que es porque en el primer foreach, $color es una referencia de un indice del array (probablemente el ultimo elemento). aparentemente, al $color ser una referencia, en el segundo foreach php no inicializa la variable porque ya existe, entonces lo que hace es asignar el valor a esa referencia el cual es el ultimo indice del array. tendria que destruir (unset) primero la variable antes de volver a usarla.

pd: hace como dos dias jugaba con codigos y se me ocurrio ver que efecto tenia usar una referencia en un foreach, y la verdad no comprendi que era lo que sucedia. justo queria traer ese problema al juego pero no sin antes entenderlo, pero ya abimael se me adelanto! de todos modos, espero que expliquen bien el problema. me interesa mucho entenderlo.

Código PHP:
<?php
$colors 
= array('red''blue''green''yellow');
foreach (
$colors as &$color) {
    
$color strtoupper($color);
}
unset(
$color);
foreach (
$colors as $key => $color) {
    
$color strtoupper($color);
}
print_r($colors);
@edit:
continuando con mis pruebas, otra forma de solucionarlo seria indicar en el segundo foreach que $color es una referencia de la misma forma como el primer foreach.

Código PHP:
<?php
$colors 
= array('red''blue''green''yellow');
foreach (
$colors as &$color) {
    
$color strtoupper($color);
}

foreach (
$colors as $key => &$color) {
    
$color strtoupper($color);
}
print_r($colors);
pd2: si gane, paso el turno... lo lamento mucho porque seria la segunda vez que lo hago.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 09/05/2011 a las 20:32 Razón: error escritura
  #342 (permalink)  
Antiguo 09/05/2011, 22:11
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Muy bien zerokilled, el primero es la mejor forma, para evitar problemas, tal vez la segunda puede presentar cosas inesperadas. Ahora para que veas el comportamiento,

Si hicieramos esto
Código PHP:
Ver original
  1. <?php
  2. $colors = array('red', 'blue', 'green', 'yellow');
  3.  
  4. foreach ($colors as &$color){}
  5.  
  6. var_dump($colors);
  7.  
  8. var_dump($GLOBALS);
Cada vez que se modifica $color se modifica el último valor del array.

Imprime algo así
Código PHP:
Ver original
  1. array(4) {
  2.   [0]=>
  3.   string(3) "red"
  4.   [1]=>
  5.   string(4) "blue"
  6.   [2]=>
  7.   string(5) "green"
  8.   [3]=>
  9.   &string(6) "yellow"
  10. }
  11. array(7) {
  12.   ["GLOBALS"]=>
  13.   *RECURSION*
  14.   ["_POST"]=>
  15.   array(0) {
  16.   }
  17.   ["_GET"]=>
  18.   array(0) {
  19.   }
  20.   ["_COOKIE"]=>
  21.   array(0) {
  22.   }
  23.   ["_FILES"]=>
  24.   array(0) {
  25.   }
  26.   ["colors"]=>
  27.   array(4) {
  28.     [0]=>
  29.     string(3) "red"
  30.     [1]=>
  31.     string(4) "blue"
  32.     [2]=>
  33.     string(5) "green"
  34.     [3]=>
  35.     &string(6) "yellow"
  36.   }
  37.   ["color"]=>
  38.   &string(6) "yellow"
  39. }
Si te fijas se creo una variable (así como en el global lo muestra) llamada $color que hace referencia al último array que tiene como valor yellow (lógicamente) este es una referencia. Ahora, cuando se ejecuta un segundo foreach, cada vez se modifica el valor $color y este modifica el último valor del array. Por eso queda como valor green, porque es el último valor indicado. Es decir el segundo array lo que hace es algo como
Código PHP:
Ver original
  1. array(4) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> &string(6) "yellow" }
  2.  
  3. $color = 'red';
  4. array(4) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> &string(6) "red" }
  5.  
  6. $color = 'blue';
  7. array(4) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> &string(6) "blue" }
  8.  
  9. $color = 'green';
  10. array(4) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> &string(6) "green" }
  11.  
  12. // lógicamente el último valor es
  13. $color = 'green';
  14. array(4) { [0]=> string(3) "red" [1]=> string(4) "blue" [2]=> string(5) "green" [3]=> &string(6) "green" }
Cada vez que se modifica $color se modifica el último valor del array.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 09/05/2011 a las 22:17
  #343 (permalink)  
Antiguo 09/05/2011, 23:16
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 14 años, 11 meses
Puntos: 1485
Respuesta: Juego: "¿Dónde está el error?"

gracias man! ya voy viendo como es el trasfondo!
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #344 (permalink)  
Antiguo 15/05/2011, 15:59
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

A ver si este los pone a pensar un poco
Sin ejecutarlo, qué imprime este código ofuscado?
Código PHP:
$oo00 'AEOHRMLNEA';
$o000 'onoeiwalaiwr';
$o0o0 'uutrn532 dfmito5';
$o00o '*#$!*^#&$@(!)(#$';
$o0oo0 $oo00{3}.$o000{4}.$o000{7}.$o000{2}.$o000{6}.$o000{8}.$o000{3};
$oo0oo $o0oo0{0}.$o0oo0{3}.$o0oo0{2}.$o0oo0{5};
$o0o0o0 $o0o0{2}.$o0o0{5}.$oo0oo.$o0o0{8}.$oo00{5}.$o0o0{1}.$o0o0{4}.$o0o0{9}.$o0o0{14}.$o00o{3};
echo 
substr($o0o0o0strlen(strlen(5295494999)), strlen($o0o0o0)); 
Sigo pensando en que me pasé de variables
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #345 (permalink)  
Antiguo 15/05/2011, 22:47
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: Juego: "¿Dónde está el error?"

hola muundo!
Y creo que debería ser
Código PHP:
echo substr($o0o0o0strlen(strlen(5295494999)), 12); 
El segundo parámetro de substr es la longitud de la sub cadena y no hasta que posición "cortar" de la cadena de referencia.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #346 (permalink)  
Antiguo 16/05/2011, 16:39
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

No, error
El mensaje es Hola Mundo! y el segundo parámetro es correcto. En el que creo que me equivoqué es en el 3, que debería ser:
Código PHP:
echo substr($o0o0o0strlen(strlen(5295494999)), strlen($o0o0o0) - 2); 
Igual te concedo el honor de dar el siguiente reto,

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #347 (permalink)  
Antiguo 17/05/2011, 21:46
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 14 años, 11 meses
Puntos: 14
Respuesta: Juego: "¿Dónde está el error?"

Sí, tienes razón, es el tercer parámetro y no el segundo (no se en qué pensaba ). Ahora, el resultado que obtenía era muundo (sí, con 2 U seguidas), pero bueno, tanto o0 confunden (aunque tengo mi duda que resulte sólo una de dicha letra).

Por último, en razón a que no era el resultaba que se esperaba, sugeriría que tú plantearas un nuevo reto.
__________________
Sólo quien nunca nada hace, nunca se equivoca.

Última edición por De_la_Cuesta_13; 17/05/2011 a las 21:47 Razón: Mal uso de tags xD
  #348 (permalink)  
Antiguo 17/05/2011, 22:02
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

Insisto, es 'Mundo!' con una sola U..
Por ahora no se me ocurre nada, por eso te doy el honor
Si no, el turno está a quien tenga algún reto
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #349 (permalink)  
Antiguo 21/05/2011, 23:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Si tenemos esto
Código PHP:
Ver original
  1. <?php
  2. for($i=0x00; $i<=0xff; $i++){
  3.     // aqui va el echo
  4. }
En una sola línea, usando echo, como puedo mostrar los hexadecimales. Es decir ese código tiene que mostrar los datos así
Código text:
Ver original
  1. 0
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. a
  12. b
  13. c
  14. d
  15. e
  16. f
  17. 10
  18. 11
  19. 12
  20. 13
  21. 14
  22. 15
  23. 16
  24. 17
  25. 18
  26. 19
  27. 1a
  28. 1b
  29. 1c
  30. 1d
  31. 1e
  32. 1f
  33. 20
  34. 21
  35. 22
  36. 23
  37. 24
  38. 25
  39. 26
  40. 27
  41. 28
  42. 29
  43. 2a
  44. 2b
  45. 2c
  46. 2d
  47. 2e
  48. 2f
  49. 30
  50. 31
  51. 32
  52. 33
  53. 34
  54. 35
  55. 36
  56. 37
  57. 38
  58. 39
  59. 3a
  60. 3b
  61. 3c
  62. 3d
  63. 3e
  64. 3f
  65. 40
  66. 41
  67. 42
  68. 43
  69. 44
  70. 45
  71. 46
  72. 47
  73. 48
  74. 49
  75. 4a
  76. 4b
  77. 4c
  78. 4d
  79. 4e
  80. 4f
  81. 50
  82. 51
  83. 52
  84. 53
  85. 54
  86. 55
  87. 56
  88. 57
  89. 58
  90. 59
  91. 5a
  92. 5b
  93. 5c
  94. 5d
  95. 5e
  96. 5f
  97. 60
  98. 61
  99. 62
  100. 63
  101. 64
  102. 65
  103. 66
  104. 67
  105. 68
  106. 69
  107. 6a
  108. 6b
  109. 6c
  110. 6d
  111. 6e
  112. 6f
  113. 70
  114. 71
  115. 72
  116. 73
  117. 74
  118. 75
  119. 76
  120. 77
  121. 78
  122. 79
  123. 7a
  124. 7b
  125. 7c
  126. 7d
  127. 7e
  128. 7f
  129. 80
  130. 81
  131. 82
  132. 83
  133. 84
  134. 85
  135. 86
  136. 87
  137. 88
  138. 89
  139. 8a
  140. 8b
  141. 8c
  142. 8d
  143. 8e
  144. 8f
  145. 90
  146. 91
  147. 92
  148. 93
  149. 94
  150. 95
  151. 96
  152. 97
  153. 98
  154. 99
  155. 9a
  156. 9b
  157. 9c
  158. 9d
  159. 9e
  160. 9f
  161. a0
  162. a1
  163. a2
  164. a3
  165. a4
  166. a5
  167. a6
  168. a7
  169. a8
  170. a9
  171. aa
  172. ab
  173. ac
  174. ad
  175. ae
  176. af
  177. b0
  178. b1
  179. b2
  180. b3
  181. b4
  182. b5
  183. b6
  184. b7
  185. b8
  186. b9
  187. ba
  188. bb
  189. bc
  190. bd
  191. be
  192. bf
  193. c0
  194. c1
  195. c2
  196. c3
  197. c4
  198. c5
  199. c6
  200. c7
  201. c8
  202. c9
  203. ca
  204. cb
  205. cc
  206. cd
  207. ce
  208. cf
  209. d0
  210. d1
  211. d2
  212. d3
  213. d4
  214. d5
  215. d6
  216. d7
  217. d8
  218. d9
  219. da
  220. db
  221. dc
  222. dd
  223. de
  224. df
  225. e0
  226. e1
  227. e2
  228. e3
  229. e4
  230. e5
  231. e6
  232. e7
  233. e8
  234. e9
  235. ea
  236. eb
  237. ec
  238. ed
  239. ee
  240. ef
  241. f0
  242. f1
  243. f2
  244. f3
  245. f4
  246. f5
  247. f6
  248. f7
  249. f8
  250. f9
  251. fa
  252. fb
  253. fc
  254. fd
  255. fe
  256. ff
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #350 (permalink)  
Antiguo 22/05/2011, 00:01
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

Fácil:
Código PHP:
for($i=0x00$i<=0xff$i++) {
    echo 
dechex($i).'<br>';

__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #351 (permalink)  
Antiguo 22/05/2011, 06:29
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Juego: "¿Dónde está el error?"

Código PHP: Ver originalCopiar1.<?php2.function num($num){3. if($num == 10){ return; }4. num($num++);5. echo $num;6.}7.echo num(0); Ese código publica un error algo así

Cita:

Fatal error: Allowed memory size of ....... bytes exhausted (tried to allocate ....... bytes) in ....... on line 4
Debería publicar como resultado: 807517098. ¿Cuál es el problema y cómo resolverlo?
  #352 (permalink)  
Antiguo 22/05/2011, 08:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

@Sourcegeek, exacto

@kol1, te recomiendo que indentes el código y lo coloques entre el highlight correspondiente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #353 (permalink)  
Antiguo 22/05/2011, 14:48
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

Por fin respondi uno, jeje

Le paso mi turno a quien desee poner un reto
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #354 (permalink)  
Antiguo 22/05/2011, 14:50
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

Por fin respondi uno, jeje

Le paso mi turno a quien desee poner un reto

EDIT: Disculpen el doble post, pero mi PC estaba fallando al tratar de enviar el mensaje,
el foro me daba error, le di varias veces y se puso doble D:
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #355 (permalink)  
Antiguo 22/05/2011, 15:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Si tengo un archivo llamado foobar.txt y tengo esto
Código PHP:
Ver original
  1. foo
  2. bar
  3. baz
  4. candy
Si hago esto
Código PHP:
Ver original
  1. <?php
  2. $file = file('foobar.txt');
  3. echo '<pre>';
  4. echo implode(PHP_EOL, $file);
  5. echo '</pre>';
¿Por qué me imprime con doble PHP_EOL y como lo resuelvo?

Es decir me imprime
Código PHP:
Ver original
  1. foo
  2.  
  3. bar
  4.  
  5. baz
  6.  
  7. candy
Pero debería ser
Código PHP:
Ver original
  1. foo
  2. bar
  3. baz
  4. candy
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #356 (permalink)  
Antiguo 22/05/2011, 15:16
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

No sabía que a implode se le puede dar ese uso, pero, analizando un poco el código, creo que implode une el string establecido como primer valor a cada línea del otro string, que en este caso es un archivo..
Cada línea ya tiene PHP_EOL en el txt, si no saldrían todas las palabras sin salto de línea, entonces como también se le indica a implode() que le agregue otro PHP_EOL, se agrega un salto de línea extra..
Para resolverlo, simplemente se le manda un valor vacío:
Código PHP:
echo implode(''$file); 
Cada día se aprende algo nuevo.
Espero haber dado en el clavo
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #357 (permalink)  
Antiguo 22/05/2011, 15:24
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 9 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por Sourcegeek Ver Mensaje
Cada día se aprende algo nuevo.
Espero haber dado en el clavo
Aprender aún hay más por, mi joven padawan.
Código PHP:
Ver original
  1. $file = file('foobar.txt', FILE_IGNORE_NEW_LINES);
  #358 (permalink)  
Antiguo 22/05/2011, 15:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Juego: "¿Dónde está el error?"

Los dos resolvieron, pero la indicada es la de meta
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #359 (permalink)  
Antiguo 22/05/2011, 16:28
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 9 meses
Puntos: 832
Respuesta: Juego: "¿Dónde está el error?"

Recuerdo que en su momento, ese tema de leer-escribir archivos me costó casi un cojón aprenderlo. Por otra parte, aclarar que lo de "padawan" es una broma; Sourcegeek me lleva años luz en la materia. En un rato lanzo el tiro.
  #360 (permalink)  
Antiguo 22/05/2011, 16:31
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: Juego: "¿Dónde está el error?"

Cómo que años luz? Nah, no creo, quien sabe si tu eres el que me lleva siglos luz (?)
Bueno, esperamos tu tiro
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: a-por-la-vecina-de-meta, juegos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 40 personas




La zona horaria es GMT -6. Ahora son las 16:05.