1

データベースに段落を保存しています。から最初の5行だけを取得したいと思います。これを行う方法は?

最初の配列をsrtingに変換する必要がありますか?はいの場合、これを行う方法は?

私よりもその文字列がこれを行うことができる場合

$str='mayank kumar swami mayank kumar swami';
$var= strlen($str);
for($i=0;$i<8;$i++){
    echo $str[$i];
}
  1. またはSQLによってデータベースから200語だけを取得する方法は?

私はそれがcssによって簡単にできることを知っています段落の最初の行を表示するナット私はこれをphpまたはsqlクエリで実行したい

私がしていること

$article_result = mysql_query("SELECT * FROM article ORDER BY time DESC LIMIT 1",$connection);
    if($article_result){
        while($row = mysql_fetch_array($article_result)) 
            {

                echo "<div class=\"article_div\" >";
                echo "<h4 id=\"article_heading\"><img src=\"images/new.png\" alt=\"havent got\" style=\"padding-right:7px;\">".$row['article_name']."</h4>";
                echo"<h5 class=\"article_byline\">";
                echo" by";
                echo"<a href=\"#\">{$row['authore']}</a></h5>";
                echo" <div id=\"article_about\"><p>{$row['content']}</p></div>";
                             //here i want to get only 2000  word from database (content)

                echo "</div>";
            }
        }
4

5 に答える 5

5

この問題には多くの解決策があります。

単語数で分割したい場合は、user247245投稿されたものと同様のものです。

function get_x_words($string,$x=200) {
  $parts = explode(' ',$string);
  if (sizeof($parts)>$x) {
    $parts = array_slice($parts,0,$x);
  }
  echo implode(' ',$parts);
}

ただし、私の好みの方法は、特定のポイント(たとえば、200文字)までのすべての単語を取得することです。

function chop_string($string,$x=200) {
  $string = strip_tags(stripslashes($string)); // convert to plaintext
  return substr($string, 0, strpos(wordwrap($string, $x), "\n"));
}

上記は文字列を200文字で切り刻みますが、単語の終わりの後でのみ切り刻みます(したがって、単語の半分が最後に返されることはありません)

于 2012-05-25T08:35:29.360 に答える
3

私たちは言葉、線、または文字を話しているのですか?

言葉の場合:

$a = explode(' ',$theText);
if (sizeof($a)>200) $a = array_slice($a,0,200);
echo implode(' ',$a);

よろしく、

于 2012-05-25T08:18:34.177 に答える
2

mysqlで部分文字列関数を使用できます

SELECT SUBSTRING('Quadratically',1,5);

戻り値

Quadr

sqlを使用すると、dbサーバーとアプリケーションサーバー間のデータ転送量が減少するため、SQLを使用することをお勧めします。

だから、今あなたはこれに変更します

$article_result = mysql_query("SELECT article_name, authore, SUBSTRING(content,1,200) as content FROM article ORDER BY time DESC LIMIT 1",$connection);
于 2012-05-25T08:01:12.533 に答える
2

これを試して:

<?php
echo  substr("mayank kumar swami mayank kumar swami", 0, 6);
?>

結果出力:mayank

于 2012-05-25T08:05:38.270 に答える
0
<?php
$about_vendor ="Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci officia excepturi quisquam mollitia, obcaecati cupiditate, quaerat est quibusdam nostrum esse culpa voluptates eum, et architecto animi. Voluptates enim tenetur minus! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laboriosam magni exercitationem non at error possimus, voluptas aut, aperiam sint pariatur illo libero vel aspernatur tempora laborum. Harum nesciunt quos at. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vitae quidem saepe voluptates minus delectus, dolores, repellat maiores quae consectetur quasi qui voluptas eius odit autem optio cupiditate nesciunt iste ducimus!"
// Convert string to array
$convert_to_array = explode(' ',$about_vendor);
// Total length of array
$total_length_of_array =  count($convert_to_array);
?>
<p class="tip_par" style="text-align:justify;">
<!-- specify how many words do you want to show, I like to show first 30 words -->
  <?php for($i=0;$i<=30;$i++) {
  echo $convert_to_array[$i].' ';
  } ?>
  <!-- If you have more than 30 word it will show on toggle click on below more link -->
  <span style="color:#C1151B;">  <span data-toggle="collapse" data-target="#demo" style="cursor:pointer;"><?php if($total_length_of_array >30) {
    echo "more";
  } ?></span>
  <div id="demo" class="collapse tip_par" style="padding-top: 0px;">
    <?php  for($i=31;$i<$total_length_of_array;$i++) {
    echo $convert_to_array[$i].' ';
    } ?>
  </div>
</span> </p>
于 2016-03-19T11:09:01.977 に答える