Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Enigma_avatar

str_replace , substr_replace, substr, insert

Recommended Posts

Estou lendo algumas funcoes php.net sobre substituicao de texto tags etc

 

So que nao vi se é possivel usar as funcoes quando na postagem para o bd, e pelo que vi por alto tbm as funcoes me parece apenas delimitar areas EX: do caratctere 3 ao caractere 50 .

 

 

Mais resumindo o que gostaria de saber é se e possivel pegar um valor do campo do form, e no insert colocar apenas a parte do texto que importa substituindo algumas coisas

 

EX:

 

o usuario copia e cola a url no campo do form

 

http://xat.com/web_gear/chat/embed.php?id=194142484&GroupName=crieoseu

 

apos clicar no submit, dai o codigo enviar para o campo URL do bd apenas isso:

 

id=194142484&gn=crieoseu

 

 

para que depois apenas gerar a lista mais direta tipo

 

<embed src="http.//www.xatech.com/web_gear/chat/chat.swf" quality="high" bgcolor="#000" width="100%" height="486" name="chat" FlashVars=" <.row URL. > " align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://xat.com/update_flash.shtml" />

 

 

pode ser o caminho inverso tambem, inserir a url completa e na exibicao exibir ja substituindo o texto

 

ou caso tbm tenha algum outro caminho menos complexo tambem agradeceria a informação.

 

 

desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use preg_match para pegar a parte que você quer, que no caso é a Query String (tudo que vier após '?' na URL):

 <?php$url = "http://xat.com/web_gear/chat/embed.php?id=194142484&GroupName=crieoseu"; if (preg_match("/\?(.*)$/", $url, $query)) {     // O que você quer está em $query[1]    echo $query[1];    }

 

Retorno:

 

id=194142484&GroupName=crieoseu

 

Se quiser também pode usar a função parse_str para transformar essa string em variáveis ou elementos de array.

 

Exemplo:

parse_str($query[1], $query_arr);

 

Irá retornar para $query_arr:

 

  Array (2) {
     ["id"]=> string(9) "194142484"
     ["GroupName"]=> string(8) "crieoseu"
  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia simplificar usando o strrchr(). Exemplo:

/* o usuário cola a URL no seu formulário e envia o seguinte: */
$url_enviada = "http://xat.com/web_gear/chat/embed.php?id=194142484&GroupName=crieoseu";

/* agora você usa o strrchr() pra pegar só o que vier depois da "?" */
$resultado = strrchr($url_enviada, '?');
$resultado = str_replace("?","",$resultado); /* coloquei isso só pra tirar a interrogação do início, mas é facultativo */

echo $resultado;
/* o $resultado desse exemplo imprime: id=194142484&GroupName=crieoseu */

Se quiser incrementar é só usar o explode() pra separar o resultado em vários. Tipo, você vai separar variável por variável. Exemplo:

$resultado_separado = explode("&",$resultado);
/* nesse caso toda vez que o php encontrar um & (aquele símbolo que delimita as variáveis enviadas) ele vai criar um novo campo na array, vai tratar como um novo resultado */
print_r($resultado_separado);

/* esse exemplo irá imprimir: Array ( [0] => id=194142484 [1] => GroupName=crieoseu ) */

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos simplificar isso utilizando funções próprias para esse problema.

 

:seta: parse_ url

:seta: parse_ str

 

<?php

$url = 'http://xat.com/web_gear/chat/embed.php?id=194142484&GroupName=crieoseu';

$component = parse_url( $url, PHP_URL_QUERY );

parse_str( $component, $query );

var_dump( $query );

?>

 

Saída:

array
  'id' => string '194142484' (length=9)
  'GroupName' => string 'crieoseu' (length=8)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.