Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenia regularne, link gg://numer
Forum PHP.pl > Forum > PHP
mayhen
piszę coś ala bbcode na potrzeby mojej strony, i w potrzebuję rady:

jak poprawnie napisac komendy w preg_replace zamienić tekst w postaci
gg12345678 na gg://12345678 a wyswietlic np. sam napis gg, albo ikonke jako link umożliwiając tym samym bezpośrednią rozmowę przy zainstalowanym gg ?

do czego doszedłem:
[php:1:75743c510b]<?php
$content = preg_replace("#([trn ])(gg)([0-9])*$#i", '1 <a href="gg://"> ikonka</a>', $content);

?>[/php:1:75743c510b]
Aiker
Ja bym proponowal ten bbcode gg zrobic w postaci np [gg:12345].
Tutaj podaje odpowiednie wyrazenie:
[php:1:fca5ce836b]<?php
$content = preg_replace("#[gg:(.+)]#U", '<a href="gg:1">1</a> ', $content);
?>[/php:1:fca5ce836b]

Oto chodzilo ? biggrin.gif
Bora
[php:1:5dc3f29189]<?php
$content = preg_replace("#[gg:([0-9]{1,9})]#U", '<a href="gg:1">1</a> ', $content);
?>[/php:1:5dc3f29189]

tylko cyfry
psmoczynski
a ja zrobiłbym to inaczej:

[php:1:36e937139c]<?php

$moj_numer = "gg12456";
$moj_nowy_numer = "gg://".substr($moj_numer,3,strlen($moj_numer));


?>[/php:1:36e937139c]
scanner
Cytat
[php:1:ba9244e1bf]<?php
$moj_numer = gg12456;
?>[/php:1:ba9244e1bf]
Ale tu jest błąd.
Jeśli gg12456 ma być stringiem, to powinno być zapisane jako 'gg12456'
W chwili obecnej jest to stała, której użycie wygeneruje Warning (undefined constant) i potraktowanie jej nazy jako stringa (+ odpowiednie Notice). Efekt może i ok, ale wykorzystałeś tutaj błąd php, który gdy zostanie kiedys poprawiony, spowoduje, że Twój kod klęknie.

Pozatym jak wyłuskasz twoje GG ze stringa:[php:1:ba9244e1bf]<?php
$strString = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur quis orci in elit tincidunt blandit. Suspendisse vulputate nunc ac mi. Quisque in orci imperdiet velit bibendum gg12456 imperdiet."
?>[/php:1:ba9244e1bf]A takie strongi autor chce opracowywać (rozszerzenie BBCode)
cboot
@psmoczynski
Ale Twój kod nie rozwiązuje wcale problemu. Przeczytaj o co chodziło mayhenowi. Jak Twój kod ma znaleźć w zmiennej $content ciągi: gg12345678 i zamienić je na gg://12345678 ?
Tak więc pozostańmy przy preg_replace.
psmoczynski
tak!! rzeczywiście zabrakło ciapków !!

mayhen:
jak poprawnie napisac komendy w preg_replace zamienić tekst w postaci
gg12345678 na gg://12345678 a wyswietlic np. sam napis gg


Mój kod zamieni gg12345678 na gg://12345678, a co dalej z tym zrobisz (co wyświetlisz) to już chyba nie jest problem. Ale może coś źle rozumiem.
cboot
Zwróć uwagę na pierwsze zdanie.
Cytat
piszę coś ala bbcode na potrzeby mojej strony, i w potrzebuję rady:

Tak więc $content to przypuśćmy treść posta na jakimś forum wpisana przez użytkownika. Mayhen chce w niej zastępować wpisy gg12345678 na linki po prostu. Twój kod zamienia treść zmiennej w której jest tylko numer gg na inną, a jak ma to wyszukiwać te numery w zmiennej $content ? Nie zastąpisz działania preg_replace tym kodem, co napisałeś :wink:
psmoczynski
Masz rację winksmiley.jpg
tsharek
Cytat
a ja zrobiłbym to inaczej:

[php:1:cb628a4721]<?php

$moj_numer = "gg12456";
$moj_nowy_numer = "gg://".substr($moj_numer,3,strlen($moj_numer));


?>[/php:1:cb628a4721]


btw: po co to strlen?

[php:1:cb628a4721]<?php

$moj_numer = "gg12456";
$moj_nowy_numer = "gg://".substr($moj_numer,3);


?>[/php:1:cb628a4721]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.