Ir para conteúdo
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Eduardo S. B. de Oliveira
      Senhores, preciso de uma ajuda, estou criando um formulário onde o checkbox fique "checked" quando clicar em cima, mas o detalhe e que quando atualizar a pagina o checkbox permaneça marcado. É possível? 
    • Por gersonab
      Tenho este sql que funciona normal:
      <?php $idtor = (int)$_GET['id_tor']; $dia = $_GET['dia']; $sql3 = "SELECT * FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE data = :dia AND id_torneio = :idtor ORDER BY cantosfim DESC, pontos DESC, cantos DESC"; $stmt = $pdo->prepare($sql3); $stmt->bindParam(':idtor', $idtor); $stmt->bindParam(':dia', $dia); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> porém este outro não retorna nada, nem erro...
      <?php $idtor = (int)$_GET['id_tor']; $consul = "SELECT id_cantos, id_torneio, id_campeonato, SUM(cantosfim) AS cantfin, SUM(pontos) AS pontfin FROM cantos INNER JOIN campeonato ON id_camp = id_campeonato INNER JOIN torneio ON id_tor = id_torneio WHERE id_tor = :idtor ORDER BY pontfin DESC, cantfin DESC"; $stmt = $pdo->prepare($consul); $stmt->bindValue(':idtor', $idtor); $stmt->execute(); while ($lin = $stmt->fetch(PDO::FETCH_ASSOC)) { ?> não consigo encontrar o erro.
    • Por Carcleo
      Estou tentando rotacionar um texto no PDF com mPDF mas não estou conseguindo.
      $css = ' <style> ul { } ul li { float: left; list-style: none; /*necessáro width no campo */ } ul li span.vertical { display: block; //transform: rotate(270deg); /*necessáro display: block*/ text-rotate : 270; } </style>'; $html = ' <ul> <li style="width: 150px"><span class="vertical">Elefante</span></li> <li style="width: 150px"><span>Não</span></li> <li style="width: 150px"><span>Come</span></li> <li style="width: 150px"><span class="vertical">Bananada</span></li> </ul>'; require_once "../vendor/autoload.php"; $pdf = new \Mpdf\Mpdf(['debug' => true]); $pdf->AddPage(); $pdf->charset_in = "UTF-8"; $pdf->SetFont('Arial','B',16); $pdf->WriteHTML( $css, 1 ); $pdf->WriteHTML( $html ); $pdf->Output(); Obs.: O restante do estilo funciona normal.
       
      O problema é apenas no PDF. No navegador, os spans giram normalmente.
    • Por jpaulorh
      O código grifado de amarelo está sem os caracteres de comentário, e quando é executado fica como se estivesse comentado e não executa o php.
       

       
      Segue abaixo o código para alguém me explicar esse mistério... 
       
      <!DOCTYPE html>
      <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-status-bar-style" content="black">
        <title>CNSC</title>
          <!-- Favicons-->
        <link rel="icon" href="img/cnsc.png" sizes="32x32">
        <!-- Favicons-->
        <link rel="apple-touch-icon-precomposed" href="img/cnsc.png">
        <!-- Path to Framework7 Library CSS-->
        <link rel="stylesheet" href="css/framework7.ios.min.css">
        <link rel="stylesheet" href="css/framework7.ios.colors.min.css">
        <!-- Path to your custom app styles-->
        <link rel="stylesheet" href="css/my-app.css">
        <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
        <link rel="stylesheet" href="carbon/css/carbon-components.css">
        <!--Import Google Icon Font-->
        <link href="http://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
        <script
        src="https://code.jquery.com/jquery-3.1.1.min.js"
        integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
        crossorigin="anonymous"></script>
        <!-- Path to Framework7 Library JS-->
        <script type="text/javascript" src="js/framework7.min.js"></script>
        <script type="text/javascript" src="js/app.min.js"></script>
        <script src="carbon/js/carbon-components.js"></script>
        <script type="text/javascript">
        // Iniatilize do aplicativo com suas propriedades
        $(document).ready(function() {
          myApp = new Framework7({
            material: true,
            materialPageLoadDelay: 3,
            materialPreloaderHtml: '<span class="preloader-inner"><span class="preloader-inner-gap"></span><span class="preloader-inner-left"><span class="preloader-inner-half-circle"></span></span><span class="preloader-inner-right"><span class="preloader-inner-half-circle"></span></span></span>',
            modalTitle: 'CNSC',
            modalButtonCancel: 'Cancelar',
            modalPreloaderTitle: 'Carregando...',
          });
          verificaLogado();
        });
        </script>
      </head>
      <body class="theme-black">
        <!-- Status bar overlay for fullscreen mode-->
        <div class="statusbar-overlay"></div>
        <!-- Panels overlay-->
        <div class="panel-overlay"></div>
        <!-- Left panel with reveal effect-->
        <div class="panel panel-left panel-reveal">
          <div class="content-block">
            <div class="list-block">
              <ul>
                <li>
                  <a href="javascript: localStorage.clear(); location.href = 'index.html'" class="list-button item-link external"><i class="fa fa-sign-out color-icon" aria-hidden="true"></i> Sair</a>
                </li>
              </ul>
            </div>
          </div>
        </div>
        <!-- Views-->
        <div class="views">
          <!-- Your main view, should have "view-main" class-->
          <div class="view view-main">
            <!-- Top Navbar-->
            <div class="navbar">
              <div class="navbar-inner">
                <!-- We have home navbar without left link     icon-bars -->
                <div class="left"><a href="#" class="link icon-only open-panel"> <i class="icon"></i><img class="img img-responsive" style="position:absolute; margin-top: 0px; margin-left: 10px" src="img/cnsc.png"></a></div> 
                <br>
                <div class="center" style="position:absolute; font-weight:bold; color: #0080FF; margin-top: 0px; margin-left: 25%">Clínica N. Sra. do Carmo</div>
                            <?php include('slideshow.php');?>
              </div>
            </div>
            <!-- Pages, because we need fixed-through navbar and toolbar, it has additional appropriate classes-->
            <div class="pages navbar-through toolbar-through">
              <!-- Page, data-page contains page name-->
              <div data-page="index" class="page">
                <!-- Scrollable page content-->
      <div class="page-content">
                  <br>
                  <div class="login-screen-title">Atendimentos</div>
                  <!-- 
        Copyright IBM Corp. 2016, 2018
        This source code is licensed under the Apache-2.0 license found in the
        LICENSE file in the root directory of this source tree.
      -->
      <ul data-accordion class="bx--accordion">
          <li data-accordion-item class="bx--accordion__item">
            <button class="bx--accordion__heading" aria-expanded="false" aria-controls="pane1">
                <a href="li_listas.html" class="color-blue external" style="font-size: 18px;">
              <div class="bx--accordion__title"><i class="fa fa-list" aria-hidden="true"></i> Listas Atendimentos</a></div>
            </button>
          </li>
          <li data-accordion-item class="bx--accordion__item">
            <button class="bx--accordion__heading" aria-expanded="false" aria-controls="pane2">
            <a href="cad_usuarios.html" class="color-blue external" style="font-size: 18px;">
              <div class="bx--accordion__title"><i class="fa fa-user-circle-o" aria-hidden="true"></i> Usuários</a></div>
            </button>
          </li>
          <li data-accordion-item class="bx--accordion__item">
            <button class="bx--accordion__heading" aria-expanded="false" aria-controls="pane3">
            <a href="rel_relatorios.html" class="color-blue external" style="font-size: 18px;">
              <div class="bx--accordion__title"><i class="fa fa-bar-chart" aria-hidden="true"></i> Relatórios</a></div>
            </button>
          </li>
      </ul>
                </div>
              </div>
            </div>
          </div>
        </div>
      </body>
      </html>
    • Por Hannah25
      Eu estou criando um cms, encontrei algumas barreiras para concluir o projeto, alguém sabe como o wordpress substitui a função include pelas abreviações: wp_header(), wp_footer() e wp_ ?
       
      Seja lá o que for esta bem escondido naquele código enorme : (  
      Se alguém souber me ajude a criar essa função! ou uma alternativa sem ser a tradicional include uma personalizada...
×

Informação importante

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