Здравствуйте. Если задать переменную таким образом: PHP: $string = " Строка 1 Строка 2 Строка 3 ... "; , а затем вывести её в теге <pre>, то строки отобразятся правильно, но если без pre, то, естественно, всё выведется в одну строку. Внимание, вопрос: Как записать в одну переменную содержимое первой строки, ("Строка 1"), а в другую переменную - всё остальное ("Строка 2Строка 3...")? Нужно это для того чтоб разбить строку, получаемую из vk_api (В фотоальбоме VK нет отдельно поля для названия и для описания, а мне нужно и то и другое, вот я и пытаюсь получить это таким вот извращённым способом). Может быть, существует более разумный способ сделать это?
Ну, если я правильно понимаю, то, если бы было \n\r, то переносилось бы с двойными кавычками, а у меня не переносится. --- Добавлено --- Можно что-то с этим намутить https://php.ru/manual/function.nl2br.html , но здравый смысл мне подсказывает что можно проще)
\n\r с кавычками нииикак не связан текстовку давай нормальную - пошаманю .. а то я шас реально твою переменную разложу =)
А какая разная какая текстовка? Ну у меня будет что-то типа этого: Код (Text): Название краткое описание... Не очень хочу использовать какие-либо символы для переноса, дабы в ВК тоже читабельность была нормальная, и не заморачиваться каждый раз над этим при добавлении фотки.
Перенос строки без спецсимвола невозможен. Если у тебя многострочный текст, разбивай по \n и делай trim() на случай, если останется \r.
тот текст что ты предоставил на https://regex101.com/ разложился вот так (.*)\n последняя строка не ловится - но это и так ясно
Пробую так: Код (Text): $string = "Название описание... "; $a = trim ($string); $a = explode('\n', $a); echo $a[0]; но всё равно выводится вся строка --- Добавлено --- Он просто не разбивает по \n. print_r ($a) возвращает Array ( [0] => Название описание... ). --- Добавлено --- Что-то я не понял, даже когда в строку сам ввожу "\n", explode всё равно не разбивает...
Так и у меня работает. А почему explode не видит \n в каестве первого параметра? С другим разделителем работает. А твой код у меня, почему-то возвращает 2 массива: Код (Text): Array ( [0] => Array ( [0] => Название [1] => описание ) [1] => Array ( [0] => Название [1] => описание ) ) --- Добавлено --- И почему, когда я пытаюсь вывести вторую строку (<?=$a[0][1]?>) мне пишет что нет индекса "1", когда явно видно в var_dump что он есть? --- Добавлено --- Теперь вообще запутался. Пытаюсь сделать то же,только с возвращаемой строкой из vk_api: PHP: <?php for ($i = 0; $i < $services["response"]["count"]; $i++) { $item = $services["response"]["items"][$i]; preg_match_all("/(.*)\n/", $item["text"], $a); var_dump ($a); ?> <li class="col-lg-3 col-md-3 col-sm-3 col-xs-6"> <div class="body"> <h3><?=$a[0][0]?></h3> <p><?=$a[0][1]?></p> <img src="<?=$item["photo_130"]?>" alt=""> </div> </li> <?php } ?> А получается это: array(2) { [0]=> array(1) { [0]=> string(17) "Название " } [1]=> array(1) { [0]=> string(16) "Название" } }
Хм. Видимо что-то не так делал. Хорошо. Тогда почему со строкой из vk_api может быть такая проблема? --- Добавлено --- http://phpfiddle.org/main/code/3vk0-vdyp
он все правильно делает Код (Text): array(2) { [0]=> array(1) { [0]=> string(17) "Название " } [1]=> array(1) { [0]=> string(16) "Название" } } просто во 2 строке нет переноса поэтому она не засасывается говорил же сразу давай строку нормальную ) http://phpfiddle.org/main/code/qbv9-65x7 --- Добавлено --- ужас какойто но работает =))))
Уххх, страшно то как) Работает) Долго морочился то? --- Добавлено --- $byaka =$item["text"]; - принял))) Смешно) --- Добавлено --- Я прям доволен. Спасибо большое))
забыл -про нее =))) ну минут 10-15 убил -))) я там даже ордом по символьно разложил - поэтому была бяка =) какойто ужас увидел .. нифига не понял - увидел только что там перенос строки корректный ( 10 символ) и убил ее