Necesito ayuda urgente con este codigo php.

  • Autor Autor tranza
  • Fecha de inicio Fecha de inicio

tranza

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
Saludos, estoy terminando un macros y el macro utiliza un script php para spinnear textos.

El problema esta en que en la parte donde pongo el contenido SPINTAX no me deja tirar un codigo HTML porque me tira error Parse error: parse error in C:\wamp\www\spinWP.php on line 21

El codigo es este.

PHP:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IMACROS+SPIN WORDPRESS NETWORK BY: MEEN</title>
</head>

<body>
<H1>IMACROS+SPIN WORDPRESS NETWORK BY: MEEN</H1>
<br />
Check <span id="result_box" lang="en" xml:lang="en">Press</span> F5
<br />
</body>
</html>

<?php
//Title Spin
$title ="titulo ";

//Content Spin
$spin_content= " AQUI LLEVA EL CONTENIDO MAS UN enlace <a href="http://example.com"</a>"

//Tags Spin
$spin_tags="..";

//blog_description Spin
$blog_description="descripcion";
//spin_blog_url
$spin_blog_url="url";
//spin_blog_name
$spin_blog_name=" nombre";

//ip
$ip=" proxies ";
function spin($a){
if(preg_match('#\{(.+?)\}#is',$a,$b))
{
if(($i=strpos($b[1],'{'))>-1)$b[1]=substr($b[1],$i+1);$c=explode('|', $b[1]);$a=preg_replace("+\{".preg_quote($b[1])."\}+is", $c[array_rand($c)],$a,1);return spin($a);}return $a;
}

?>
<?php
echo "<form id='form1' name='form1' method='post' action='spin.php'>";

  echo "<label>Title:<br />";
  echo "<textarea name='title' id='title' cols='100' rows='5'>";
  echo spin($title);
  echo "</textarea>";
  echo "</label>";
 echo "<p>";
    echo "<label>Content:<br />";
    echo "<textarea name='content' id='content' cols='100' rows='5'>";
    echo spin($spin_content);
    echo "</textarea>";
    echo "</label>";
 echo "</p>";
 echo "<p>";
    echo "<label>blog_description:<br />";
    echo "<textarea name='blog_description' id='blog_description' cols='100' rows='5'>";
    echo spin($blog_description);
    echo "</textarea>";
    echo "</label>";
 echo "</p>";
    echo "<p>";
    echo "<label>blog_url:<br />";
    echo "<textarea name='blog_url' id='blog_url' cols='100' rows='5'>";
    echo spin($spin_blog_url);
    echo "</textarea>";
    echo "</label>";
 echo "</p>";
    echo "<p>";
    echo "<label>Tags:<br />";
    echo "<textarea name='tags' id='tags' cols='100' rows='5'>";
    echo spin($spin_tags);
    echo "</textarea>";
    echo "</label>";
 echo "</p>";
    echo "<p>";
    echo "<label>blog_name:<br />";
    echo "<textarea name='blog_name' id='blog_name' cols='100' rows='5'>";
    echo spin($spin_blog_name);
    echo "</textarea>";
    echo "</label>";
 echo "</p>";
    echo "<p>";
    echo "<label>ip:<br />";
    echo "<textarea name='ip' id='ip' cols='100' rows='5'>";
    echo spin($ip);
    echo "</textarea>";
    echo "</label>";
 echo "</p>";
echo "</form>";
?>

POr ahi ya supongo que el problema vendra se usar codigo html dentro de php sin un echo o un print, yo de php conozco nada. Lo que este codigo hace es generar una pagina HTML para que cada vez que el bot acceda a ella pueda copiar el contenido, el contenido lo muestra perfecto, pero si agrego un enlace me tira error.
 
Prueba cambiando esta parte:


Insertar CODE, HTML o PHP:
//Content Spin
$spin_content= " AQUI LLEVA EL CONTENIDO MAS UN enlace <a href="http://example.com"</a>"
Por esta:
Insertar CODE, HTML o PHP:
//Content Spin
$spin_content= " AQUI LLEVA EL CONTENIDO MAS UN enlace <a href="http://www.example.com/">Palabras</a>";
 
Insertar CODE, HTML o PHP:
$spin_content= " AQUI LLEVA EL CONTENIDO MAS UN enlace <a href="http://example.com"</a>"

Esta línea está mal. Sustituye las comillas del principio y del final por ' y no olvides el ;

Insertar CODE, HTML o PHP:
$spin_content= 'AQUI LLEVA EL CONTENIDO MAS UN enlace <a href="http://example.com"</a>';
 

Muchísimas gracias brother, ya me funciona.
 
Necesitas un buen editor de código, como notepad++, sublime_text o incluso gedit o el editor interno de mc.

Todos esos editores ayudan a encontrar estos fallos con las comillas, que a todos nos pasa alguna vez, porque cambian los colores del texto del código.
 
un alternativo hubiera sido:
Insertar CODE, HTML o PHP:
$spin_content= "AQUI LLEVA EL CONTENIDO MAS UN enlace <a rel=\"nofollow\" href=\"http://example.com\"</a>";

en este caso no hay diferencia, pero hay casos donde si importa.
 
En php para strings simples siempre debe utilizarse comillas simples, esta => '

No es lo mismo utilizar comillas dobles y simples, las comillas dobles le dicen a php que interprete el contenido y se fije si puede ejecutar algo dentro, las comillas simples indican que no hay nada que mirar dentro, es solo un string.

Ejemplos:
'Intento escribir un salto de linea \r\n estoy en la segunda linea?'
"Intento escribir un salto de linea \r\n estoy en la segunda linea?"
Si hacemos un echo en cada caso, en el primer ejemplo veremos que nos imprime el \r\n porque precisamente no interpreto nada, solo era un string. En el segundo caso no veremos el \r\n si no que nos saldra el texto en 2 lineas distintas.

Ejemplo:
'Quiero mostrar el valor de la variable $test'
"Quiero mostrar el valor de la variable $test"
En este caso lo mismo, si hacemos un echo de esas 2 lineas, en el primer caso veremos que nos imprime $test y en el segundo caso nos imprimira el valor de esa variable.

Aca pueden ver el ejmplo funcionando.
PHP code - 22 lines - codepad

Por lo cual siempre que quieran utilizar un simple string va con comillas simples, esto ahorra recursos del sistema ya que no tiene que chequear nada.
 
Solo era para demostrar que se puede "escapar" (traducción que siempre ha sonado extraño de 'escape') las comillas. El caso donde importa es cuando quieres rellenar un textbox con PHP (como ya has dicho: las saltas de linea no se interpretan entre comillas simples).
 
Como puedo hacer que por ejemplo lo que quede dentro de $Spin_content sea llamado desde otro archivo TXT osea.

//Content Spin
$spin_content= " leer archivo.txt para obtener el contenido que debe salir aqui";

No se si me de a entender, la idea es editar cada archivo por separados, cada uno independiente.
 
Para eso usa la función file_get_contents() e imprímela o simplemente usa un include.
 
Para eso usa la función file_get_contents() e imprímela o simplemente usa un include.

Muchas gracias. Me ha quedado.

---------- Post agregado el 07-abr-2013 hora: 01:08 ----------

Edito: bueno ahora tengo un problema, he puesto esto file_get_contents('C:\Users\lol\Desktop\spin/tag.txt') pero ahora los acentos me aparecen con un simbolo de ?, osea ya cuando se impreme la pagina html con el contenido a mostrar, todo los acentos de las palabras me aparecen con un ?

EDIT2: bueno creo que he resuelto cambiado el charset a iso-8859-1, las tilde me salen bien, esperemos que los demas simbolos no den problemas.
 
Última edición:
O puedes cambiar el tipo de documento a UTF8 sin BOM y te irá bien 🙂

Un saludo.
 
También puedes utilizar utf8_encode(); para codificar en UTF-8 lo que estás devolviendo.
Saludos :encouragement:
 
Coincido con s3rgy