tmobilon 0 Denunciar post Postado Setembro 23, 2006 Possuo o seguinte tipo de URL: http://www.mercadolibre.com.pe/jm/pms?site=XXX&id=2021&as_opt=/jm/item?site=MPE$$id=1411202 Essa url é puxada do XML do Mercado Livre. O seguinte código: case "LINK": $link .= str_replace("XXX",$afid,$data); $link = preg_replace("/as_opt=\/jm\//i","as_opt=http://".$url1."/jm/",$link); $link = trim($link); break; substitue o "XXX" por meu ID de afiliado, e insere o endereço "$url1" para completar o link, deixando a url final mais ou menos assim: http://www.mercadolibre.com.pe/jm/pms?site=2304437&id=2021&as_opt=http://www.mercadolibre.com.pe/jm/item?site=MPE$$id=1325474 O que preciso fazer é pegar a primeira url, substituir todo o começo dela até a parte "&as_opt=" pela url: http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=2304437&go= e manter o que há depois do "&as_opt=" do jeito que ela já está ficando depois das alterações. O meu maior problema é como faço pra substituir a primeira parte por essa nova URL de traqueamento.. Alguém poderia me ajudar a usar estas funções? Compartilhar este post Link para o post Compartilhar em outros sites
tmobilon 0 Denunciar post Postado Setembro 23, 2006 Não entendi muito bem o que eu posso fazer com esta função no meu caso..poderia ser mais específico? Compartilhar este post Link para o post Compartilhar em outros sites
tmobilon 0 Denunciar post Postado Setembro 23, 2006 Agora entendi o que você disse, mas ainda estou meio confuso sobre como aplicar isso na prática.Achando a posição do &as_opt= posso apagar ela e tudo o que vem antes.mas veja bem, preciso colocar depois do &as_opt= a variável $url1 que aponta para o domínio correto.O meu problema é como eu faço tudo isso, entendi o que você disse na teoria, mas to meio boiando na prática.Peço desculpas pela ignorância, mas não possuo nenhum curso de programação, o pouco que sei aprendi fuçando, lendo e perguntando ;) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 23, 2006 é bastante simples veja um exemplo: <?php// string$url = "http://forum.imasters.com.br/index.php?act=post&do=reply_post&f=3&t=195147";// string que deseja procurar $str_alvo = "&do=";// obtém a quantidade de caracteres de $str_alvo$str_alvo_size = strlen($str_alvo);// verifica se existe $str_alvo em $urlif( $qtd = strpos($url, $str_alvo) ) { // retorna $url da posiçao 0 até o valor de $qtd $part1 = substr($url ,0 ,$qtd ); // obtém a soma de $part1 + $str_alvo_size $pos_ini = ($str_alvo_size + strlen($part1) ); // obtém o restante de $url $part2 = substr($url ,$pos_ini ); // escreve $url sem a string "$str_alvo" echo $part1; echo "<font color=ff0000>"; echo $part2; echo "</font>";}else{echo "não encontrou <b>".$str_alvo."</b>";}?> Compartilhar este post Link para o post Compartilhar em outros sites
tmobilon 0 Denunciar post Postado Setembro 23, 2006 nada feito =( eu ultilizei mais ou menos o código do tmferreira, olhe como ficou: #O link é dinâmico, cada produto tem um, porém a estrutura é #basicamente a mesma $link .= $data;#a parte da url que desejo apagar $palavra = "&as_opt=";#aqui começa o rolo.#repare que a variável $url1 na verdade indica o domínio do mercado #livre em questão. Ela pode ser "mercadolivre.com.br', #'mercadolibre.com.pe' e assim vai.#O que preciso fazer é colocar a url de trackeamento que especifiquei #como $afid antes de tudo, depois a $url1 e então a continuação do $link #que seta o endereço do produto anunciano. $num = strpos($link, $palavra) + 8; $link = $url1 . substr($link, $num, strlen($link) - $num); $link = trim($link); Com esse código, a url virou isso: http://tecnoblog.net/e-shop/www.mercadolibre.com.peadolibre.com.pe/jm/item?site=MPE$$id=1344202 A estrutura no final das contas deve ser: $afid.$url.$link O meu grande problema é que preciso tratar a variável link, fazendo -a ficar somente com o final que indica o endereço do produto. Alguma idéia? Compartilhar este post Link para o post Compartilhar em outros sites
tmobilon 0 Denunciar post Postado Setembro 23, 2006 Com o código que fiz ficou assim aqui: http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=2304437&go=http://www.mercadolibre.com.pe/jm/item?site=MPE$$id=1325474Não era isso que queria? Explicar melhor então.Sim, é o que eu quero.. mas é justamente como eu disse, não ficou dessa forma, ficou da forma que citei acima... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 24, 2006 tmobilon, à partir do exemplo do Thiago você poderia fazer o restante, pois ele fez de um modo bem simples. o outro exemplo que postei foi feito de um jeito mais prático para fazer adaptações: na prática seria isso: <?php// string//$url = "http://forum.imasters.com.br/index.php?act=post&do=reply_post&f=3&t=195147";$url = "http://www.mercadolibre.com.pe/jm/pms?site=2304437&id=2021&as_opt=http://www.mercadolibre.com.pe/jm/item?site=MPE\$\$id=1325474";// string que deseja procurar // $str_alvo = "&do=";$str_alvo = "&as_opt=";// string para substituir$str_inc = "http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=2304437&go=";// obtém a quantidade de caracteres de $str_alvo$str_alvo_size = strlen($str_alvo);// verifica se existe $str_alvo em $urlif( $qtd = strpos($url, $str_alvo) ) { // retorna $url da posiçao 0 até o valor de $qtd $part1 = substr($url ,0 ,$qtd ); // obtém a soma de $part1 + $str_alvo_size $pos_ini = ($str_alvo_size + strlen($part1) ); // obtém o restante de $url $part2 = substr($url ,$pos_ini ); // escreve $url sem a string "$str_alvo" //echo $part1; echo $str_inc; echo "<font color=ff0000>"; echo $part2; echo "</font>";}else{echo "não encontrou <b>".$str_alvo."</b>";}/*http://www.mercadolibre.com.pe/jm/pms?site=2304437&id=2021&as_opt=http://www.mercadolibre.com.pe/jm/item?site=MPE$$id=1325474http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=2304437&go=*/?> é isso que você precisava ? Compartilhar este post Link para o post Compartilhar em outros sites
tmobilon 0 Denunciar post Postado Setembro 25, 2006 tmobilon, à partir do exemplo do Thiago você poderia fazer o restante, pois ele fez de um modo bem simples.o outro exemplo que postei foi feito de um jeito mais prático para fazer adaptações:é isso que você precisava ?Usei as funções que você citou dessa parte e deu certo! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Precisei dar uma simplificada para encaixar na minha necessidade, mas agora tá tudo resolvido!Agradeço aos amigos! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
tmobilon 0 Denunciar post Postado Setembro 26, 2006 tmobilion,posta como conseguiu. Quem tiver a mesma dúvida sua já terá a solução...Valeu!Usei mais ou menos como o henom falou.Veja como ficou:case "LINK": $link.=$data; // string que deseja procurar $str_alvo= "&as_opt="; // obtém a quantidade de caracteres de $str_alvo $str_alvo_size = strlen($str_alvo); // verifica se existe $str_alvo em $url $qtd=strpos($link, $str_alvo); // retorna $url da posiçao 0 até o valor de $qtd $part1=substr($link ,0 ,$qtd ); // obtém a soma de $part1 + $str_alvo_size $pos_ini=($str_alvo_size + strlen($part1) ); // obtém o restante de $url $part2=substr($link ,$pos_ini ); $link=$part2; break;Este código trata toda a url e me devolvel apenas o finalzinho dela, que é o código do produto em questão.Mantive os comentários para sempre me lembrar o que cada função faz.Logo para montar o resto do link uso o seguinte:$afid='URL DE AFILIADO';$pref='/jm/item';echo '<a href="'.$afid.$pref.$link.'">'.$title.'</a>';Feito!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Agradeço a ajuda e a atenção de vocês! ;) Compartilhar este post Link para o post Compartilhar em outros sites