Ошибка цикла PHP - зацикливается только часть цикла? - PullRequest
1 голос
/ 26 октября 2011

Я и несколько друзей, проходящих один и тот же курс программирования, до сих пор смущены этим, надеюсь, кто-то здесь может помочь. Цель состоит в том, чтобы взять список URL-адресов, разделенных новыми строками, добавив [img] и добавив [/ img] для каждого URL-адреса в соответствии с доской объявлений. Фактический код включает переключатель, позволяющий использовать bb-коды [img] и [thumb], но оба имеют одинаковый эффект. Вместо вывода

[ img]1[/ img]
[ img]2[/ img]

выводит

[ img]1
2[ /img]

То же самое происходит для любого количества URL. Вот код, который я использую.

   <?php

    $url_f = (isset($_POST['text'])) ? $_POST['text'] : false;
    $thumb = (isset($_POST['type'])) ? $_POST['type'] : false;
    $urls = ($url_f) ? explode('\n',$url_f) : '';

    ?>

    <textarea rows='20' cols='40' readonly='1'>


    <?php
    switch ($thumb){
        case 'img':
            for ($i = count($urls)-1; $i >= 0; $i--)
            {
                echo "[img]". $urls[$i] ."[/img]\n";
            }
            break;

        default:
            break;

        case 'thumb':
            for ($i = count($urls)-1; $i >= 0; $i--)
            {
                echo '[thumb]'. $urls[$i] ."[/thumb]\n";
            }
            break;

    }

    ?>

    </textarea>

Ответы [ 2 ]

1 голос
/ 26 октября 2011

Ваша проблема '\n' !== "\n".Первый обрабатывается как «обратный слеш n», а последний обрабатывается символом перевода строки (ASCII 0xA, bein LF).См. Строки в двойных кавычках для получения дополнительной информации.

Что касается вашего цикла, вы можете захотеть взглянуть на foreach .

1 голос
/ 26 октября 2011

Существует три различных типа новых строк: \ r, \ n и \ r \ n.Я не занимаюсь веб-разработкой, но разные ОС, вероятно, будут отправлять разные символы новой строки, поэтому вам придется проверить, с какими символами разделиться.

В вашем кодетак как \ n не работает, символ новой строки, вероятно, \ r \ n или \ r.

Редактировать: Строковый литерал в одинарных кавычках может быть проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...