PDA

Просмотр полной версии : [php]Сокращение текста либо перенос строк


qW1zer
10.09.2009, 18:57
Здравствуйте,подскажите пожалуйста как можно перенести текст(на строку) при выводе на картинку,то есть,есть картинка я на нее вывожу полученный парсером заголовок с сайта,но если заголовок длинный он уходит за грани картинки!
Как можно сделать перенос на след. строку или сделать сокращение например если в заголовке больше 200 знаков он делал что-то подобное:
Здесь название заголовка и сокращение. . . .
Заранее спасибо

L I G A
10.09.2009, 19:06
<?php

$str='111111111112222222223333333333333344hhhhhhhh hhhhhhhhhhh4444444444444444';
$max=32;//макс длина строки

for ($i=0;$i<strlen($str);$i++) {
if (($i+1)%$max==0) {
echo $str[$i]. "<br>";
}else{
echo $str[$i];
}

}

?>

qW1zer
10.09.2009, 19:09
Спасибо большое

qW1zer
10.09.2009, 19:33
Странно почему-то не работает!Пишет "parse error" в 13 строке,а 13 строка это "?>"

d_x
10.09.2009, 19:36
http://ru.php.net/manual/en/function.wordwrap.php

Pashkela
10.09.2009, 19:36
Еще одну } снизу добавь, очередной недостаток написания кода "ахалай махалай пох"

У него for незакрыт

qW1zer
10.09.2009, 19:39
Спасибо,теперь работает!

qW1zer
10.09.2009, 20:12
С одним разобрался теперь другая проблема,помогите последний раз на сегодня!Чтобы не создавать тему пишу здесь
Вот код:

<?php $parsl = file_get_contents("http://l1nux.ru/");//Собираем массив со страницы preg_match_all('|<div class="myLink">(.+)</div>|',$parsl,$link);//Загребаем из массива то что между дивом $glink=$link[1][rand(0,0)];//Забираем последнюю ссылку из массива //Next parsing $parsc = file_get_contents("$glink");//Парсим полученную ссылку в массив preg_match_all('|<div class="pmsg">(.+)</div>|',$parsc,$cmt);//Загребаем все между дивом $comment=$cmt[1][rand(0,0)];//Забираем из массива последний комент echo $comment;//Выводим комент ?>

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in C:\xampp\www\news\test.php on line 6 - Текст ошибки,в чем проблем не пойму!Возможно из-за того что используется повторение,но по идее не должно!Помогите новичку

L I G A
10.09.2009, 20:21
что во время ошибки стояло
file_get_contents(тут)?

qW1zer
10.09.2009, 20:23
в первом - http://l1nux.ru
во втором - $glink

qW1zer
10.09.2009, 20:24
то есть как все происходит
В первом он парсит страницу и забирает последнюю ссылку расположенную между тегом <div с классом myLink>
а втором парсит полученную ссылку и оттуда забирает текст между тегом <div с классом pmsg>

qW1zer
10.09.2009, 21:18
Очень нужно!Помогите пожалуйста

Deathdreams
10.09.2009, 21:20
Исходник в студию

qW1zer
10.09.2009, 21:29
На 1 странице предпоследний пост

FireFenix
10.09.2009, 22:19
На 1 странице предпоследний пост
Чес слово... мало того что ты не удосужился отформатить код, так ещё и наговногодил шо ппц
Я бы тебя покарал!!!

file_get_contents("$glink");
$comment = $cmt[1][rand(0,0)];

Вот нафига брать переменную в кавычки?
и какой смысл rand(0,0)? это вообще меня убило

Если просто нужно собрать все каменты с сайта, то вот нормально оформленный код

<?php

function get_site($site)
{
//Получаем контент страницы и меняем кодировку UTF-8 -> cp1251
return iconv('UTF-8', 'WINDOWS-1251', file_get_contents($site));
}

//Получаем контент страницы
$content = get_site('http://l1nux.ru/');

//Парсим контент страницы на дивы
preg_match_all('/<div class="myLink"[^>]*>(.*?)<\/div>/ims', $content, $links);

//Обрабатываем все ссылки в цикле
foreach($links[1] as $link)
{
//Получаем контент страницы по ссылке
$content = get_site($link);

//Парсим контент страницы на дивы
preg_match_all('/<div class="pmsg">(.*?)<\/div>/ims', $content, $comment);

//Выводим ссылку
echo('Ссылка : <a href="' . $link . '">' . $link . '</a><br><br>');

//Выводим комментарии в цикле с новой строки
foreach($comment[1] as $value)
{
echo($value . '<br>');
}

//Выводим разделение между ссылками
echo('<hr>');
}

?>

qW1zer
10.09.2009, 22:24
Спасибо!Просто я начинающий,изначально выводил просто заголовок новости на картинку,то есть информер для подписи!А потом решил сделать вывод последнего комента!
Спасибо большое за разъяснение и помощь нубу))