Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera!
Estou com um probleminha usando as ER's.
Comecei a pouco tempo a estudar o uso de ER's para identificação de padrões no conteúdo. Bem... estou usando um pequeno javascript para inserir tags no texto e imagens. No caso das imagens é inserida um ER [#IMAGEM#] q depois interpretada pelo php vira a tag img tendo como valor de src o endereço da img q foi uplodeada no form.
http://www.tiagoalencar.com/upload/gerenciamento.htm
no php estou usando isso ( e tá funcionando :D ) :
$er = "|\[#IMAGEM#\]|"; $substituir = "<img src=\"".$arquivo_nome."\"/>";$conteudo = preg_replace($er, $substituir, $conteudo, 1);
até aí beleza! só q o cliente pediu para ter a possibilidade de alinhar a img a direita ou a esquerda.
no caso criei dois botões no form um q inserem essas ER's (cada um insere uma):
[#IMAGEM DIR#]
[#IMAGEM ESQ#]
só que não consigo fazer o php rodar direito...
no exemplo anterior se o cara fizesse o upload de 3 imagens seria rodado um while por 3 vezes (qnt de imgs) e em cada vez seria substituido uma [#IMAGEM#] por isso usei o limit 1...
agora preciso além de substituir apenas 1 ER por volta do while q o php se a ER é [#IMAGEM DIR#] ou [#IMAGEM ESQ#] e como base nisso use um replacement diferente...
Como vcs fariam isso galera?
Abração, Tiago.
fala cara!!!!!
olha consegui o que queria usando uma condicional.... dá uma olhada:
$er = "|\[#(.*)#\]|";
$er_dir = "|\[#(IMAGEM DIR)#\]|";
$er_esq = "|\[#(IMAGEM ESQ)#\]|";
if (preg_match($er, $conteudo)){
if (preg_match($er_dir, $conteudo)){
$substituir = "<img src=\"".$arquivo_nome."\" ".$attr." class=\"img_dir\"/>";
$conteudo = preg_replace($er_dir, $substituir, $conteudo, 1);
} else if (preg_match($er_esq, $conteudo)){
$substituir = "<img src=\"".$arquivo_nome."\" ".$attr." class=\"img_esq\"/>";
$conteudo = preg_replace($er_esq, $substituir, $conteudo, 1);
}
}
Tá funcionando certinho como eu queria!!!
Só que agora me surgiu um novo problema... em outro uso de ER...
ñ estou conseguindo identificar a new line - \n
eu preciso identificar paragrafos vazios no meu conteudo... só o conteudo tem essa formação:
<p>sdadsadasdasdasdas</p><p>
</p><p>
sdasdasdasdasdasdasdasdda</p><p>
sdasdasdasdasdadadasda</p>
perceba q o paragrafo vazio (o segundo)... tem a tag de abertura em uma linha e a de fechamento em outra.
então usei a seguinte ER:
$p_vazios = "|<p.>[ ,/n]</p>|";
tb tentei assim:
$p_vazios = "|<p.>[ ,//n]</p>|";
nenhum dos dois funciona... mas se coloco assim:
$p_vazios = "|<p.>[ ,]</p>|";funciona e identifica!!!
oq será isso?? só da pra escrever assim na base da "gambiarra"?
Tiago!!!
perce
olha.. nao entendi direito nao.. mais para reconhecer lines você pode por assim:
<?$str='<p>sdadsadasdasdasdas</p><p></p><p>sdasdasdasdasdasdasdasdda</p><p>sdasdasdasdasdadadasda</p>';preg_match_all("#\<p\>(.*?)\<\/p\>#s", $str, $matches);print_r($matches[1]);?>
é o que queres?[]'s
tipo... da para trabalhar nisso sim.. eu criei uma tagzinha aqui... so que ela tem um bug, ela so aceita em sequencia...
ex:
ela aceita
/applications/core/interface/imageproxy/imageproxy.php?img=src=blabla.jpg&key=6803c5e7368c5827078e5fda1a5dc2aa938e5d4362a5a89c3587858d1edb6d76" class="ipsImage" alt="src=blabla.jpg" />
/applications/core/interface/imageproxy/imageproxy.php?img=src=blabla.jpg%22%20align=%22left&key=c6031cc792c47b789773900cdedde8c4e21101bc55610f58d263cb75a14c39c5" class="ipsImage" alt="src=blabla.jpg" align="left" />
/applications/core/interface/imageproxy/imageproxy.php?img=src=blabla.jpg%22%20bg=%22FFFFFF&key=eda8e536a7d9dd5074e97b2ba66befae4c9215a4f9c3ad919c632cde88d96e12" class="ipsImage" alt="src=blabla.jpg" bg="FFFFFF" />
/applications/core/interface/imageproxy/imageproxy.php?img=src=blabla.jpg%22%20align=%22left%22%20bg=%22FFFFFF&key=a3fc8199ae59fadf6613ab3edb24043cef925dfdb87df8ce13c1adf4c534e586" class="ipsImage" alt="src=blabla.jpg" align="left" bg="FFFFFF" />
mais nao aceita:
/applications/core/interface/imageproxy/imageproxy.php?img=src=blabla.jpg%22%20bg=%22FFFFFF%22%20align=%22left&key=a7f41eed6a70b89cfce86012b066c1ff5ff7821d05b8d11dd80cad1bd7530d60" class="ipsImage" alt="src=blabla.jpg" bg="FFFFFF" align="left" />
eu nao consegui fazer sem sequencia.. talvez voce consiga ^^
>
<?
espero ter ajudado[]'s
/edit
consegui fazer... mais ficou uma Er noob d+.. vou postar para ver se te ajuda.. mais eu nao usaria:
>
<?