Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Usuwanie adresu url z opisu
motor
post 20.07.2006, 06:15:25
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Ponieważ użytkownicy mają zakaz wstawiania do opisów adresów url słabo sie stosują smile.gif chciałbym je jakoś kasować czy można zrobić taką funkcję ?
w bazie mam pole $opis
tak żeby powiedzmy kasowała wszystko co zaczyna się od "http://" aż do momentu kiedy będzie spacja czyli adres się skończy

95% zaczyna się od “http://” dlatego wybrałem
Go to the top of the page
+Quote Post
HanGmaN
post 20.07.2006, 06:36:56
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.07.2006

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


oczywiscie ze sie da sprawdzic i usunac adres:) w bardzo latwy sposob:) a o to moj sposob na to:

  1. <?php
  2. $string1 = strpos($a, "http://"); //1
  3. $string2 = strpos($a, "www");  //2
  4.  
  5. if ($string1 >= 0 || $string2 >= 0) { //3
  6.  echo ("zawiera nie dozwolony adres");
  7.  $a = "deleted by admin";
  8. } else {
  9.  echo ("nie zawiera");
  10. }
  11. ?>


teraz wyjasnienie punkt 1: sprawdza czy zmienna $a zawiera w sobie http:// jesli tak to pokazuje od ktorego znaku zaczyna jest, $string1 przyjmuje wartosc 0 do ilus tam jesli ktos wpisal jesli nie wpisal to przyjmuje cos innego ale co?!?! nvm jesli jest to liczba 0 do 10^10 to znacyz ze ktos uzyl to.

punkt 2: to samo co w 1 tylko szuka www.

punkt 3: if sprawdzajacy czy string1 lub string 2 zawiera niedozwolony ciag znakow.
nastepnie przypisuje zmiennej $a inna wartosc no bo w koncu jesli jest cos nie dozwolone to cza skasowac:)

pozdrawiam

Ten post edytował HanGmaN 20.07.2006, 06:39:11


--------------------
do adminow forum:) cos wam nei dziala dodawanie img do sygnatury
Fatal error: Call to undefined method ipsclass::xss_check_url() in /alt/home/forumphp/html/sources/classes/bbcode/class_bbcode_core.php on line 1136
Go to the top of the page
+Quote Post
motor
post 20.07.2006, 06:41:07
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


dzięki ale mam problem wywala mi błąd w lini

  1. <?php
  2. $string1 = strpos($a, "http://"); //1
  3. ?>


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in

I nie wiem co grane

Ten post edytował motor 20.07.2006, 06:41:31
Go to the top of the page
+Quote Post
HanGmaN
post 20.07.2006, 06:44:25
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.07.2006

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


hmm a dales $a jakas wartosc?
sprawdz to przez geta mianowicie wpisz adres:

http://adres_do_pliku/plik.php?a=wartosc+zmiennej

jak widzisz po znaku zapytania a przyjmuje wartosc "wartosc zmiennej"

sprawdz teraz:)


--------------------
do adminow forum:) cos wam nei dziala dodawanie img do sygnatury
Fatal error: Call to undefined method ipsclass::xss_check_url() in /alt/home/forumphp/html/sources/classes/bbcode/class_bbcode_core.php on line 1136
Go to the top of the page
+Quote Post
motor
post 20.07.2006, 07:10:41
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


tak tak dałem , próbowałem jak pisałeś i też to samo
Go to the top of the page
+Quote Post
HanGmaN
post 20.07.2006, 07:20:46
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 20.07.2006

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


to nie wiem o.O u mnie dziala

sproboj jeszcze tak
  1. <?php
  2. $a = "http://adres.pl";
  3. $string1 = strpos($a, "http://"); //1
  4. $string2 = strpos($a, "www");  //2
  5.  
  6. if ($string1 >= 0 || $string2 >= 0) { //3
  7.  echo ("zawiera nie dozwolony adres<br>");
  8.  $a = "deleted by admin";
  9. } else {
  10.  echo ("nie zawiera<br>");
  11. }
  12. echo ($a);
  13. ?>

?>

Ten post edytował HanGmaN 20.07.2006, 07:21:16


--------------------
do adminow forum:) cos wam nei dziala dodawanie img do sygnatury
Fatal error: Call to undefined method ipsclass::xss_check_url() in /alt/home/forumphp/html/sources/classes/bbcode/class_bbcode_core.php on line 1136
Go to the top of the page
+Quote Post
motor
post 20.07.2006, 08:09:14
Post #7





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Po restarcie komputera u mnie też juz działa smile.gif
ta funkcja wykrywa niedozwolony adres a ja chcę go wyciągnąć i skasować

  1. <?php
  2. $a="opis opis opissssssssssss h ttp://www.adres.pl inny";
  3. ?>

chcę żeby zostało
opis opis opissssssssssss inny

Ten post edytował motor 20.07.2006, 08:31:44
Go to the top of the page
+Quote Post
Aure
post 20.07.2006, 08:38:53
Post #8





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.05.2004
Skąd: Warszawa

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


  1. <?php
  2. $a = preg_replace('/http://[^s]*/', '', $a);
  3. ?>


Dla tekstów w utf-8 być może konieczne będzie wykorzystanie mb_ereg_replace() i drobna zmiana wyrażenia regularnego.


--------------------


Go to the top of the page
+Quote Post
siemakuba
post 20.07.2006, 09:05:53
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


zajrzyj też tutaj - był poruszany dokładnie taki sam problem: Temat: regexpWyciaganie URLi
pozdr.
Go to the top of the page
+Quote Post
motor
post 20.07.2006, 20:27:55
Post #10





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


działa ok


Ale jednak jeszcze mam problem jbo jest sporo tych adresów gdzie jest samo www.
a wtedy mój skrypt nie dział sad.gif jak to zmodyfikować ? bo mi cos nie wychodzi

  1. <?php
  2. $a = preg_replace('/www.[^s]*/', '', $a);
  3. ?>


Albo co jeśli ktoś napisze WWW.

Ten post edytował motor 20.07.2006, 21:14:01
Go to the top of the page
+Quote Post
Michasko
post 20.07.2006, 21:41:29
Post #11





Grupa: Zarejestrowani
Postów: 283
Pomógł: 31
Dołączył: 10.01.2006
Skąd: Działoszyn

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


jeśli ktoś napisze z dużych, to zamień je na małe: strtolower" title="Zobacz w manualu php" target="_manual - chyba pomoże :-)

Ten post edytował Michasko 20.07.2006, 21:42:07


--------------------
Po prawie 3-letniej przerwie w programowaniu, znowu raczkuję :)
Go to the top of the page
+Quote Post
siemakuba
post 20.07.2006, 22:55:48
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Zmodyfikowane zapytanie z posta, którego przytaczałem powyżej. Złapie adresy https://www.whatever.com, http://www.whatever.com i www.whatever.com

Kod
$html=' aaaaaaa http://to.jest.adres.com/test.html?zmienna=1 aaaaaaa http://www.wp.pl i potem jeszcze https://www.secure.com i jeszcze sam www.gazeta.pl bez protokołu podanego';
preg_match_all('/\s((?:https?:\/\/|www\.)\S*)/si', $html, $m);
print_r($m);

wynik:
Kod
Array
(
    [0] => Array
        (
            [0] =>  http://to.jest.adres.com/test.html?zmienna=1
            [1] =>  http://www.wp.pl
            [2] =>  https://www.secure.com
            [3] =>  www.gazeta.pl
        )

    [1] => Array
        (
            [0] => http://to.jest.adres.com/test.html?zmienna=1
            [1] => http://www.wp.pl
            [2] => https://www.secure.com
            [3] => www.gazeta.pl
        )

)

Wielkość liter nie ma tu znaczenia - dba o to flaga i we wzorcu.

P.S. zapisane jako code a nie php bo chochlik forumowy zamienia, usuwa i figle plata w innym przypadku.

pozdr.

Ten post edytował siemakuba 20.07.2006, 22:56:42
Go to the top of the page
+Quote Post
motor
post 21.07.2006, 15:51:02
Post #13





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 15.12.2005

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


Dzięki pozdrawiam
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: 19.06.2025 - 11:00