Hacer un plugin
Pues bueno, estaba tratando de hacer un plugin que use expresiones regulares pero no se como hacerlo.
La cosa es que tengo lo siguiente:
El problema radica en lo siguiente:
En el post no me reconoce la expresión regular de la IP y que en todo caso no sabría como hacer para que la ip se reemplace por [hide]ip[/hide]
¿Me ayudan?
La cosa es que tengo lo siguiente:
<?php
$plugins->add_hook('postbit', 'hideip');
function hideip_info()
{
return array(
"name" => "hideip",
"description" => "Cambia una IP por otro texto",
"website" => "http://juliohurtado.com",
"author" => "Juliens",
"authorsite" => "http://juliohurtado.com",
"version" => "1.0",
"compatibility" => "14*,16*",
);
}
function hideip(&$post)
{
global $mybb;
$hideip_post= array(
'\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b' => ('tag que oculta la ip + ip'),
);
$post['message'] = str_replace(array_keys($hideip_post), array_values($hideip_post), $post['message']);
}
?>El problema radica en lo siguiente:
En el post no me reconoce la expresión regular de la IP y que en todo caso no sabría como hacer para que la ip se reemplace por [hide]ip[/hide]
¿Me ayudan?
Lo que pasa es que la detección de la IP no las estas tratando con una expresión regular.
Pero vamos que no todo es malo XD
Lo que puedes hacer es usar preg_replace, creo que así:
Eso sería en lo que puedo ayudarte XD Que es lo que se me ocurre hasta ahora :p
Quote:str_replace — Reemplaza todas las apariciones del string buscado con el string de reemplazoEs decir que solo lo detectara & hará el reemplazo cuando se ingrese \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b ya que en ese momento habrá una aparición.
Pero vamos que no todo es malo XD
Lo que puedes hacer es usar preg_replace, creo que así:
$post['message'] = preg_replace("/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/", "REEMPLAZO AQUÍ", $post['message']);Eso sería en lo que puedo ayudarte XD Que es lo que se me ocurre hasta ahora :p
17 Dec, 2012, 5:47 pm Steeep wrote:
Lo que pasa es que la detección de la IP no las estas tratando con una expresión regular.
Quote:str_replace — Reemplaza todas las apariciones del string buscado con el string de reemplazoEs decir que solo lo detectara & hará el reemplazo cuando se ingrese \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b ya que en ese momento habrá una aparición.
Pero vamos que no todo es malo XD
Lo que puedes hacer es usar preg_replace, creo que así:
$post['message'] = preg_replace("/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/", "REEMPLAZO AQUÍ", $post['message']);
Eso sería en lo que puedo ayudarte XD Que es lo que se me ocurre hasta ahora :p
Lo intentaré
17 Dec, 2012, 7:15 pm Omar G. wrote:
¿No se puede hacer esto con un MyCode?
Lo hice y reconoce la expresión regular, pero no el parámetro que se le envía.
Es decir, si pongo reemplazar por "cualquier cosa $1" no me aparece la ip que se colocó, solamente "cualquier cosa "
ES que entonces tampoco saldría "cualquier cosa"
Ha ya veo, coloca $1$2$3$4$5$6$7, quizás tu expresion regular esta dividida. O encierra toda tu expresion regular en paréntesis (...) y entonces $1 debería funcionar.
Con los paréntesis funciona, pero al citar/edita aparece solo la IP
Yo lo que quería es que cuando meta una ip, se le agregue la etiqueta que oculta información
Yo lo que quería es que cuando meta una ip, se le agregue la etiqueta que oculta información
![[Image: PROMO-DOMINIO.png]](http://skyliumplus.com/wp-content/uploads/2012/07/PROMO-DOMINIO.png)
![[Image: signature.png]](https://omarg.me/cache/images/signature.png)