Как да отрежа дължината на текста

cHuBakA

Registered
здравейте
С този код взимам рандом съдържание от текстов файл
обаче тъй като текста е твърде дълъг как мога да го направя да го реже примерно до 50 букви и да бъде UTF8 ?

Код:
<?php

$links = file("list.txt");
$numLinks = count($links);
$tmp = array();
for ($i = 0; $i < min(2, $numLinks); $i++)
{
    $randomIndex = rand(0, $numLinks - 1);
    $randomLink = $links[$randomIndex];

    // Avoid duplicates:
    if (in_array($randomLink, $tmp))
    {
        $i--;
        continue;
    }
    $tmp[] = $randomLink;

    echo $randomLink;
}


?>
 
@emagi Благодаря ти. Аз ги прегледах още преди да пиша повечето примери тук и този, които ми даваш, но не ми се получава. За това и отворих темата. Дали това става в моя случай? Би ли ми помогнал малко
 
Код:
<?php

$links = file("list.txt");
$numLinks = count($links);
$tmp = array();
for ($i = 0; $i < min(2, $numLinks); $i++)
{
    $randomIndex = rand(0, $numLinks - 1);
    $randomLink = $links[$randomIndex];

    // Avoid duplicates:
    if (in_array($randomLink, $tmp))
    {
        $i--;
        continue;
    }
    $tmp[] = $randomLink;

    echo mb_substr($randomLink,0, 50,'UTF-8')."...";
}


?>

?
 
PHP:
<?php

$links = file("list.txt");
$numLinks = count($links);
$tmp = array();
for ($i = 0; $i < min(2, $numLinks); $i++)
{
    $randomIndex = rand(0, $numLinks - 1);
    $randomLink = $links[$randomIndex];

    // Avoid duplicates:
    if (in_array($randomLink, $tmp))
    {
        $i--;
        continue;
    }
    $tmp[] = $randomLink;

   
}

  echo substr($randomLink,0,50);
?>

Грешката ти беше, че слагаш echo в for loop-a. Както и на примера над моя.
 
Ами не - пак дава бяла страница.

Пробвай го и при теб кода.

ps. аз също го пробвам по всякакъв начин
 
cHuBakA каза:
Ами не - пак дава бяла страница.

Пробвай го и при теб кода.

ps. аз също го пробвам по всякакъв начин

Аз кога го пробвах така

PHP:
<?php

$randomLink = "This is just a random link, the random link is just an example, about something I have in my mind. That something is just an example, of the example I have in my mind.";

echo substr($randomLink,0,50);

?>

по възможно, най-простият yet most effective way и си работи. Което ще рече, че при изкарването на информация от текст файла ти идва проблема, а не от съкращаването на текста.
 
В текстовия файл (list.txt) има 3 реда. На първия пише "едно" , на втория пише "две" и на третия "три".

Кода си работи перфектно и ги извлича рандом.

След като добавя echo substr($randomLink,0,50); - спира да работи и вади бяла страница.

Работя в онлайн среда. версията на PHP e 5.2
 
Копнах кода който съм ти дал отгоре, направих text файл с 3 реда произволни и тествах кода.

Резултат:
http://prikachi.com/images/882/5307882H.jpg


Ползвам php 5.3
 
Ооооо да извинивай. Благодаря ти много. Да така се получава.

На мен грешката ми я е давало защото във текстовия файл съдържанието ми е с линкове. (ползвам това за рандом линкове)

Сега видях, ако файла е само текст си работи идеално и ги реже думите, но ако са линкове спира да работи и дава бяла страница.

Имаш ли идея защо става така?
 

Горе