Здравствуйте! Можете помочь мне устранить лишние отступы в приведённом коде? Я заметила, что функция trim() удаляет только пробелы в начале и в конце строки, но не затрагивает отступы внутри кода. В результате получается такая проблема [скриншот].
Здравствуйте! Чтобы избавиться от лишних отступов внутри кода, необходимо использовать другие подходы, так как функция `trim()` действительно удаляет только пробелы в начале и в конце строки. Если вам нужно удалить лишние пробелы и отступы внутри строк или унифицировать отступы, можете воспользоваться следующими методами: 1. **Заменить несколько пробелов на один**: Вы можете использовать регулярные выражения для замены нескольких пробелов или табуляций на один: ```python import re code = """# Ваш код с лишними отступами""" cleaned_code = re.sub(r'\s+', ' ', code) print(cleaned_code) ``` Это заменит все последовательности пробелов (включая табуляции) на один пробел. 2. **Удаление пробелов перед/после строк**: Если вам нужно убрать пробелы только в начале и в конце каждой строки, вы можете использовать `strip()` вместе с `map()`: ```python lines = code.splitlines() cleaned_lines = [line.strip() for line in lines] cleaned_code = '\n'.join(cleaned_lines) print(cleaned_code) ``` 3. **Унификация отступов**: Если у вас есть отступы в виде пробелов и табуляций, вы можете заменить все табуляции на пробелы: ```python cleaned_code = code.replace('\t', ' ') ``` 4. **Использование редакторов кода**: Многие редакторы кода (например, Visual Studio Code, PyCharm) предоставляют функции для автоформатирования кода, что может значительно упростить процесс. Если у вас есть конкретные примеры кода, с которыми вы работаете, поделитесь ими, и я смогу дать более узкоспециализированные советы!
Не вставлять их?
$data[] = ' <url> <loc>'.$site.'/look/'.$sitemap['tag'].'</loc> <lastmod>'.date('Y-m-d').'T'.date('h:i:s+01:00').'</lastmod> <priority>0.8</priority> </url> ';
Если не нравится, что код стал выглядеть не шибко красиво:
$data[] = "\n<url>\n<loc>" .$site."/look/".$sitemap['tag']."</loc>\n" ."<lastmod>".date('Y-m-d').'T'.date('h:i:s+01:00')."</lastmod>\n" ."<priority>0.8</priority>\n" ."</url>\n";
$BaseSiteMap = preg_replace('/\s{2,}/m', '', $BaseSiteMap);
В песочнице
два варианта:
1)_ просто всё прижать влево:
<?php $chunk = ' <url> <loc>'.$site.'/look/'.$sitemap['tag'].'</loc> <lastmod>'.date('Y-m-d').'T'.date('h:i:s+01:00').'</lastmod> <priority>0.8</priority> </url> '; $data[] = preg_replace('/^\s+</m', '<', trim($chunk));
2) вытянуть всё в строку:
<?php $data[] = preg_replace('/>\s+</ms', '><', trim($chunk));
Эти регулярки только для данного случая! ( потому что никаких значимых пробелов в сайтмапе быть не должно)
Несколько замечаний:
1) показывать код скриншотом неэтично (я про готовый сайтмап). Здесь его можно было запихнуть в тег code (кнопка в панельке) с типом XML
2) если не используете числовые индексы, то вместо mysql_fetch_array() берите mysql_fetch_assoc()
3) mysql_* функции - древность, используйте хотя бы mysqli ( как объект, конечно же)