Mensagens - Liurai

Páginas: 1 2
1
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 23:49 »
Não, eu já tinha fechado esse while.

Mas julgo que descobri o problema
Nesta linha, tinhas isto assim:

$html = preg_replace('/thumbnails\.php\?album=(\d+)/i', $replace, $html);

O problema é que a primeira vez que esta linha era executada, fazia o replace de todas as "ocorrencias", independentemente de ter o id "certo" ou não. Aliás, o loop assim só seria executado uma vez, já que o preg_match_all não encontraria mais nenhuma correspondencia. Ou seja, só vamos querer que o preg_replace seja executado uma vez. Por isso, temos de acrescentar mais o parâmetro ao preg_replace indicando que o número de replaces é só 1.

$html = preg_replace('/thumbnails\.php\?album=(\d+)/i', $replace, $html,1);

2
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 23:33 »
Ainda tem um pequeno problema

Se houver mais de uma substring a ser "remodelada" e o valor do id for diferente, a 2ª nova substring apesar de aparecer com o id certo, aparece com o conteúdo do "campo" da 1ª substring.

Ou seja, isto:

  $html='<html>
        <body>
                algum texto
                <a href="thumbnails.php?album=34">Portugal</a>
                outro texto e fotos e outros elementos
                <a href="thumbnails.php?album=21">Brasil</a>
                jgfhjh kjdf gkjh dfkjhg dfhg kfhgkjh e mais fotos
                <a href="thumbnails.php?album=87">Mongolia</a>
        </body>
</html>';

vai resultar nisto:

  $html='<html>
        <body>
                algum texto
                <a href="miniaturas-Portugal-34">Portugal</a>
                outro texto e fotos e outros elementos
                <a href="miniaturas-Portugal-21">Brasil</a>
                jgfhjh kjdf gkjh dfkjhg dfhg kfhgkjh e mais fotos
                <a href="miniaturas-Portugal-87">Mongolia</a>
        </body>
</html>';

3
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 23:19 »
Tem apenas de se fazer uma pequena alteração. O php tem alguns problemas com arrays dentro de uma string e neste caso não estava a conseguir fazer a substituição do match[1][0] pelo seu conteúdo: em vez do id colocava "Array[0]"
Por isso é só preciso alterar para isto:
      $aid = $match[1][0];
      $sql = "SELECT campo FROM tabela WHERE aid='$aid'";
Ou então por isto
      $sql = "SELECT campo FROM tabela WHERE aid='".$match[1][0]."'";

De resto funciona na perfeição.
Muito obrigado a ti e ao skin por toda a ajuda e atenção. Deu para resolver o meu problema e para aprender mais um pouco.
 :obrigado:

4
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 22:47 »
Esquece a pergunta do $match. Não a tinha visto na query sql. :-#

5
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 22:45 »
Muito obrigado
Já vou experimentar, mas já agora tenho duas perguntas.
A variável $match neste caso específico está a funcionar como variável dummy?
Para que serve a arroba antes do mysql_num_rows?
Obrigado

<?
        $html
='<html>
        <body>
                algum texto
                <a href="thumbnails.php?album=34">Portugal</a>
                outro texto e fotos e outros elementos
                <a href="thumbnails.php?album=21">Brasil</a>
                jgfhjh kjdf gkjh dfkjhg dfhg kfhgkjh e mais fotos
                <a href="thumbnails.php?album=87">Mongolia</a>
        </body>
</html>'
;
        while(
preg_match_all("/thumbnails\.php\?album=(\d+)/i",$html,$match)) {
                
$texto "";
                
$sql "SELECT campo FROM tabela WHERE id='$match[1][0]'";               
                
$result mysql_query($sql);
                if(@
mysql_num_rows($result)) {
                        
$query mysql_fetch_array($result);
                        
$texto $query['campo'];
                }
                if(empty(
$texto)) $texto "Indefinido";
                
$replace 'miniaturas-'.$texto.'-$1';
                
$html preg_replace('/thumbnails\.php\?album=(\d+)/i'$replace$html); 
        echo 
$html;
?>



6
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 22:30 »
Só para complementar, como expliquei anteriormente, eu não sei antecipadamente o conteúdo da variável $html, nem posso prever se a âncora tem texto (nem que texto) ou imagens como conteúdo.

7
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 22:21 »
LOL
Desculpa Anjo, mas ou eu continuo a explicar-me mal ou então não consigo fazer passar a minha ideia. #-o

O exemplo que dei no último post foi demasiado especifico e isso induziu-te em erro.

O que eu quero é que se pegue no número que está a seguir a "album" e se vá à tabela de dados buscar o titulo correpondente. Imaginando que o registo com o id=34 (ou neste caso album=34) tem o title="Portugal", então se na tal variável $html estiver por lá a string '<a href="thumbnails.php?album=34">Portugal</a>' deverá aparecer '<a href="miniaturas-Portugal-34">Portugal</a>', mas se estiver outra coisa como texto da âncora, o link deverá ser o mesmo. Portanto:

<a href="thumbnails.php?album=34">Portugal</a> ====><a href="miniaturas-Portugal-34">Portugal</a>
<a href="thumbnails.php?album=34">qualquer coisa</a> ====><a href="miniaturas-Portugal-34">qualquer coisa</a>
<a href="thumbnails.php?album=34">outra ainda</a> ====><a href="miniaturas-Portugal-34">outra ainda</a>
<a href="thumbnails.php?album=21">Brasil</a> ====><a href="miniaturas-Brasil-21">Brasil</a>


Claro que se aquilo que entendeste do post anterior fosse aquilo que eu pretendia, realmente não faria nenhum sentido. Espero que entendas este. :cool:

8
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 20:08 »
Obrigado também à tua resposta, anjo2, mas eu não me devo ter explicado bem.

Utilizei a string de pesquisa "http://www.teste.org/thumbnails.php?album=34 http://www.teste.org/thumbnails.php?album=21" directamente como parâmetro do preg_replace só para simplificar a minha questão, mas pelos vistos compliquei. O que eu preciso é o seguinte:

Código: [Seleccione]
    $html="
<html>
  <body>
     algum texto
     <a href="thumbnails.php?album=34">Portugal</a>
     outro texto e fotos e outros elementos
     <a href="thumbnails.php?album=21">Brasil</a>
     jgfhjh kjdf gkjh dfkjhg dfhg kfhgkjh e mais fotos
     <a href="thumbnails.php?album=87">Mongolia</a>
  </body>
</html>";
/////////////////////////////////
//// Código a ser executado para fazer aquilo que preciso
///////////////////////////////
echo $html;
E quando aparecesse no browser aparecia da seguinte forma:
Código: [Seleccione]
<html>
  <body>
     algum texto
     <a href="miniaturas-Portugal-34.html">Portugal</a>
     outro texto e fotos e outros elementos
     <a href="miniaturas-Brasil-21.html">Brasil</a>
     jgfhjh kjdf gkjh dfkjhg dfhg kfhgkjh e mais fotos
     <a href="miniaturas-Mongolia-87.html">Mongolia</a>
  </body>
</html>
Claro que quando meto na primeira janela de código $html="xyzxyz....." é apenas para este exemplo. Eu quero utilizar isto num script como o Coppermine. Ele já tem um addon que é o SEF_URL que eu estou a utilizar, mas que ainda não faz tudo o que quero. Como é natural, se fosse um troço como o que escrevi em cima e sobre o qual tinha todo o controlo, nem precisava disto. O problema é que o Coppermine antes de formar a página de saída passa por inúmeros ficheiros e não justifica estar a alterar o código desses ficheiros todos. Aliás estas alterações que quero fazer são para ser feitas num ficheiro do próprio addon SEF_URL que já tem a tal variável $html. Eu não tenho qualquer controlo sobre como ela é formada. Só quero alterá-la mesmo antes de o Coppermine fazer echo dela.

9
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 17:25 »
Tinha realmente pensado nessa hipótese.
Só tinha esperança que o preg_replace fizesse isso de forma mais automatizada. :( Vou mesmo ter de utilizar um FORzito, certo?

10
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 17:19 »
A solução que eu apresentei era para se fosses para esse endereço e não para se fosse inserido pelo código numa página como se fosse texto :P.

Isto funciona:
$xpto = preg_match_all('/thumbnails\.php\?album=(\d+)/i', "http://www.teste.org/thumbnails.php?album=34", $match);
$coiso = $match[1][0];
$teste = preg_replace('/thumbnails\.php\?album=(\d+)/i',getalbumstring($coiso),"http://www.teste.org/thumbnails.php?album=34");
echo $teste;

Mais uma vez, agradeço-te a resposta, skin. Apesar de já estar perto daquilo que quero, ainda não resulta na totalidade. Só resulta se houver apenas uma ocorrência. Se existirem mais ocorrências, isto não funciona. Tentei assim:
Código: [Seleccione]
<?php
$teste preg_match_all('/thumbnails\.php\?album=([a-z0-9]+)/i',"http://www.teste.org/thumbnails.php?album=34 http://www.teste.org/thumbnails.php?album=21",$match);
$x $match[1][0];
$teste preg_replace('/thumbnails\.php\?album=([a-z0-9]+)/i',getalbumstring($x),"http://www.teste.org/thumbnails.php?album=34 http://www.teste.org/thumbnails.php?album=21");
echo $teste;

function getalbumstring($matches){
$matches ="xyz".$matches;
return $matches "|";
}
?>

;
E o resultado foi este:
Código: [Seleccione]
http://www.teste.org/xyz34| http://www.teste.org/xyz34|

Tentei outras alternativas ao teu código, mas ainda não consegui :(

11
PHP / Re: Problema com preg_replace em PHP
« em: 04/Fev/2009 15:54 »
Obrigado pela resposta rápida, skin

Mas no entanto, fiquei um pouco confuso.
Tendo em atenção que tenho isto no meu código:
Código: [Seleccione]
$teste = preg_replace('/thumbnails\.php\?album=([a-z0-9]+)/i',getalbumstring("$1"),"http://www.teste.org/thumbnails.php?album=34");
echo $teste;

como é que integro a tua solução de forma a que faça aquilo que quero.

Só para não haver dúvidas sobre aquilo que quero: ao longo da aplicação que estou a usar (neste caso o Coppermine), vai sendo formada uma variável de nome $html com todo o conteúdo a "despejar" no browser no final da execução do código.
Imaginando que algures dentro dessa variável existem as seguintes substrings:
 "http://www.teste.org/thumbnails.php?album=34"
 "http://www.teste.org/thumbnails.php?album=18"
 "http://www.teste.org/thumbnails.php?album=22"
O que eu quero com aquele preg_replace é substituir estas substrings por (imaginando que o campo title de cada um daqueles ids tem os nomes dos 3 grandes):
 "http://www.teste.org/Sporting"
 "http://www.teste.org/Benfica"
 "http://www.teste.org/Porto"


12
PHP / Problema com preg_replace em PHP
« em: 04/Fev/2009 15:16 »
Olá
O problema passa-se com o preg_replace e com uma função colocada no parâmetro de "replacement". O objectivo é que por cada string que o preg_replace encontrar, ele chamar uma função que faça uma chamada ao MySQL e substituir por outr valor. Uma coisa mais ou menos deste genero:
Código: [Seleccione]
$teste = preg_replace('/thumbnails\.php\?album=([a-z0-9]+)/i',getalbumstring("$1"),"http://www.teste.org/thumbnails.php?album=34");
echo $teste;

function getalbumstring($matches){
$query = "SELECT campo FROM tabela WHERE id='$matches'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$campo = $row['campo'];
return $campo;
}
O resultado que está a aparecer no ecrã é «http://www.teste.org/» que claramente não é o pretendido.

Isto não funcionou, apesar de eu ter a certeza que havia valores na tabela para a query executada. Aliás, se substituísse hard-coded o «id='$matches'» directamente por «id='34'», ele funciona na perfeição.

Por isso, comecei a apagar linhas para ver o que se passava.
Código: [Seleccione]
$teste = preg_replace('/thumbnails\.php\?album=([a-z0-9]+)/i',getalbumstring("$1"),"http://www.teste.org/thumbnails.php?album=34");
echo $teste;

function getalbumstring($matches){
return $matches;
}
Depois de fazer esta alteração passou a aparecer no ecrã o seguinte: «http://www.teste.org/34», o que me provou que realmente o valor está a ser bem extraído com o preg_replace. Então fiz mais um teste. Fui ao primeiro troço de código e troquei-o por isto:
Código: [Seleccione]
$teste = preg_replace('/thumbnails\.php\?album=([a-z0-9]+)/i',getalbumstring("$1"),"http://www.teste.org/thumbnails.php?album=34");
echo $teste;

function getalbumstring($matches){
$query = "SELECT campo FROM tabela WHERE id='$matches'";
return $query;
}
O resultado foi como era esperado e apareceu o seguinte: «http://www.teste.org/SELECT campo FROM tabela WHERE id='34'»
Ou seja, a string é bem formada, mas quando voltava a colocá-la na query do mysql, o mysql não funcionava.
Fiz mais um teste:
Código: [Seleccione]
$teste = preg_replace('/thumbnails\.php\?album=([a-z0-9]+)/i',getalbumstring("$1"),"http://www.teste.org/thumbnails.php?album=34");
echo $teste;

function getalbumstring($matches){
$query = "xyz".$matches;
return $query." - ".substr($query,1)." - ".substr($query,2)." - ".substr($query,3)." - ".substr($query,4)." - ".substr($query,3,1)." - ".substr($query,3,2);
}
O resultado é surpreendente e estranho:
Código: [Seleccione]
http://www.teste.org/xyz34 - yz34 - z34 - 34 - 1 - $ - 34
Sinceramente já não sei o que fazer. Já fiz todas as experiências. Já tentei somar um e subtrair um, mas o php não o encara nem como número, nem como caracteres, nem faço ideia como o encara. Como se pode ver pelo exemplo acima, atribuí o seu valor a outra variável, mas pelos vistos a variável, mesmo que tenha lá outras coisas pelo meio, trabalha da mesma forma.

Se alguma alma caridosa e perspicaz me puder ajudar ficarei eternamente agradecido.  :clap:

13
Afiliados / AdWords - Vale a pena?
« em: 07/Jul/2008 04:31 »
Olá
Agora que estou prestes a partir para um site de webhosting, tenho ficado na dúvida se vale a pena investir algum dinheiro do Google AdWords ou não.
Ao longo dos anos, tenho estudado bastante sobre as melhores formas de fazer os meus actuais sites subirem nos rankings dos principais motores de pesquisa, e felizmente até nem me tenho dado mal, mas têm sido sites cujo o objectivo não é financeiro e por isso nunca me meti no Google AdWords.
Agora que parto para algo cujo objectivo é ganhar dinheiro, gostaria de ter a noção se vale a pena investir no AdWords.
Da vossa experiência, e de quem já fez alguns anúncios lá, vale mesmo a pena ou não? Ou seja, tiveram retorno daquilo que investiram em relação às novas adesões? É que se estiver a pagar por clique e a totalidade dos visitantes não comprarem nenhum plano então não vale a pena.
Estive a fazer uns teste sobre o custo de algumas keywords, e segundo o site do AdWords o preço por clique pode variar (na keywords que testei) entre os 0,60€ e 1,00€. Para facilitar as contas vamos imaginar que os cliques são todos a 1,00€. Se eu gastar 25€, terei 25 visitas ao meu site de webhosting. Se 1 dessas visitas comprar um plano mais ou menos nesse valor, então fico com a campanha paga. Se existir mais 1 cliente, então já saio a ganhar.
A minha questão é: poderei supor que em 25 visitas, 2 delas compram mesmo um produto (tendo em conta que sejam preços normais do mercado e com as características usuais)?

14
Hosting / Re: Qual a vantagem de ter mais IPs?
« em: 15/Nov/2007 20:52 »
Sim, em servidores dedicados existe esse tipo de "oferta":

Por exemplo, encontrei este da Amen (tal como já vi noutros):
http://www.amen.pt/static/index_1556.html

Em "Endereços de IP fixos" no primeiro servidor dão 1, no 2º servidor dão 2 e no 3º e 4º dão 4. Qual a vantagem de ter 4 endereços em vez de 1?

15
Hosting / Re: Qual a vantagem de ter mais IPs?
« em: 15/Nov/2007 20:05 »
Obrigado pela resposta rápida. No entanto, eu compreendo a necessidade de um endereço IP. Agora não sei qual a vantagem de ter 3 ou 4 IPs.

Páginas: 1 2