Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]explode() i myślnik
--Andrzej--
post 27.04.2012, 22:52:41
Post #1





Goście







Witam, mam problem z funkcją explode, który polega na tym, że nie mogę poradzić sobie z podziałem stringa w zależności od wystąpienia myślnika.

  1. $title_full = get_the_title();
  2. $title_part = explode(' ', $title_full);

Działa dobrze i $title_part[0] dla Jakiś - tytuł do wyświetlenia wyświetla Jakiś

Problem w tym, że nie zawsze przed myślnikiem między słowami nie wystąpi spacja dlatego chciałem to rozwiązać tak:

  1. $title_full = get_the_title();
  2. $title_part = explode(' - ', $title_full);


Jednak w takim wypadku wyświetlone zostaje Jakiś - tytuł do wyświetlenia
Jak podzielić string w zależności od wystąpienia myślników?
Go to the top of the page
+Quote Post
maniana
post 27.04.2012, 23:00:01
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

Ostrzeżenie: (0%)
-----


strpos ? + ew. obliczenia?
Go to the top of the page
+Quote Post
kontur
post 27.04.2012, 23:11:05
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 3.04.2012

Ostrzeżenie: (0%)
-----


albo bez obliczen podwojnie

$napis=str_replace ('-',' - ',$napis);
$napis=str_replace('dwie spacje', 'jedna spacja',$napis)

wtedy zawsze '-' bedzie ubrane tak samo w spacje.

Ten post edytował kontur 27.04.2012, 23:19:15
Go to the top of the page
+Quote Post
lukesh
post 27.04.2012, 23:53:04
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

Ostrzeżenie: (0%)
-----


Po pierwsze, to w Twoim skrypcie nigdzie nie ma myślnika, tylko dywiz.

— <- pauza / myślnik
– <- półpauza / myślnik
- <- dywiz

Myślę, że najlepszym rozwiązaniem będzie dzielenie ciągów tekstu za pomocą samego dywizu bez spacji, a następnie użycie funkcji trim do usunięcia spacji na końcu i na początku tekstu.

  1. $title_part = explode('-', $title_full);
  2. $title_part[0] = trim($title_part[0]);


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
--Andrzej--
post 28.04.2012, 00:03:20
Post #5





Goście







Dzięki wszystkim za pomoc, jednak nadal coś nie działa.
Próbowałem wklejać do explode:

  1. $title_part = explode('-', $title_full);
  2. $title_part[0] = trim($title_part[0]);


po kolei wszystkie 3 znaki i na żadnym nie zadziałało.
Go to the top of the page
+Quote Post
lukesh
post 28.04.2012, 09:36:23
Post #6





Grupa: Zarejestrowani
Postów: 113
Pomógł: 14
Dołączył: 25.08.2006

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $title_full = 'Jakiś - tytuł do wyświetlenia';
  3. $title_part = explode('-', $title_full);
  4. $title_part[0] = trim($title_part[0]);
  5. $title_part[1] = trim($title_part[1]);
  6. echo $title_part[0]; // wyświetla "Jakiś"
  7. echo '<br />';
  8. echo $title_part[1]; // wyświetla "tytuł do wyświetlenia"
  9. ?>


U mnie powyższy kod działa bez problemu.

Widzę, że korzystasz z funkcji get_the_title(). Prawdopodobnie to tam może być błąd. Co dokładnie ta funkcja robi? Jesteś pewien, że skrypt pobiera dywiz, a nie np. & #45;? Ewentualnie & #150; albo & ndash; w przypadku półpauzy lub & #151; albo & mdash; w przypadku pauzy.

Po & nie ma spacji, ale inaczej nie mogę zapisać, ponieważ skrypt forum zamienia te kody na odpowiednie znaki.

Ten post edytował lukesh 28.04.2012, 09:39:21


--------------------
Edumemo.pl - Nauka Języków Obcych
Go to the top of the page
+Quote Post
--Andrzej--
post 28.04.2012, 12:44:40
Post #7





Goście







Jest to Wordpressowa funkcja: http://codex.wordpress.org/Function_Reference/get_the_title i rzeczywiście po jej stronie leżał problem.
Funkcja wyświetlała znak w postaci . Dziękuje za pomoc i pozdrawiam.
Go to the top of the page
+Quote Post
--Andrzej--
post 28.04.2012, 12:47:57
Post #8





Goście







Widzę, że znak został przetworzony więc wrzucam go w tagach
  1. &#8211;
, może komuś się kiedyś przyda.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 01:48