Hướng dẫn dùng substring perl trong PHP

  1. Trang Chủ
  2. PHP

Ví dụ của bài viết này cho biết phương pháp của php có được hệ thống phụ theo vị trí và độ dài được chỉ định. Chia sẻ nó cho tất cả mọi người để bạn tham khảo. Phân tích cụ thể như sau:

php substr Hàm rất mạnh, bạn có thể tiếp tục đi từ phía sau của hệ thống phụ

$string = "beginning";
print("Position counted from left: ".substr($string,0,5)."\n");
print("Position counted form right: ".substr($string,-7,3)."\n");
?>

Kết quả đầu ra:

Position counted from left: begin
Position counted form right: gin

PHP Nhận Hậu Tố Của Tệp?

Phương pháp đầu tiên là sử dụng mảng. Trước tiên, hãy cắt tên tệp vào một mảng số và sau đó tìm cách lấy phần tử cuố

<3

Ví dụ: giả sử rằng dự án của chúng tôi muốn sử dụng công cụ nhật ký monolog, chúng tôi cần nói composer trong composer.json tro

PHP Nhận Excel Dữ Liệu Tệp

Nó rất đơn giản để đạt được. Hãy để tôi giới thiệu ngắn gọn về bạn 1. Tải xuống lớp PHPExcel, là một thư mục và p

PHP Tạo Trang Wap

WAP (Thỏa thuận truyền thông không dây) là một tiêu chuẩn toàn cầu mở cho giao tiếp giữa điện thoại di động kỹ thuật số, t

Hàm substr() giúp chúng ta cắt một phần của chuỗi ban đầu trong php.

Cú pháp

substr ( string $string , int $start [, int $length ] )

Input:

  • $string là chuỗi ban đầu
  • $start là vị trí cắt
  • $length là số ký tự cần cắt

Output: Một phần của chuỗi ban đầu được cắt, nếu thông số cắt không hợp lệ hàm trả về FALSE.

Chú ý:

  • Nếu $start có giá trị dương thì vị trí bắt đầu được đếm từ đầu đến cuối chuỗi và xuất phát từ 0. Ví dụ với chuỗi “abc” với vị trí 0 là bắt đầu ký tự “a”, vị trí 1 là “b”…
  • Nếu $start có giá trị âm thì đếm ngược từ cuối chuỗi và bắt đầu bằng giá trị 0. Vị trí ký tự cuối cùng của chuỗi là -1 ví thứ 2 từ sau đến là -2…
  • Nếu $length là số dương sẽ lấy tối đa các ký tự kể từ vị trí $start
  • Nếu $length là số âm sẽ loại bỏ $length ký tự từ cuối chuỗi.
  • Nếu $length bằng 0 hàm trả về False.

Ví dụ hàm substr()

Ví dụ 1: Tách chuỗi "Unitop" trong chuỗi "Unitop học web đi làm"

Giải thích: Chuỗi "Unitop" vị trí đầu tiên nên $start = 0. Ngoài ra độ dài chuỗi này có 6 ký tự nên $length = 6.

Kết quả sau khi chạy chương trình

Unitop

Với lấy chuỗi này chúng ta có thể sử dụng những tham số sau vẫn có kết quả tương tự.

Giải thích: Lấy từ vị trí đầu tiên và loại bỏ 15 ký tự sau cùng của chuỗi.

Kết quả vẫn trả về chuỗi con

Unitop

Ví dụ 2: Tác thông tin của mã sinh viên.

Giả sử mã sinh viên được tạo ra bởi 2 phần.

  • Mã của lớp: ví dụ “TINK32”
  • Id của của sinh viên là chuỗi 7 ký tự cuối cùng

Nhiệm vụ cần xác định sinh viên thuộc lớp nào và id bao nhiêu.

 Id: {$student_id} ";

?>

Kết quả

Class:TINK32
Id: 1061016

Tổng kết

Qua 2 ví dụ trên bạn đã được hướng dẫn cách để sử dụng hàm substr() tách một phần của chuỗi trong php. Nội dung này cần tư duy khác nhiều nên bạn cần ghi chép và thực hành lại để nắm chắc bài học.

answer

229

Hướng dẫn dùng substring perl trong PHP

Bằng cách sử dụng chức năng wordwrap . Nó chia các văn bản thành nhiều dòng sao cho chiều rộng tối đa là chiều rộng bạn đã chỉ định, phá vỡ ranh giới từ. Sau khi tách, bạn chỉ cần lấy dòng đầu tiên:

substr($string, 0, strpos(wordwrap($string, $your_desired_width), "\n"));

Một điều mà oneliner này không xử lý được là trường hợp văn bản chính nó ngắn hơn chiều rộng mong muốn. Để xử lý trường hợp cạnh này, bạn nên làm điều gì đó như:

if (strlen($string) > $your_desired_width) 
{
    $string = wordwrap($string, $your_desired_width);
    $string = substr($string, 0, strpos($string, "\n"));
}

Giải pháp trên có vấn đề là cắt văn bản sớm nếu nó chứa một dòng mới trước điểm cắt thực tế. Đây là một phiên bản giải quyết vấn đề này:

function tokenTruncate($string, $your_desired_width) {
  $parts = preg_split('/([\s\n\r]+)/', $string, null, PREG_SPLIT_DELIM_CAPTURE);
  $parts_count = count($parts);

  $length = 0;
  $last_part = 0;
  for (; $last_part < $parts_count; ++$last_part) {
    $length += strlen($parts[$last_part]);
    if ($length > $your_desired_width) { break; }
  }

  return implode(array_slice($parts, 0, $last_part));
}

Ngoài ra, đây là lớp thử nghiệm PHPUnit được sử dụng để kiểm tra việc triển khai:

class TokenTruncateTest extends PHPUnit_Framework_TestCase {
  public function testBasic() {
    $this->assertEquals("1 3 5 7 9 ",
      tokenTruncate("1 3 5 7 9 11 14", 10));
  }

  public function testEmptyString() {
    $this->assertEquals("",
      tokenTruncate("", 10));
  }

  public function testShortString() {
    $this->assertEquals("1 3",
      tokenTruncate("1 3", 10));
  }

  public function testStringTooLong() {
    $this->assertEquals("",
      tokenTruncate("toooooooooooolooooong", 10));
  }

  public function testContainingNewline() {
    $this->assertEquals("1 3\n5 7 9 ",
      tokenTruncate("1 3\n5 7 9 11 14", 10));
  }
}

BIÊN TẬP :

Các ký tự UTF8 đặc biệt như 'à' không được xử lý. Thêm 'u' vào cuối REGEX để xử lý nó:

$parts = preg_split('/([\s\n\r]+)/u', $string, null, PREG_SPLIT_DELIM_CAPTURE);

229 hữu ích 5 bình luận chia sẻ

answer

140

Hướng dẫn dùng substring perl trong PHP

Điều này sẽ trả về 200 ký tự đầu tiên của từ:

preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, 201));

140 hữu ích 5 bình luận chia sẻ

answer

47

Hướng dẫn dùng substring perl trong PHP

$WidgetText = substr($string, 0, strrpos(substr($string, 0, 200), ' '));

Và bạn đã có nó - một phương pháp đáng tin cậy để cắt ngắn bất kỳ chuỗi nào thành toàn bộ từ gần nhất, trong khi vẫn duy trì độ dài chuỗi tối đa.

Tôi đã thử các ví dụ khác ở trên và chúng không tạo ra kết quả mong muốn.

47 hữu ích 4 bình luận chia sẻ

answer

37

Hướng dẫn dùng substring perl trong PHP

Giải pháp sau được sinh ra khi tôi nhận thấy tham số $ break của hàm wordwrap :

string wordwrap (string $ str [, int $ width = 75 [, string $ break = "\ n" [, bool $ cut = false]]])

Đây là giải pháp :

/**
 * Truncates the given string at the specified length.
 *
 * @param string $str The input string.
 * @param int $width The number of chars at which the string will be truncated.
 * @return string
 */
function truncate($str, $width) {
    return strtok(wordwrap($str, $width, "...\n"), "\n");
}

Ví dụ 1.

print truncate("This is very long string with many chars.", 25);

Ví dụ trên sẽ xuất ra:

This is very long string...

Ví dụ # 2.

print truncate("This is short string.", 25);

Ví dụ trên sẽ xuất ra:

This is short string.

37 hữu ích 2 bình luận chia sẻ

answer

9

Hướng dẫn dùng substring perl trong PHP

Hãy nhớ rằng bất cứ khi nào bạn chia theo "từ" ở bất kỳ đâu mà một số ngôn ngữ như tiếng Trung và tiếng Nhật không sử dụng ký tự khoảng trắng để chia từ. Ngoài ra, người dùng độc hại có thể chỉ cần nhập văn bản mà không có bất kỳ khoảng trắng nào hoặc sử dụng một số Unicode trông giống với ký tự khoảng trắng tiêu chuẩn, trong trường hợp đó, bất kỳ giải pháp nào bạn sử dụng cũng có thể hiển thị toàn bộ văn bản. Một cách giải quyết vấn đề này có thể là kiểm tra độ dài chuỗi sau khi chia nhỏ trên khoảng trắng như bình thường, sau đó, nếu chuỗi vẫn vượt quá giới hạn bất thường - có thể là 225 ký tự trong trường hợp này - hãy tiếp tục và tách nó một cách ngu ngốc ở giới hạn đó.

Một lưu ý nữa với những thứ như thế này khi nói đến các ký tự không phải ASCII; các chuỗi chứa chúng có thể được hiểu theo chuẩn strlen () của PHP là dài hơn thực tế, bởi vì một ký tự đơn lẻ có thể chiếm hai hoặc nhiều byte thay vì chỉ một. Nếu bạn chỉ sử dụng các hàm strlen () / substr () để chia chuỗi, bạn có thể tách một chuỗi ở giữa một ký tự! Khi nghi ngờ, mb_strlen () / mb_substr () dễ hiểu hơn một chút.

9 hữu ích 0 bình luận chia sẻ

answer

8

Hướng dẫn dùng substring perl trong PHP

Sử dụng strpos và substr:

Điều này sẽ cung cấp cho bạn một chuỗi bị cắt ngắn ở khoảng trắng đầu tiên sau 30 ký tự.

8 hữu ích 1 bình luận chia sẻ

answer

7

Hướng dẫn dùng substring perl trong PHP

Của bạn đây:

function neat_trim($str, $n, $delim='…') {
   $len = strlen($str);
   if ($len > $n) {
       preg_match('/(.{' . $n . '}.*?)\b/', $str, $matches);
       return rtrim($matches[1]) . $delim;
   }
   else {
       return $str;
   }
}

7 hữu ích 2 bình luận chia sẻ

answer

5

Hướng dẫn dùng substring perl trong PHP

Đây là chức năng của tôi dựa trên cách tiếp cận của @ Cd-MaN.

function shorten($string, $width) {
  if(strlen($string) > $width) {
    $string = wordwrap($string, $width);
    $string = substr($string, 0, strpos($string, "\n"));
  }

  return $string;
}

5 hữu ích 0 bình luận chia sẻ

answer

5

Hướng dẫn dùng substring perl trong PHP

$shorttext = preg_replace('/^([\s\S]{1,200})[\s]+?[\s\S]+/', '$1', $fulltext);

Sự miêu tả:

  • ^ - bắt đầu từ đầu chuỗi
  • ([\s\S]{1,200}) - nhận được từ 1 đến 200 của bất kỳ ký tự nào
  • [\s]+?- không bao gồm khoảng trắng ở cuối văn bản ngắn để chúng tôi có thể tránh word ...thay vìword...
  • [\s\S]+ - phù hợp với tất cả các nội dung khác

Kiểm tra:

  1. regex101.comchúng ta hãy thêm vào ormột số khácr
  2. regex101.com orrrr chính xác 200 ký tự.
  3. regex101.comsau thứ năm r orrrrrbị loại trừ.

Thưởng thức.

5 hữu ích 2 bình luận chia sẻ

answer

4

Hướng dẫn dùng substring perl trong PHP

Thật ngạc nhiên là việc tìm ra giải pháp hoàn hảo cho vấn đề này là khó khăn đến mức nào. Tôi vẫn chưa tìm thấy câu trả lời trên trang này không bị lỗi trong ít nhất một số tình huống (đặc biệt nếu chuỗi chứa dòng mới hoặc tab hoặc nếu ngắt từ là bất kỳ thứ gì khác ngoài dấu cách hoặc nếu chuỗi có UTF- 8 ký tự nhiều byte).

Đây là một giải pháp đơn giản có hiệu quả trong mọi trường hợp. Có những câu trả lời tương tự ở đây, nhưng công cụ sửa đổi "s" rất quan trọng nếu bạn muốn nó hoạt động với đầu vào nhiều dòng và công cụ sửa đổi "u" giúp nó đánh giá chính xác các ký tự đa byte UTF-8.

function wholeWordTruncate($s, $characterCount) 
{
    if (preg_match("/^.{1,$characterCount}\b/su", $s, $match)) return $match[0];
    return $s;
}

Một trường hợp cạnh có thể xảy ra với điều này ... nếu chuỗi không có bất kỳ khoảng trắng nào trong các ký tự $ characterCount đầu tiên, nó sẽ trả về toàn bộ chuỗi. Nếu bạn thích nó buộc ngắt ở $ characterCount ngay cả khi nó không phải là ranh giới từ, bạn có thể sử dụng điều này:

function wholeWordTruncate($s, $characterCount) 
{
    if (preg_match("/^.{1,$characterCount}\b/su", $s, $match)) return $match[0];
    return mb_substr($return, 0, $characterCount);
}

Một tùy chọn cuối cùng, nếu bạn muốn có nó, hãy thêm dấu chấm lửng nếu nó cắt ngắn chuỗi ...

function wholeWordTruncate($s, $characterCount, $addEllipsis = ' …') 
{
    $return = $s;
    if (preg_match("/^.{1,$characterCount}\b/su", $s, $match)) 
        $return = $match[0];
    else
        $return = mb_substr($return, 0, $characterCount);
    if (strlen($s) > strlen($return)) $return .= $addEllipsis;
    return $return;
}

4 hữu ích 2 bình luận chia sẻ

answer

2

Hướng dẫn dùng substring perl trong PHP

Tôi sẽ sử dụng hàm preg_match để làm điều này, vì những gì bạn muốn là một biểu thức khá đơn giản.

$matches = array();
$result = preg_match("/^(.{1,199})[\s]/i", $text, $matches);

Biểu thức có nghĩa là "so khớp bất kỳ chuỗi con nào bắt đầu từ đầu có độ dài 1-200 kết thúc bằng dấu cách." Kết quả là $ kết quả, và kết quả là $ trận đấu. Điều đó sẽ xử lý câu hỏi ban đầu của bạn, câu hỏi này đặc biệt kết thúc trên bất kỳ khoảng trống nào. Nếu bạn muốn kết thúc trên dòng mới, hãy thay đổi biểu thức chính quy thành:

$result = preg_match("/^(.{1,199})[\n]/i", $text, $matches);

2 hữu ích 0 bình luận chia sẻ

answer

2

Hướng dẫn dùng substring perl trong PHP

Ok vì vậy tôi đã nhận được một phiên bản khác của điều này dựa trên các câu trả lời ở trên nhưng tính đến nhiều thứ hơn (utf-8, \ n và & nbsp;), cũng có một dòng tước các mã ngắn của wordpress được nhận xét nếu được sử dụng với wp.

function neatest_trim($content, $chars) 
  if (strlen($content) > $chars) 
  {
    $content = str_replace(' ', ' ', $content);
    $content = str_replace("\n", '', $content);
    // use with wordpress    
    //$content = strip_tags(strip_shortcodes(trim($content)));
    $content = strip_tags(trim($content));
    $content = preg_replace('/\s+?(\S+)?$/', '', mb_substr($content, 0, $chars));

    $content = trim($content) . '...';
    return $content;
  }

2 hữu ích 0 bình luận chia sẻ

answer

2

Hướng dẫn dùng substring perl trong PHP

Đây là một bản sửa lỗi nhỏ cho câu trả lời của mattmac:

preg_replace('/\s+?(\S+)?$/', '', substr($string . ' ', 0, 201));

Sự khác biệt duy nhất là thêm một khoảng trắng vào cuối chuỗi $. Điều này đảm bảo từ cuối cùng không bị cắt theo nhận xét của ReX357.

Tôi không có đủ điểm đại diện để thêm điều này làm bình luận.

2 hữu ích 0 bình luận chia sẻ

answer

2

Hướng dẫn dùng substring perl trong PHP

/*
Cut the string without breaking any words, UTF-8 aware 
* param string $str The text string to split
* param integer $start The start position, defaults to 0
* param integer $words The number of words to extract, defaults to 15
*/
function wordCutString($str, $start = 0, $words = 15 ) {
    $arr = preg_split("/[\s]+/",  $str, $words+1);
    $arr = array_slice($arr, $start, $words);
    return join(' ', $arr);
}

Sử dụng:

$input = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna liqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';
echo wordCutString($input, 0, 10); 

Điều này sẽ xuất ra 10 từ đầu tiên.

Các preg_splitchức năng được sử dụng để tách một chuỗi thành chuỗi con. Các ranh giới mà chuỗi sẽ được phân chia, được chỉ định bằng cách sử dụng mẫu biểu thức chính quy.

preg_split hàm nhận 4 tham số, nhưng chỉ 3 tham số đầu tiên phù hợp với chúng ta ngay bây giờ.

Tham số đầu tiên - Mẫu Tham số đầu tiên là mẫu biểu thức chính quy mà chuỗi sẽ được tách. Trong trường hợp của chúng tôi, chúng tôi muốn chia chuỗi theo các ranh giới từ. Do đó, chúng tôi sử dụng một lớp ký tự được xác định trước \sphù hợp với các ký tự khoảng trắng như dấu cách, tab, dấu xuống dòng và nguồn cấp dữ liệu dòng.

Tham số thứ hai - Chuỗi đầu vào Tham số thứ hai là chuỗi văn bản dài mà chúng ta muốn tách.

Tham số thứ ba - Giới hạn Tham số thứ ba chỉ định số chuỗi con sẽ được trả về. Nếu bạn đặt giới hạn thành n, preg_split sẽ trả về một mảng gồm n phần tử. Các n-1phần tử đầu tiên sẽ chứa các chuỗi con. Phần (n th)tử cuối cùng sẽ chứa phần còn lại của chuỗi.

2 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng substring perl trong PHP

Dựa trên regex của @Justin Poliey:

// Trim very long text to 120 characters. Add an ellipsis if the text is trimmed.
if(strlen($very_long_text) > 120) {
  $matches = array();
  preg_match("/^(.{1,120})[\s]/i", $very_long_text, $matches);
  $trimmed_text = $matches[0]. '...';
}

1 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng substring perl trong PHP

Tôi có một chức năng gần như thực hiện những gì bạn muốn, nếu bạn thực hiện một vài chỉnh sửa, nó sẽ phù hợp chính xác:

') {
    $words_array = explode(" ",$string);
    $strlen = 0;
    $return = '';
    foreach($words_array as $word) {
        $strlen += mb_strlen($word,'utf8');
        $return .= $word." ";
        if($strlen >= $length) {
            $strlen = 0;
            $return .= $delimiter;
        }
    }
    return $return;
}
?>

1 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng substring perl trong PHP

Đây là cách tôi đã làm điều đó:

$string = "I appreciate your service & idea to provide the branded toys at a fair rent price. This is really a wonderful to watch the kid not just playing with variety of toys but learning faster compare to the other kids who are not using the BooksandBeyond service. We wish you all the best";

print_r(substr($string, 0, strpos(wordwrap($string, 250), "\n")));

1 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng substring perl trong PHP

Mặc dù đây là một câu hỏi khá cũ, nhưng tôi nghĩ rằng tôi sẽ cung cấp một giải pháp thay thế, vì nó không được đề cập và hợp lệ cho PHP 4.3+.

Bạn có thể sử dụng nhóm sprintfhàm để cắt bớt văn bản, bằng cách sử dụng công cụ %.ℕssửa đổi độ chính xác.

Một dấu chấm .theo sau bởi một số nguyên, ý nghĩa của người phụ thuộc vào từ xác định:

  • Đối với các ký hiệu e, E, f và F: đây là số chữ số được in sau dấu thập phân (theo mặc định, đây là 6).
  • Đối với ký hiệu g và G: đây là số chữ số có nghĩa tối đa được in.
  • Đối với chỉ định của s: nó hoạt động như một điểm giới hạn, đặt giới hạn ký tự tối đa cho chuỗi

Cắt ngắn đơn giản https://3v4l.org/QJDJU

$string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var_dump(sprintf('%.10s', $string));

Kết quả

string(10) "0123456789"

Cắt bỏ mở rộng https://3v4l.org/FCD21

Vì các sprintfchức năng tương tự như substrvà sẽ cắt bỏ một phần từ. Cách tiếp cận dưới đây sẽ đảm bảo các từ không bị cắt bằng cách sử dụng strpos(wordwrap(..., '[break]'), '[break]')dấu phân cách đặc biệt. Điều này cho phép chúng tôi truy xuất vị trí và đảm bảo chúng tôi không khớp trên cấu trúc câu tiêu chuẩn.

Trả lại một chuỗi mà không cắt bỏ một phần các từ và không vượt quá chiều rộng được chỉ định, trong khi vẫn giữ nguyên các dấu ngắt dòng nếu muốn.

function truncate($string, $width, $on = '[break]') {
    if (strlen($string) > $width && false !== ($p = strpos(wordwrap($string, $width, $on), $on))) {
        $string = sprintf('%.'. $p . 's', $string);
    }
    return $string;
}
var_dump(truncate('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', 20));

var_dump(truncate("Lorem Ipsum is simply dummy text of the printing and typesetting industry.", 20));

var_dump(truncate("Lorem Ipsum\nis simply dummy text of the printing and typesetting industry.", 20));

Kết quả

/* 
string(36) "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"  
string(14) "Lorem Ipsum is" 
string(14) "Lorem Ipsum
is" 
*/

Kết quả bằng cách sử dụng wordwrap($string, $width)hoặcstrtok(wordwrap($string, $width), "\n")

/*
string(14) "Lorem Ipsum is"
string(11) "Lorem Ipsum"
*/

1 hữu ích 0 bình luận chia sẻ

answer

1

Hướng dẫn dùng substring perl trong PHP

Bạn có thể sử dụng cái này:

function word_shortener($text, $words=10, $sp='...'){

  $all = explode(' ', $text);
  $str = '';
  $count = 1;

  foreach($all as $key){
    $str .= $key . ($count >= $words ? '' : ' ');
    $count++;
    if($count > $words){
      break;
    }
  }

  return $str . (count($all) <= $words ? '' : $sp);

}

Ví dụ:

word_shortener("Hello world, this is a text", 3); // Hello world, this...
word_shortener("Hello world, this is a text", 3, ''); // Hello world, this
word_shortener("Hello world, this is a text", 3, '[read more]'); // Hello world, this[read more]

1 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng substring perl trong PHP

Tôi biết điều này đã cũ, nhưng ...

function _truncate($str, $limit) {
    if(strlen($str) < $limit)
        return $str;
    $uid = uniqid();
    return array_shift(explode($uid, wordwrap($str, $limit, $uid)));
}

0 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng substring perl trong PHP

Tôi tạo một hàm tương tự như substr và sử dụng ý tưởng của @Dave.

function substr_full_word($str, $start, $end){
    $pos_ini = ($start == 0) ? $start : stripos(substr($str, $start, $end), ' ') + $start;
    if(strlen($str) > $end){ $pos_end = strrpos(substr($str, 0, ($end + 1)), ' '); } // IF STRING SIZE IS LESSER THAN END
    if(empty($pos_end)){ $pos_end = $end; } // FALLBACK
    return substr($str, $pos_ini, $pos_end);
}

Ps: Chiều dài đầy đủ cắt có thể nhỏ hơn substr.

0 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng substring perl trong PHP

Đã thêm các câu lệnh IF / ELSEIF vào mã từ Dave và AmalMurali để xử lý các chuỗi không có dấu cách

if ((strpos($string, ' ') !== false) && (strlen($string) > 200)) { 
    $WidgetText = substr($string, 0, strrpos(substr($string, 0, 200), ' ')); 
} 
elseif (strlen($string) > 200) {
    $WidgetText = substr($string, 0, 200);
}

0 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng substring perl trong PHP

Tôi thấy điều này hoạt động:

hàm viết tắt_string_to_whole_word ($ string, $ max_length, $ buffer) {

if (strlen($string)>$max_length) {
    $string_cropped=substr($string,0,$max_length-$buffer);
    $last_space=strrpos($string_cropped, " ");
    if ($last_space>0) {
        $string_cropped=substr($string_cropped,0,$last_space);
    }
    $abbreviated_string=$string_cropped." ...";
}
else {
    $abbreviated_string=$string;
}

return $abbreviated_string;

}

Bộ đệm cho phép bạn điều chỉnh độ dài của chuỗi trả về.

0 hữu ích 0 bình luận chia sẻ

answer

0

Hướng dẫn dùng substring perl trong PHP

// a looonnng string ...
$str = "Le Lorem Ipsum est simplement du 
faux texte employé dans la composition et 
la mise en page avant impression. 
Le Lorem Ipsum est le faux texte standard de 
l'imprimerie depuis les années 1500, quand un 
imprimeur anonyme assembla ensemble des morceaux 
de texte pour réaliser un livre spécimen de polices
de texte. Il n'a pas fait que survivre cinq siècles,
mais s'est aussi adapté à la bureautique informatique,
sans que son contenu n'en soit modifié. Il a été 
popularisé dans les années 1960 grâce à la vente 
de feuilles Letraset contenant des passages du
Lorem Ipsum, et, plus récemment, par son inclusion 
dans des applications de mise en page de texte, 
comme Aldus PageMaker";
// number chars to cut
$number_to_cut = 300;
// string truncated in one line !
$truncated_string = 
substr($str, 0, strrpos(substr($str, 0, $number_to_cut), ' '));
// test return
echo $truncated_string;

// variation (add ellipsis) : echo $truncated_string.' ...';

// output :
/* Le Lorem Ipsum est simplement du 
faux texte employé dans la composition et 
la mise en page avant impression. 
Le Lorem Ipsum est le faux texte standard de 
l'imprimerie depuis les années 1500, quand un 
imprimeur anonyme assembla ensemble des morceaux 
de texte pour réaliser un livre
*/

0 hữu ích 0 bình luận chia sẻ

answer

-1

Hướng dẫn dùng substring perl trong PHP

Tôi đã sử dụng cái này trước đây

content;
    if (strlen($string) > $your_desired_width) {
        $string = wordwrap($string, $your_desired_width);
        $string = substr($string, 0, strpos($string, "\n")) . " More...";
    }
    echo $string;
?>

-1 hữu ích 0 bình luận chia sẻ

answer

-1

Hướng dẫn dùng substring perl trong PHP

Ở đây bạn có thể thử cái này

substr( $str, 0, strpos($str, ' ', 200) ); 

-1 hữu ích 1 bình luận chia sẻ

answer

-1

Hướng dẫn dùng substring perl trong PHP

Tôi tin rằng đây là cách dễ nhất để làm điều đó:

$lines = explode('♦♣♠',wordwrap($string, $length, '♦♣♠'));
$newstring = $lines[0] . ' • • •';

Tôi đang sử dụng các ký tự đặc biệt để tách văn bản và cắt nó.

-1 hữu ích 0 bình luận chia sẻ

answer

-1

Hướng dẫn dùng substring perl trong PHP

Dùng cái này:

đoạn mã sau sẽ xóa ','. Nếu bạn có bất kỳ ký tự hoặc chuỗi con nào khác, bạn có thể sử dụng ký tự đó thay cho ','

substr($string, 0, strrpos(substr($string, 0, $comparingLength), ','))

// nếu bạn có một tài khoản chuỗi khác cho

substr($string, 0, strrpos(substr($string, 0, $comparingLength-strlen($currentString)), ','))

-1 hữu ích 0 bình luận chia sẻ

answer

-2

Hướng dẫn dùng substring perl trong PHP

Có thể điều này sẽ giúp ai đó:

" . $matches[0];
    } else {
        echo "
" . $string; } ?>

-2 hữu ích 0 bình luận chia sẻ