Php

Como utilizar la cache con php

Para cachear páginas con Php tenemos podemos utilizar un script que hará lo siguiente:

Primero ver si ya está la página que queremos enviar en la cache, y si existe pues la enviará, reduciendo costes y llamadas a la base de datos, etc.

Segundo, si no existe la página que queremos enviar la creará, y así estará disponible para la próxima vez que se envíe la web.

Por ultimo, también tendremos que poner una duración de los ficheros que hay en la cache, para ir reemplazándolos por otros cada equis tiempo.

Tendremos dos ficheros de cache, al primero lo llamaremos antes de leer cualquier linea, si tu página comienza en el index.php, pues en la primera linea pondríamos llamaríamos a este script.

<?php
include ('empezar.php');
?>

El script empezar.php

<?php
$url = $_SERVER["SCRIPT_NAME"];
$break = Explode('/', $url);
$file = $break[count($break) - 1];
$cachefile = 'cached-'.substr_replace($file ,"",-4).'.html';
$cachetime = 18000;
 
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
    echo "<!-- Cached copy, generated ".date('H:i', filemtime($cachefile))." -->\n";
    include($cachefile);
    exit;
}
ob_start(); // Start the output buffer
?>

Ahora iremos a la última linea que queremos cachear, en muchas webs será el footer
Vamos al footer y llamamos a esta otro script.

<?php
include ('acabar.php');
?>

El script acabar.php sería así:

<?php
// Cache the contents to a file
$cached = fopen($cachefile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Send the output to the browser
?>

Con esto lograremos utilizar el cache para mejorar la velocidad de la web.

Leer más

¿Cómo publicar en twitter con PHP?

Existen multitud de scripts que valen para publicar en Twitter utilizando PHP, este me funcionó perfectamente y además es muy sencillo.

Lo primero que necesitamos para poder publicar en Twitter es registrar nuestra aplicación, vamos a esta web y registramos la aplicación, durante el proceso nos darán el ConsumerKey, ConsumerSecret, MyAccessToken, MySecretAccessToken que necesitaremos para ejecutar nuestro script.

Despues necesitamos descargar la librería que encontramos aquí github.com/abraham/twitteroauth y subir los archivos OAuth.php y twitteroauth.php al servidor desde el que vamos a lanzar la publicación.

Al fichero twitteroauth.php le llamaremos desde el script que vamos a desarrollar y a OAuth.php le llamará el fichero twitteroauth.php, así que debes de subirlos en la misma carpeta o si cambias la ubicación tenerlo en cuenta.

Finalmente, tenemos que hacer el script, que sería así:

1
2
3
4
5
6
7
8
9
10
    $msg            = 'Publica!!!';
	$consumerKey    = 'ConsumerKey'; 
	$consumerSecret = 'ConsumerSecret'; 
	$oAuthToken     = 'MyAccessToken'; 
	$oAuthSecret    = 'MySecretAccessToken';  
 
	require_once($_SERVER['DOCUMENT_ROOT'].'/carpeta/twitteroauth.php');	
	$tweet = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret); 
	//Publica
	$tweet->post('statuses/update', array('status' => $msg));

Y listo, podemos meterlo en una función, o que se ejecute al llamar a una página, etc.

Leer más

¿Cómo podemos copiar ficheros al servidor utilizando PHP?

Para copiar ficheros al servidor utilizando PHP podemos hacerlo de las siguientes dos formas,
utilizando la funcion copy, o utilizando la función file_get_contents, dependiendo de la versión que tengas en tu servidor podremos utilizar la función
file_get_contents.

¿Cómo copiar ficheros al servidor utilizando copy con php 5?

Utilizando la función copy, podemos seleccionar un fichero que se encuentre en cualquier url que lo permita, y copiarlo a nuestro servidor.
Le pasamos la url y el sitio en el que queremos almacenar el fichero (en este caso la imagen).
Incluso podemos renombrar “el nombre” del fichero.

1
copy('http://www.google.es/images/laimagen.png', '/tmp/file.jpeg');

¿Cómo copiar ficheros al servidor utilizando file_get_contents?

Con la función file_get_contents tenemos que coger el archivo almacenarlo en una variable y finalmente grabarlo en la ruta que queramos.
Igualmente también podemos renombrar el nombre y la extensión del fichero que copiamos.

1
2
3
4
5
6
 
$content = file_get_contents("http://www.google.es/images/laimagen.png");
 
$fp = fopen("/tmp/file.jpeg", "w");
fwrite($fp, $content);
fclose($fp);
Leer más

¿Como puedo recuperar el valor de las COOKIES?

Recuperar el valor de las cookies con PHP es muy fácil, utilizando la variable $_COOKIE podemos recuperar el valor que queramos de la cookie en cuestión, solo tienes que poner el nombre de la cookie que quieres recuperar y te devolverá el valor de la misma.

Por ejemplo:

// Muestra el valor tracking
//echo $_COOKIE["tracking"];

También podemos usar la función print, para mostrar el valor de todas las cookies, sería así:

// ver el valor de todas las cookies
//print_r($_COOKIE);
Leer más

Redireccionar web www htaccess | www.dominio.com

Cómo redirigir nuestra pagina web con www.dominio.com a dominio.com

Si necesitamos redireccionar nuestro website sin www a el mismo dominio con www, tenemos que añadir el siguiente código en nuestro fichero .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^dominio.com
RewriteRule ^ http://www.dominio.com%{REQUEST_URI} [L,R=301]

En el caso contrario, si queremos redireccionar nuestra página web con www a nuestra página web sin las www utilizaremos el siguiente código en el fichero .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*) http://%1/$1 [R=301,L]
Leer más

Conocer la ruta completa del servidor web

Para conocer la ruta completa del fichero que estamos ejecutando, dentro de un servidor web, podemos hacerlo utilizando la constante __FILE__.

Creámos un fichero, por ejemplo tu_fichero.php y lo subimos al servidor, con este código.

<?php 
echo dirname(__FILE__) 
?>

Después ejecutamos el fichero llamándolo, y nos mostrará la ruta completa en la que se encuentra nuestro fichero dentro del servidor.

www.tu_dominio.com/tu_fichero.php

Este es el resultado, que cambiará depende de tu servidor web:

/var/www/vhost/tu_dominio.com/home/html

Leer más

Tareas programadas en Linux (Cron)

En este ejemplo realizamos una tarea programada o cron en el servidor web para que ejecute un determinado script que está realizado en PHP.

Para esto, ejecutamos el comando “crontab –e” que mostrará las tareas programadas que nuestro servidor tiene asignadas en ese momento.

Con el comando anterior veremos las tareas que hay programadas con el editor de texto que tengas asignado por defecto (-e).

La estructura que tiene este fichero para programar cuando se ejecutará la tarea es así; tiene cinco asteriscos * * * * * , que corresponden a los minutos, el segundo a las horas, el tercero a un día del mes, el mes, y por último el día de la semana.

Un asterisco correspondería a todos las posibilidades, si se encuentra en días sería todos los días, en horas sería todas las horas, etc.

Ejemplos

0 1 * * * * Se ejecutaría el primer minuto de todas las horas de todos los días.
00 9 * * * Se ejecutaría a las 21.00 en punto todos los días.

Esta es la tarea que queremos que se ejecute, que se ejecutaría todos los días a las 21:15, en este caso llamaría a un script realizado en PHP que realiza una función, como un backup, o envío de mails, etc.

15 21 * * * wget -q -O /dev/null http://amazeweb.es/php/email.php

Solo tenemos que editar el fichero y copiar la linea anterior para que a esa hora todos los días ejecute el script email.php.

Leer más

Cambiar la carpeta de un dominio

Habitualmente la carpeta en la que tenemos que ubicar los ficheros de una página web en un servidor es la carpeta public_html. No obstante, si queremos cambiar está ubicación añadiendo una o varias carpetas podemos hacerlo a través del fichero .htaccess, indicándole al servidor cual será la ubicación de nuestros ficheros.

Configurar el fichero .htaccess para que busque el dominio principal en una carpeta sería así:

1
2
3
4
5
6
 
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dominio_principal\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.dominio_principal\.com$
RewriteCond %{REQUEST_URI} !^/carpeta/
RewriteRule (.*) /carpeta/$1 [L]
Leer más

Modificar la directiva register_globals

Para modificar la directiva php register_globals tendremos que crear el fichero .htaccess, si no está creado e incluir la linea:
php_flag register_globals on

En el caso de que queramos dejar la directiva desactivada debemos ponerla a off.

Si nuestro hosting tiene cpannel y no queremos tocar el fichero .htacess, podemos hacerlo a través del icono en el que pone php.ini quickConfig hacemos click y dentro tendremos un panel dónde podemos leer el nombre de la directiva y un radio button que nos permite seleccionar los valores.

quickini php

No obstante, desde la versión de PHP 4.2.x la directiva register_globals viene por defecto puesta a Off y se desaconseja el uso, aunque es posible que encontremos casos en los que nos sea necesario activarla, sobre todo en scripts anteriores a esta versión.

Leer más

Prácticas de PHP – MySql

Ejercicio práctico de PHP – MySql

Para realizar esta práctica, vamos a desarrollar una pequeña aplicación para entornos LAMP que, dándole las tres primeras letras de un producto, devuelva todas las coincidencias de productos que existan en nuestra base de datos , debe devolverlos ordenados por el nombre, incluyendo todas las características y su situación en el mapa.

Tenemos dos tipos de productos, Cruceros (A) y Barcos (B), cada uno con sus características específicas. En el caso del producto A, además de su nombre, necesitamos conocer el número de estrellas y el tipo al que pertenecen (dejamos a tu elección proponer unos cuantos tipos pueden tener, …). En el caso del producto B y además de su nombre, queremos saber de cada producto el numero de pasajeors que pueden viajar y para cuantos adultos tienen espacio, sabiendo que solo existe un tipo de habitaciones.

Para conocer la ubicación de cualquier producto nos basta con indicar la ciudad y provincia.

Nos debe devolver, un listado del siguiente tipo:

.Crucero Mediterraneo, 4 estrellas, habitación doble con vistas, Barcelona, Barcelona
.Barco Vigo, 10 pasajeros, 4 adultos, Vigo, Vigo
.Crucero Italia, 3 estrellas, habitación doble, Mojacar, Almeria
.Crucero islas, 4 estrellas, habitación sencilla, Sanlucar, Cádiz
.Barco Andalucia Sol y playa, 50 pasajeros, 4 adultos, Almeria, Almeria

Esta práctica la realice como test de conocimientos PHP-MySql, seguramente encontréis mil formas de solucionarlo, con clases, utilizando la arquitectura modelo-vista-controlador, etc. En mi caso no me compliqué demasiado y aún así me llevo más de 2 o 3 horas.

La solución contiene el código PHP así como la creación de las tablas MySql que eran necesarias:

La solución

Fichero conexion.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
// creamos la función que utilizaremos para conectarnos en la bd.
// Si cambia la bd solo tendremos que cambiarlo en un sitio.  
// El archivo se llamara conexion.php que luego llamaremos desde el script que hará 
// la consulta en la bd.
 
function Conectarse()
{
   if (!($conectado=mysql_connect("host.com","user","password1")))
   {
      echo "Error de conexion a la base de datos.";
      exit();
   }
   if (!mysql_select_db("basededatos",$conectado))
   {
      echo "Error al seleccionar la base de datos.";
      exit();
   }
   return $conectado;
}
?>

Fichero consulta.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
<?php
 
include("conexion.php");
 
// Llamamos al fichero que tiene la función que nos permite conectarnos a la bd.
 
// Realizamos la conexión
$conectado=Conectarse();
 
 
// Recogemos el parámetro
$consultaCiudad= $_REQUEST["consultaCiudad"];
 
 
if($conectado){
 
	$sqlCiudad= "select * from (
       select hos.nombre, h.estrellas || 'estrellas', h.tiphab, u.ciudad, u.provincia
       from         crucero h, 
               barco hos, 
               ubicacion u 
       where hos.idUbi = u.id 
       and hos.id = h.idHos
       and (u.ciudad like '%$consultaCiudad%' or u.provincia like '%$consultaCiudad%') 
       union
 
select hos.nombre, a.disponibles || ' apartamentos', a.capacidad || ' adultos', u.ciudad, u.provincia
       from    apartamento a,         
               barco hos, 
               ubicacion u 
       where hos.idUbi = u.id 
       and hos.id = a.idHos
       and (u.ciudad like '%$consultaCiudad%' or u.provincia like '%$consultaCiudad%') 
       ) t
       order by nombre";
 
	$resSqlCiudad = mysql_query($sqlCiudad) or mysql_error();
 
	if (!$resSqlCiudad) {
		echo "Fallo la consulta: ".$resSqlCiudad;
		mysql_close($conectado);
		return 0;
	} else {
 
 
		echo "<ul>";  // creamos la lista
 
		while ($result_rowCiudad = mysql_fetch_row(($resSqlCiudad))) {
 
			echo "<li> ".$result_rowCiudad["0"].", ".$result_rowCiudad["1"].",".$result_rowCiudad["2"].",".$result_rowCiudad["3"].",".$result_rowCiudad["4"]." ";
		     // mostramos cada resultado de la lista.           
		}   
 
		echo "</ul>"; // cerramos la lista
	}
 
} else {
	die("Fallo en la conexión al servidor.");
}
 
?>

Fichero de creación de tablas MySql

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
--Tabla ubicacion(id, ciudad, provincia)
CREATE TABLE ubicacion (id INT PRIMARY KEY, ciudad VARCHAR(30), provincia VARCHAR(30));
 
--Tabla hospedaje(id, nombre, idUbi)
--idUbi FK ubicacion.id
CREATE TABLE hospedaje (id INT PRIMARY KEY, nombre VARCHAR(30), idUbi INT, FOREIGN KEY (idUbi) REFERENCES ubicacion (id));
 
--Tabla Crucerohotel(idHos, estrellas, tiphab)
--idHos FK hospedaje.id
CREATE TABLE cruecero (idHos INT, estrellas INT, tiphab VARCHAR(50), FOREIGN KEY (idHos) REFERENCES hospedaje (id));
 
--Tabla apartamento(idHos, disponibles, capacidad)
--idHos FK hospedaje.id
CREATE TABLE barco (idHos INT, disponibles INT, capacidad INT, FOREIGN KEY (idHos) REFERENCES hospedaje (id));
 
 
 
 
 
SELECT * FROM 
(
SELECT hos.nombre, h.estrellas || 'estrellas', h.tiphab, u.ciudad, u.provincia
       FROM         crucero h, 
               hospedaje hos, 
               ubicacion u 
       WHERE hos.idUbi = u.id 
	   AND hos.id = h.idHos
       AND (u.ciudad LIKE '%$consultaCiudad%' OR u.provincia LIKE '%$consultaCiudad%') 
UNION
SELECT hos.nombre, a.disponibles || ' apartamentos', a.capacidad || ' adultos', u.ciudad, u.provincia
       FROM    barco a,         
               hospedaje hos, 
               ubicacion u 
       WHERE hos.idUbi = u.id 
	   AND hos.id = a.idHos
       AND (u.ciudad LIKE '%$consultaCiudad%' OR u.provincia LIKE '%$consultaCiudad%') 
) t
ORDER BY nombre
Leer más

Dibujar marcadores en un mapa de Google Maps V3

En este ejemplo vamos a dibujar o pintar un marcador en un mapa de Google Maps con el texto que queramos.

En el ejemplo siguiente obtendremos la posición dónde queremos poner el marcador de una base de datos, además el texto que llevará el marcador también lo obtendremos de una base de datos.

Si no os hace falta recuperar posición del marcador de una base de datos podéis omitir
ese paso y reescribir un poco el código.

Lógica de la aplicación

En nuestro ejemplo hemos creado una tabla dentro de la base de datos que tiene un identificador para cada ruta (aunque aquí no vamos a pintar rutas) y un texto que irá en cada marcador, en nuestro caso ese texto ya está en la base de datos y también lo recuperaremos.

Comentamos el código

Declaramos una función en javascript que se llamará “function initialize” la cual se ejecutará en el evento onload que tendrá asociado el “body” de la página web

1
 <body onload="initialize()" onunload="GUnload()">

Estos dos parámetros los utilizamos en nuestro desarrollo para conocer la ruta y la incidencia que queremos mostrar.
Lo más seguro es que no os valgan para nada podéis sustituirlos por los que necesitéis. Nosotros los utilizamos durante el desarrollo para poder hacer la SELECT contra la base de datos y pasarle estos parámetros.

1
2
	$idIncidencia= $_REQUEST['idIncidencia'];
	$idRuta= $_REQUEST['idRuta'];

Aquí nos conectamos con la base de datos

1
	$conectado = @mysql_connect("db44563145646318.db.1and1.com","dbo44563145","elp4ssw0rd");

En el caso de que se conecte con la Base de datos realizamos la select

1
2
3
4
$sql = "SELECT SUBSTRING(LatLong,1,INSTR(LatLong,',')-1) Latitud, 
									SUBSTRING(LatLong,INSTR(LatLong,',')+1) Longitud,Descripcion 
									FROM RutasIncidencia r, IncidenciasAndroid i.....
									........

Y en el caso de que obtengamos datos pintamos el marcador con el texto que hemos puesto en la base de datos:

1
2
3
4
5
6
7
   function createMarker(point, index) {
 
          var letter = String.fromCharCode("A".charCodeAt(0) + index);
          var letteredIcon = new GIcon(baseIcon);
          letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
          ....
          ....

La imagen con el resultado:
google marcador

El código completo sería así:

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
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>Google Maps JavaScript API Ejemplo de Marcador con texto</title>
    <script src="/js/maps.js"
            type="text/javascript"></script>
    <script type="text/javascript">
    function initialize() {
 
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
 
	  <? 
 
	  	  $descripcion="hola marca";
				$latitud= 10.000;
				$longitud=10.000;
	  echo 'map.setCenter(new GLatLng('.$latitud.', '.$longitud.'), 13);';?>
        map.setUIToDefault();
 
        // Create a base icon for all of our markers that specifies the
        // shadow, icon dimensions, etc.
        var baseIcon = new GIcon(G_DEFAULT_ICON);
        baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
        baseIcon.iconSize = new GSize(20, 34);
        baseIcon.shadowSize = new GSize(37, 34);
        baseIcon.iconAnchor = new GPoint(9, 34);
        baseIcon.infoWindowAnchor = new GPoint(9, 2);
 
        // Creates a marker whose info window displays the letter corresponding
        // to the given index.
        function createMarker(point, index) {
          // Create a lettered icon for this point using our icon class
          var letter = String.fromCharCode("A".charCodeAt(0) + index);
          var letteredIcon = new GIcon(baseIcon);
          letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
 
          // Set up our GMarkerOptions object
          markerOptions = { icon:letteredIcon };
          var marker = new GMarker(point, markerOptions);
		  document.cookie ='variable='+index+'; expires=Thu, 2 Aug 2021 20:47:11 UTC; path=/';
		   GEvent.addListener(marker, "click", function() {
            <? echo 'marker.openInfoWindowHtml("<b>" + '.json_encode($descripcion).' + "</b>");';?>
          });
          return marker;
        }
 
		<?
		$x = 0;
			echo'var latlng = new GLatLng('.$latitud.',
            '.$longitud.');
          map.addOverlay(createMarker(latlng, '.$x.'));';
		 ?>
      }
	 <? mysql_close($conectado);
								} else {
									die("NO SE PUDO CONECTAR AL SERVIDOR MYSQL.");
								}
	?>
    }
    </script>
  </head>
  <body onload="initialize()" onunload="GUnload()">
    <div id="map_canvas" style="width: 500px; height: 300px"></div>
  </body>
</html>

Y este es un ejemplo funcionando para ver como quedaría.

**** Hace falta que enlaceis las librerías JavaScript para los mapas de google, las podeis enlazar directamente de google o bien bajároslas y subirlas a vuestro servidor.

Leer más

Insertar botones de Twitter en tu página

Cada vez está más extendido incluir los botones de las redes sociales más populares en tu página web, y como hace tiempo hablamos de incluir el de Facebook y el de Google plus, ahora es el turno de Twitter.

Insertar botones de Twitter

El proceso es bastante sencillo. Puedes irte a la web oficial de Twitter y seleccionar el tipo de botón que quieras incluir en tu página o bien insertar el código que hemos dejado preparado, cambiando la dirección por la tuya.

Esta es la página oficial de Twitter:

http://twitter.com/about/resources/followbutton

En esta post vemos como insertar tus botones de Twitter en tu website.

Boton de Twitter

Este es el código del botón para conseguir seguidores para tu website:

1
2
3
4
5
6
<a href="https://twitter.com/CodigoJavaO" class="twitter-follow-button" data-show-count="false" data-lang="es">Seguir a @CodigoJavaO</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];
if(!d.getElementById(id)){js=d.createElement(s);
js.id=id;js.src="//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
</script>

Tienes que cambiar la url por la tuya. En este caso tienes que cambiar:
https://twitter.com/CodigoJavaO por

https://twitter.com/TU_PAGINA_EN_TWITTER

Insertando este código nos valdría para compartir un enlace a través de Twitter, es decir, haciendo click compartiría la url de tu website en su Twitter.

La modalidad de compartir enlaces a través de los botones de Twitter nos permitiría hacerlo de dos maneras, o bien compartiendo la URL que estés viendo en ese momento o bien fijar la URL que quieras que se comparta aunque estés en otra página de ese dominio.

Además también te permite escribir el texto del enlace que quieres que compartan.

Con este código nos compartiría el enlace de la página que estes viendo actualmente.

1
2
3
4
5
6
<a href="https://twitter.com/share" class="twitter-share-button" data-via="CodigoJavaO" data-lang="es">Twittear</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];
if(!d.getElementById(id)){js=d.createElement(s);
js.id=id;js.src="//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
</script>

Con este otro código nos compartiría el enlace y el texto del enlace que hayamos personalizado:

1
2
3
4
5
6
7
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://codigojavaoracle.com" data-text="Tu Website de programación" data-via="CodigoJavaO" data-lang="es">Twittear</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];
if(!d.getElementById(id)){js=d.createElement(s);
js.id=id;js.src="//platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js,fjs);
}}(document,"script","twitter-wjs");
</script>

En este caso deberías cambiar el campo data-url, el campo data-text y el campo data-via por lo de tu website, tu texto del enlace y por último tu usuario.
Sería así:

data-url=”http://TU_URL.com” data-text=”TU_DESCRIPCION” data-via=”TU_USUARIO”

Esta es la página oficial dónde puedes conseguir los botones de Twitter:

https://twitter.com/about/resources/buttons#follow

Leer más