| ||||
| [solucionado] Problema con fwrite Tengo ya buen rato con este problema y no logro dar con la solución. El objetivo es escribir una línea en un archivo externo, en una posición específica. Hasta ahí todo funciona bien. El caso es que cada vez que actualizo la página que tiene el código, la otra también se actualiza. Quisiera que sólo escribiera la línea cuando ésta no se encuentre presente, en lugar de escribirla todo el tiempo. Aquí está el código: Código PHP:
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) Última edición por metacortex; 07/08/2009 a las 09:11 |
| ||||
| Respuesta: Problema con fwrite Cuestión de probar. A ver si resulta con eso. Gracias .
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Verifica este aporte a ver si te ayuda http://www.forosdelweb.com/f18/aport...equest-724214/ Verifica si esto es lo que deseas hacer. De verdad que me perdi con lo que quieres hacer pero verifica si esto te ayuda
Código PHP:
Ver originalCopiar
__________________ 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 GatorV; 10/08/2009 a las 10:19 |
| |||
| Respuesta: Problema con fwrite Estimado aqui le coloco una solución a su problema , o eso pienso:
Código php:
Ver originalCopiar Una sola cosa tiene defectuosa , no imprime una linea debajo de otra sino todo en una linea pero a los fines didacticos es util y funciona perfecto. Saludos! |
| ||||
| Respuesta: Problema con fwrite Mil gracias por su ayuda muchachos , aunque aún no encuentro manera de hacer funcionar el hijoep... código. Ya daré con la solución de un momento a otro.
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: Problema con fwrite $buscar nunca será vacío ya que se incluye el final de línea en todos los elementos del array. Prueba usando el flag FILE_IGNORE_NEW_LINES al llamar a file()
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
| Respuesta: Problema con fwrite Cita: Lo que pasa es que cuando borro la línea del archivo afectado y luego hago un echo a ambos ($buscar y $texto), $buscar aparece vacío en el primer refrescamiento. De ahí que lo haya utilizado como condición.
Iniciado por David $buscar nunca será vacío ya que se incluye el final de línea en todos los elementos del array. Prueba usando el flag FILE_IGNORE_NEW_LINES al llamar a file()
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: Problema con fwrite Tal vez sea porque al hacer echo parece estar vacío; debido a que no aparece un carácter sino sólo el salto de línea (PHP_EOL) contenido en $buscar. P.S.: Además, si revisas el código, al no usar FILE_IGNORE_ NEW_LINES y unir el array usando un salto de línea estás repitiendo ese salto que está presente en todos los elementos.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
| Respuesta: Problema con fwrite Ok corregi verifica si esto es lo que quieres. Lei de nuevo el principio y vi que habias hecho un cambio a lo que escribiste la primera vez y ahora como lo explicaste si entendi lo que quieres hacer creo yo
Código PHP:
Ver originalCopiar
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
| Respuesta: Problema con fwrite Carajo funcionóooooooo!!! ![]() Hermano abimaelrc me quito el sombrero con usted. Tremenda jugada la que hiciste en el bucle... Uff y hace rato yo le había llegado cerca, sólo que le metí otro valor a la variable y no la predefiní antes del for. Pero esto que hiciste está más que genial. Gracias! Todo el santo día buscándole la caída al problemita. A esta hora ya estaba buscando ejemplos sin bucles (no me culpen, fue producto de la desesperación).En fin, para quienes quieran saber qué hace este código: éste agrega una nueva línea de un archivo a otro, teniendo nosotros la posibilidad de elegir - a través de la variable $conteo- en cuál número de línea deseamos colocar la frase ($texto). Abimaelrc le agregó el ingrediente que faltaba: que no escriba la línea cada vez que el archivo se refresque. ... Y aún hay quienes piensan que los "viernes de geeks" no son emocionantes .Saludos! PD: por si las moscas, también le agregué el flag FILE_IGNORE_ NEW_LINES que recomendó David (gracias panita). Es bastante razonable.
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: [solucionado] Problema con fwrite Me alegra que lo hayas solucionado .Sólo como recomendación final, es conveniente usar la constante PHP_EOL en lugar de \n, ya que la combinación para el fin de línea no siempre es el mismo en todos los sistemas operativos. Saludos.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
| Respuesta: [solucionado] Problema con fwrite Gracias. En cuanto a eso noté que ese implode("\n... me elimina todo el intentado y pega las líneas "a la pared". Por ese lado es una lástima ya que me gusta indentar el código, pero lo importante es que funciona al 100%.
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) |
| ||||
| Respuesta: [solucionado] Problema con fwrite Bueno para el indentado el problema no creo que es el implode sino que tienes declarado un trim en la linea
Código php:
Ver originalCopiar Eso te esta borrando los espacios anteriores. Claro esta, lo estas haciendo porque quieres verificar la linea sino no hace el siguiente if o mejor dicho nunca va a encontrar la linea si esta indentada. Vas a tener que usar Expresiones regulares para verificar cuantos indentados tienes y guardarlos en una variable y despues que hagas el if vuelves a colocarle los indentados
__________________ 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; 08/08/2009 a las 07:36 |
| ||||
| Respuesta: [solucionado] Problema con fwrite En realidad probablemente no haga falta usar una expresión regular. Ya que el trim() puedes usarlo sólo en la comparación:
Código PHP:
Ver originalCopiar
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
| Respuesta: [solucionado] Problema con fwrite Hazle caso a David es mejor hacerlo de esa forma. lol
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
| Respuesta: Problema con fwrite Estimados, no pude evitar meter mis narizotas en este hilo solucionado ya . Analizando el código que publicó abimaelrc, aplicando la última sugerencia de David (dos mensajes arriba), y evaluando el resultado final de dicho código en distintas situaciones, resulta que el bucle for que hay allí no tiene utilidad alguna, ya que no realiza ninguna modificación y sólo interviene en el elemento cuyo índice es $conteo. Por lo tanto, no tiene sentido ciclar el array entero cuando sólo queremos tocar uno de sus elementos. @metacortex, el proceso en sí sólo requiere de una comprobación (if), y el uso de trim() por el tema de las tabulaciones:
Código php:
Ver originalCopiar Cero bucles. Este código tiene las mismas características (desde el punto de vista de resultado final) que el anterior. Hay algunos puntos a tomar en cuenta que quizás los estés pasando por alto (digo quizás):
Cita: Resulta que la desesperación puede llegar en ocasiones a ser más productiva ![]()
__________________ - Asesoría en programación PHP Última edición por okram; 08/08/2009 a las 20:03 |
| ||||
| Respuesta: [solucionado] Problema con fwrite Añadiendo lo que indica okram, si no quieres declarar las tabulaciones puedes encontrarlas antes de añadir la linea. Me refiero a esto
Código PHP:
Ver originalCopiar ya mismo hacemos un sistema operativo con este codigo
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| ||||
| Respuesta: [solucionado] Problema con fwrite Grande okram!!! Qué solución!! Sí, anoche precisamente me preguntaba acerca de la necesidad del bucle, ya que todo era cuestión de entrar, revisar/comparar una línea específica y escribir lo que había en la variable. Es decir, Sólo que los ejemplos que encontré incluían algún tipo de bucle y desistí por embotamiento. Este giro que le diste al asunto es sencillamente increíble. También quedó vigente el FILE_IGNORE_NEW_LINES de David (ahora más que esencial para el script) y la condicional de abimaelrc (variada) para impedir la escritura constante. Ahora sí estoy más feliz que Julie Andrews en la colina. Explicando de qué viene esto: A manera de información, lo que se ha hecho aquí viene resolviendo un importante problema relacionado a la activación automática de funciones de Wordpress a cualquier tipo de archivos, un proceso que hasta ahora se venía haciendo de forma estática, en especial por parte de los desarrolladores de plugins y plantillas. Específicamente requiero de este código para aplicar funciones Ajax en mi plugin, lo cual involucra un archivo externo que debe tener activadas las funciones nativas de Wordpress; para ello es necesario hacer -desde éste- un require_once a cierto archivo del sistema (wp-load.php, ubicado en la raiz del sitio) o de lo contrario devolvería error de función indefinida. El asunto radica en que Wordpress sólo reconoce como "suyo" a un archivo del directorio del plugin: el principal -que se declara mediante una cabecera especial- y activa todas sus funciones sólo a éste, pero "abandona" a los demás. Hasta ahora la forma que se usaba para traer el conjunto de funciones nativas era: Código PHP: Entonces me pregunté por qué no hacer que el mismo WP escriba automáticamente esa línea en otros archivos desde el archivo principal (el que Wordpress sí reconoce) y comencé a buscar documentación hasta completar el código inicial, que terminó funcionando, pero tenía el problemita de la reescritura constante, lo cual aún lo hacía inviable porque los plugins no sólo son consultados en el backend sino cada vez que una web es visitada. El desarrollo (y sus culpables ) quedaron debidamente documentados en el presente tópico. Y con este último tubazo fulminante de okram finalmente obtuvimos un código optimizado y usable que cumple con su función cabalmente, el cual sin duda alguna será parte esencial para todo plugin de Wordpress desde ahora, eso gracias a ustedes compadres.El código terminado: (Para usarlo debe modificarse los nombres de los archivos) Código PHP: - Imprime la ruta absoluta completa al archivo wp-load.php (el que activa las funciones de Wordpress en archivos estáticos) independientemente del lugar donde se encuentre el directorio del plugin. Si posteriormente la carpeta es movida, el script localizará automáticamente al archivo. - Si el archivo a modificar no es escribible, el script lanzará una advertencia en el panel de que es necesario incluir el código, proporcionando la ruta correcta del mismo en una etiqueta <pre>. - Si el código está correctamente en su lugar, el anuncio no saldrá (aunque el archivo no sea escribible).
__________________ Ayuda para desarrolladores avanzados en WordPress (Comenzando) Última edición por metacortex; 09/08/2009 a las 16:27 |