Ir para conteúdo

Arquivado

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

Mel  Nunes

Tenho um upload de texto e img quero por o texto com ... reticências

Recommended Posts

Olá pessoal sou nova nova no fórum estudante de TI fiz o cadastro para sanar algumas dúvidas que possam surgir assim colaborando

para meu aprendizado e maior conhecimento.

 

Vamos a dúvida tenho um sistema upload que é para mostrar ali imagens e texto quando quiserem ver mais clikam no link ai vão para a página mostra texto.php só que o texto ta todo largão não fica com reticência e na página mostra texto ta todo feio não ta arrumadinha direitinho.

 

Segue abaixo:

Mostra

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$imagem['texto'];"</td>";
echo "<br/>";
echo'<div><br> //texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">'.substr("Ver mais", 0,65)."...".'</a></tr>
<div>';
}
}

Mostra texto.php

 

if($conta <= 0){
echo '<h2 align="center">Nenhuma Imagem Postada</h2>';
}else{
while($linha = pg_fetch_array($sql)){
echo
'
<div id="img" align="center">
<img src="Imagens/'.$linha['img'].'" width="246" heigth="118" title="'.$linha['id'].'"><br>
</div>
';
echo "<br/>";
echo "<center>"."<b>".$linha['titulo'];
echo "<br/>";
echo "<br/>";
echo "<center>"."Curso:".$linha['disciplina']."<br>" ;
echo "<br/>";
echo "<justify>".$linha['texto'] ; //só arrumar que ta todo espichado e em negrito queria tipo como no html com paragrafos arrumado
echo "<br/>";
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Mel Nunes,

 

Se entendi bem, você precisa recortar o texto e comparar o tamanho de cada texto a ser apresentado, se a quantidade de caracteres ultrapassar a que você considera, então você inclui as reticencias.

 

 

Ex:

 

Vou considerar que a quantidade máxima para cada texto a ser exibida, e não vai ficar 'quebrado' na tela é 150 caracteres.

$texto = substr($linha['texto'], 0, 150) // Recorta texto para exibição

if (strlen($linha['texto']) > 150)  $texto .= '...'; // Caso exista mais de 150 caracteres, então insere reticencias

echo "<justify>".$texto ;   //só arrumar que ta todo espichado  e em negrito queria tipo como no html com paragrafos arrumado

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Boa tarde Mel Nunes,

 

Se entendi bem, você precisa recortar o texto e comparar o tamanho de cada texto a ser apresentado, se a quantidade de caracteres ultrapassar a que você considera, então você inclui as reticencias.

 

 

Ex:

 

Vou considerar que a quantidade máxima para cada texto a ser exibida, e não vai ficar 'quebrado' na tela é 150 caracteres.

$texto = substr($linha['texto'], 0, 150) // Recorta texto para exibição

if (strlen($linha['texto']) > 150)  $texto .= '...'; // Caso exista mais de 150 caracteres, então insere reticencias

echo "<justify>".$texto ;   //só arrumar que ta todo espichado  e em negrito queria tipo como no html com paragrafos arrumado

Como acrescento isso no meu código ali para dar certinho :)

 

São duas páginas diferentes primeira exibição texto pequeno com ... e clica em ver mais e vai para a página com todo texto e informação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei o primeiro código que você enviou, que é responsável por criar os textos para exibir a opção "ver mais"

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
 
    
 
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$imagem['texto'];"</td>";
  echo "<br/>";
  
  
         
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição

if (strlen($imagem['texto']) > 65)  $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias

//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . '  <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Alterei o primeiro código que você enviou, que é responsável por criar os textos para exibir a opção "ver mais"

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
 
    
 
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$imagem['texto'];"</td>";
  echo "<br/>";
  
  
         
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição

if (strlen($imagem['texto']) > 65)  $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias

//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . '  <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';

Mas ai está funcionando normal é acima desse ver mais tem um texto e ele está todo espichado queria por reticências. Por exemplo, tenho a esquerda uma imagem a direita titulo e um texto espichado que queria por reticencias e um ver mais que vai para página com todo texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ha desculpe, deve aplicar o mesmo conceito então para o código de cima

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
 
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição

if (strlen($imagem['texto']) > 65)  $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
 
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
  echo "<br/>";

//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . '  <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';

Fiz pequenos ajustes em outros locais do código também, mas você precisa dar uma olhada na estrutura HTML para o resultado não sair bagunçado, se o HTML não estiver correto, tua página também pode 'Quebrar'.

 

Teste agora com esse novo modelo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ha desculpe, deve aplicar o mesmo conceito então para o código de cima

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
 
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição

if (strlen($imagem['texto']) > 65)  $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
 
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
  echo "<br/>";

//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . '  <span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';

Fiz pequenos ajustes em outros locais do código também, mas você precisa dar uma olhada na estrutura HTML para o resultado não sair bagunçado, se o HTML não estiver correto, tua página também pode 'Quebrar'.

 

Teste agora com esse novo modelo.

Funcionou só que o ver mais ficou lá encima não abaixo do texto. Tipo ta tudo central o ver mais foi lá para o topo esquerdo mas ta funcionando. Me ajuda organizar para o ver mais ficar abaixo do texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que o ver mais abaixo basta inserir um <br> ou colocar dentro de <div>ver mais</div>

 

Ex:

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
 
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição

if (strlen($imagem['texto']) > 65)  $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
 
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
  echo "<br/>";

//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . '  <br><br><span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';

Teste agora

 

É interessante você colocar o código completo, para ver se não tem problema com o código html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que o ver mais abaixo basta inserir um <br> ou colocar dentro de <div>ver mais</div>

 

Ex:

echo
'
<div id="img" >
<tr><td><img src="Imagens/'.$imagem['img'].'" height="100" title="'.$imagem['id'].'"></td>
</div>';
 
$texto = substr($imagem['texto'], 0, 65); // Recorta texto para exibição

if (strlen($imagem['texto']) > 65)  $texto .= '...'; // Caso exista mais de 65 caracteres, então insere reticencias
 
echo
"<td>"."<b>".$imagem['titulo']."<br>"."</b>"."<br>".$texto."</td>";
  echo "<br/>";

//texto aqui ta todo espichado queria com reticência que ao clicar em ver mais vai para mostra texto.php
echo'<div><br>
<a href="mostra_texto.php?acao='.$imagem['texto'].'&cod='.$imagem['id'].'">' . $texto . '  <br><br><span style="color: red;"><b>Ver mais</b></span></a></tr>
<div>';

Teste agora

 

É interessante você colocar o código completo, para ver se não tem problema com o código html

 

Bom consegui era um <td> que tinha que por ali do lado da div, para o ver mais ficar na tabela. Agora preciso arrumar o segundo código mostra texto para o texto da notícia ficar organizado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas qual o problema com o script que exibe o texto completo?

O problema é que o texto fico largo enchendo toda página.

Tipo assim:

TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO

 

E queria que ficasse:

TEXTO TEXTO TEXTO

TEXTO TEXTO TEXTO

TEXTO TEXTO TEXTO

 

Tipo como fazemos no html que colocamos <p> para novo paragrafo e br e tal e deixamos arrumado não todo espalhado na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, nesse sentido você pode colocar uma div com tamanho fixo, dessa forma o texto fica mais organizado, tem diversas formas de se fazer isso, mas uma deles segue abaixo:

Mostra texto.php 
 
if($conta <= 0){
echo '<h2 align="center">Nenhuma Imagem Postada</h2>';
}else{
 
while($linha = pg_fetch_array($sql)){
 
 
 
echo
'
<div id="img" align="center">
<img src="Imagens/'.$linha['img'].'" width="246" heigth="118" title="'.$linha['id'].'"><br>
</div>
';
 
echo "<br/>";
echo "<center>"."<b>".$linha['titulo'];
echo "<br/>"; 
echo "<br/>";
echo "<center>"."Curso:".$linha['disciplina']."<br>" ;
echo "<br/>";
 
echo "<div style='padding:10px;width: 500px;'>".$linha['texto'] . "</div>";   //só arrumar que ta todo espichado  e em negrito queria tipo como no html com paragrafos arrumado
echo "<br/><br/>";
 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Entendi, nesse sentido você pode colocar uma div com tamanho fixo, dessa forma o texto fica mais organizado, tem diversas formas de se fazer isso, mas uma deles segue abaixo:

Mostra texto.php 
 
if($conta <= 0){
echo '<h2 align="center">Nenhuma Imagem Postada</h2>';
}else{
 
while($linha = pg_fetch_array($sql)){
 
 
 
echo
'
<div id="img" align="center">
<img src="Imagens/'.$linha['img'].'" width="246" heigth="118" title="'.$linha['id'].'"><br>
</div>
';
 
echo "<br/>";
echo "<center>"."<b>".$linha['titulo'];
echo "<br/>"; 
echo "<br/>";
echo "<center>"."Curso:".$linha['disciplina']."<br>" ;
echo "<br/>";
 
echo "<div style='padding:10px;width: 500px;'>".$linha['texto'] . "</div>";   //só arrumar que ta todo espichado  e em negrito queria tipo como no html com paragrafos arrumado
echo "<br/><br/>";
 

}

Ali dentro da div to alterando o que mais eu quero, valeu por dedicar seu tempo para me ajudar muita obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma coisinha quando texto é muito grande ele fica todo grudado teria como por parágrafos espaços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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