Как добавить лишние пробелы в PHP?

matches пытается сопоставить выражение со всей строкой и неявно добавить ^ в начале и $ в конце вашего шаблона, то есть не будет искать подстроку. Следовательно, выход этого кода:

public static void main(String[] args) throws ParseException {
    Pattern p = Pattern.compile("\\d\\d\\d");
    Matcher m = p.matcher("a123b");
    System.out.println(m.find());
    System.out.println(m.matches());

    p = Pattern.compile("^\\d\\d\\d$");
    m = p.matcher("123");
    System.out.println(m.find());
    System.out.println(m.matches());
}

/* output:
true
false
true
true
*/

123 является подстрокой a123b, поэтому метод find() выводит true. matches() только «видит» a123b, который не совпадает с 123 и, следовательно, выводит false.

29
задан Chris Dwyer 19 February 2010 в 22:47
поделиться

8 ответов

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

echo "<p>Hello &nbsp;&nbsp;&nbsp; punt"; // This will render as Hello   Punt (with 4 white spaces)
echo "<p> Hello       punt"; // This will render as Hello punt (with one space)

Для отображения данных в необработанном формате (с точным количеством пробелов и "энтер") используйте тег HTML

. 

echo "<pre>Hello        punt</pre>"; //Will render exactly as written here (8 white spaces)

Или вы можете использовать какой-нибудь CSS для стилизации текущего блока, чтобы не разрывать текст и не отделять пробелы (не знаю, как это сделать)

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

19
ответ дан 27 November 2019 в 22:57
поделиться

PHP (обычно) генерирует вывод HTML для веб-сайта.

При отображении HTML браузер (обычно) сворачивает все пробелы в тексте в одно пространство. Иногда между тегами он даже сводит пробелы к нулю.

Чтобы заставить браузер отображать пробелы, вам необходимо включить специальные теги, такие как или
, в ваш HTML-код, чтобы добавить неразрывные пробелы или новые строки, соответственно.

19
ответ дан 27 November 2019 в 22:57
поделиться

это для отображения? если это так, вам действительно следует подумать о том, чтобы отделить отображение от логики и использовать таблицы стилей для форматирования. будучи серверным php, действительно должен позволять предоставлять и принимать данные. хотя вы, безусловно, могли бы использовать php для выполнения того, о чем просите, я твердо верю в то, что отображение и логика должны быть максимально разделены. со стилями вы можете выполнять весь набор текста.

предоставляют оболочки и стиль выходного класса соответственно.

2
ответ дан 27 November 2019 в 22:57
поделиться

pre - ваш друг.

<pre> 
<?php // code goes here

?>
</pre>

Или вы можете «Просмотреть исходный код» в своем браузере. (Ctrl + U для большинства браузеров.)

4
ответ дан 27 November 2019 в 22:57
поделиться

источник

<?php
echo "<p>hello\n";
echo "world</p>";

echo "\n\n";

echo "<p>\n\tindented\n</p>\n";

echo "
<div>
  easy formatting<br />
  across multiple lines!
</div>
";
?>

вывод

<p>hello
world</p> 

<p> 
    indented
</p>

<div> 
  easy formatting<br /> 
  across multiple lines!
</div>
3
ответ дан 27 November 2019 в 22:57
поделиться

вы можете использовать тег

 , чтобы предотвратить объединение нескольких пробелов и переносов строк в один. Или вы можете использовать   для обычного пробела (неразрывный пробел) и  
(или
) для разрывов строк.

Но не делайте



просто используйте тег

и настройте поля с помощью CSS.

<p style="margin-top: 20px;">Some copy...</p>

Тем не менее, вы должны определять стили глобально, а не встроенными, как я сделал в этом примере.

Когда вы выводите строки из PHP, вы можете использовать «\ n» для новой строки и «\ t» для табуляции.

<?php echo "This is one line\nThis is another line"; ?>

Хотя такие флаги, как \ n или \ t, работают только в двойных кавычках ("), а не в одинарных кавычках (').

1
ответ дан 27 November 2019 в 22:57
поделиться

Вот так:

 str_repeat('&nbsp;', 5); // adds 5 spaces
58
ответ дан 27 November 2019 в 22:57
поделиться

, чтобы ваш код выглядел лучше при просмотре исходного кода

$variable = 'foo';
echo "this is my php variable $variable \n";
echo "this is another php echo here $variable\n";

ваш код, когда исходный код будет выглядеть, с красивой строкой, возвращаемой благодаря \ n

this is my php variable foo
this is another php echo here foo
1
ответ дан 27 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: