Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Filtrowanie i zmiana tekstu
Kiran
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


Witam, chciałbym napisać coś w rodzaju filtra, który wychwytywałby pewną informację i po pewnej komendzie ją zmieniał.

Typu chcę, żeby Ania zmieniła się na Karolina

A to tekst:

"Osobą, której nienawidzę jest Ania, chciałbym to zmienić."

I jeszcze pytanie, dlaczego zmienne nie obsługują tekstu w < > ?

Ponieważ mam coś takiego

  1. <HTML>
  2. <HEAD>
  3. <title>Wojna by Kirasia</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <form action="embedwynik.php" method="post"/>
  9. Tu wklejasz tekst:
  10. <br>
  11. <input type="text"
  12. name="embed" size=50 maxsize=50 />
  13. <input type="submit" value="Zmień" />
  14.  
  15. <?php
  16.  
  17. ?>
  18. </BODY>
  19. </HTML>


Gdy wkleję tam tekst np. <lalalal> to już go nie odczytuje.
Więc, bardzo czekam na waszą pomoc, w sprawie tego filtrowania tekstu.
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Przenoszę♀ do Przedszkola.
Go to the top of the page
+Quote Post
Turson
post
Post #3





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


A gdzie twój kod, ktory rzekomo nie działa?
Go to the top of the page
+Quote Post
Kiran
post
Post #4





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9.  
  10. $embed = $_POST['embed'];
  11.  
  12. echo $embed;
  13.  
  14.  
  15. ?>
  16. </BODY>
  17. </HTML>



Gdy wpisany na poprzedniej stronie tekst wygląda tak:

<iframe frameborder="0" width="740" height="420" src="//www.dailymotion.com/embed/video/x1vfics" allowfullscreen></iframe>

To przy wyświetlaniu go przez echo, jest biała kartka.

Znalazłem tą funkcję jako zamiana słów w zdaniach przypisanych do zmiennych.


echo str_replace("pierwsze", "drugie", $embed);

Tekst: 740 420

I kiedy cały kod wygląda tak:
  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9.  
  10. $embed = $_POST['embed'];
  11.  
  12. echo str_replace("740", "420", $embed);
  13.  
  14. ?>
  15. </BODY>
  16. </HTML>


To pierwsza część się zmieni, a co jeśli chciałbym zmienić dwa "wyrazy" w jednym zdaniu?

Próbowałem tak:

  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9.  
  10. $embed = $_POST['embed'];
  11.  
  12. echo str_replace("740", "640", $embed);
  13. echo str_replace("420", "320", $embed);
  14.  
  15. ?>
  16. </BODY>
  17. </HTML>


Zamiast zmiany dwóch wyrazów, wyświetla się tak:

620 420740 320

Tak więc ponawiam pytanie, co zrobić, żeby zmienna przechwytywała ten tekst:

<iframe frameborder="0" width="740" height="420" src="//www.dailymotion.com/embed/video/x1vfics" allowfullscreen></iframe>

I zmieniam pytanie, jak zmienić dwa wyrazy w jednym zdaniu?

Ten post edytował Kiran 18.05.2014, 16:13:40
Go to the top of the page
+Quote Post
Turson
post
Post #5





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Masz zły adres w iframe i dlatego może go nie wyświetla (dwa //)
Odpowiedź na drugie pytanie to strtr

Ten post edytował Turson 18.05.2014, 16:20:22
Go to the top of the page
+Quote Post
Kiran
post
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


Ale to jest tekst do wyświetlenia, on nie może być błędny o.O

A co do tego strtr to owszem zmienia ze zdania 2 wyrazy, ale po zmianie wypluwa tylko je.
Co jeżeli miałbym zdanie: lalalalal 740 lalalal 420

I chcę, żeby wyświetliło po zmianie
lalalalal 640 lalalal 320

A nie samo:
640 320

Ten post edytował Kiran 18.05.2014, 16:45:56
Go to the top of the page
+Quote Post
Turson
post
Post #7





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat
Ale to jest tekst do wyświetlenia, on nie może być błędny o.O

Ale jak dasz echo z zawartością kodu iframe to jest on interpretowany przez przeglądarkę. Jak chcesz wypisać zwykły plaintext to htmlspecialchars.

Co do strtr, on nie wypluwa tylko zamienione wyrazy, ale cały ciąg wraz z zamienionymi danymi
Go to the top of the page
+Quote Post
Kiran
post
Post #8





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


To w takim razie jak popdpiąć

  1. <?php
  2. $trans = array("hello" => "hi", "hi" => "hello");
  3. echo strtr("hi all, I said hello", $trans);
  4. ?>


Ponieważ po echo strtr jest zdanie, które ma zmienić czyli:
hi all, I said hello

A jak zaaplikować tam jakąś zmienną?
Go to the top of the page
+Quote Post
Turson
post
Post #9





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Podaj przykład ze zmienną bo nie bardzo rozumiem
Go to the top of the page
+Quote Post
Kiran
post
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


Ogólnie chciałem napisać skrypt, który po wpisaniu kodu, np.:

<iframe frameborder="0" width="740" height="420" src="//www.dailymotion.com/embed/video/x1vfics" allowfullscreen></iframe>

I kliknięciu przycisku, zmieniałby liczby 740 i 420 na 640 i 320.

Więc pierwsza część w HTML wygląda tak:

  1. <title>Wojna by Kirasia</title>
  2. <meta charset="UTF-8">
  3. </HEAD>
  4.  
  5. <form action="embedwynik.php" method="post"/>
  6. Tu wklejasz embedy:
  7. <br>
  8. <input type="text"
  9. name="embed" size=50 maxsize=50 />
  10. <input type="submit" value="Zmień!" />
  11.  
  12. </BODY>
  13. </HTML>


A potem skryptem php wyciągam wpisany tekst:

  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9.  
  10. $embed = $_POST['embed'];
  11.  
  12.  
  13. ?>
  14. </BODY>
  15. </HTML>


Chciałbym przerobić ten skrypt PHP, żeby zmieniał te liczby z 740 i 420 na 640 i 320, a potem pokazywał na ekranie przez echo.
Średnio zrozumiałem to co wysłałeś, żeby echo pokazywało wszystkie znaki... a ze strtr też nie mam pojęcia jak to zapisać.
Przepraszam, że to powiem, ale z gotowca najlepiej się uczę, bo metodą usuwania poszczególnych elementów mogę na swój rozum
dowiedzieć się co oznacza każda komenda i lepiej to pojąć. Tak więc, mógłbyś napisać coś takiego?

Ten post edytował Kiran 18.05.2014, 19:24:53
Go to the top of the page
+Quote Post
Turson
post
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. echo strtr($embed, array(740=>420,640=>320));
Go to the top of the page
+Quote Post
Kiran
post
Post #12





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9.  
  10. $embed = $_POST['embed'];
  11.  
  12. echo strtr($embed, array(740=>420,640=>320));
  13.  
  14.  
  15. ?>
  16. </BODY>
  17. </HTML>


Przy zwykłym tekście działa, ale jak ma wyświetlić:

<iframe frameborder="0" width="740" height="420" src="//www.dailymotion.com/embed/video/x1vfics" allowfullscreen></iframe>

To już jest biała strona, pytałem się właśnie co poradzić na ten problem, nie wiem czy przeczytałeś.
Wysłałeś mi to http://pl1.php.net/htmlspecialchars
Ale ja dalej nie ogarniam jak tego wszystkiego użyć...

Ten post edytował Kiran 18.05.2014, 21:10:03
Go to the top of the page
+Quote Post
Turson
post
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


W końcu chcesz wyświetlić iframe czy goły tekst?
Go to the top of the page
+Quote Post
Kiran
post
Post #14





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


Chcę wyświetlić ten cały napis:

<iframe frameborder="0" width="740" height="420" src="//www.dailymotion.com/embed/video/x1vfics" allowfullscreen></iframe>

Tylko ze zmienionymi liczbami.

Ten post edytował Kiran 18.05.2014, 21:14:51
Go to the top of the page
+Quote Post
Turson
post
Post #15





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. $embed = ($embed, array(740=>420,640=>320));
Go to the top of the page
+Quote Post
Kiran
post
Post #16





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9.  
  10. $embed = $_POST['embed'];
  11.  
  12. $embed = ($embed, array(740=>640,420=>320));
  13.  
  14.  
  15. ?>
  16. </BODY>
  17. </HTML>


No i dalej nie wyświetla tekstu...
Biała strona.


Ten post edytował Kiran 19.05.2014, 15:11:12
Go to the top of the page
+Quote Post
Turson
post
Post #17





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


wklej przed $embed = $_POST['embed'];
  1. var_dump($_POST);

i jeszcze zajrzyj w źródło strony czy jest puste na pewno
Go to the top of the page
+Quote Post
Kiran
post
Post #18





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


Wkleiłem:

  1. <HTML>
  2. <HEAD>
  3. <title>Embed by Kiran</title>
  4. <meta charset="UTF-8">
  5. </HEAD>
  6. <BODY>
  7.  
  8. <?php
  9. var_dump($_POST);
  10.  
  11. $embed = $_POST['embed'];
  12.  
  13. $embed = ($embed, array(740=>640,420=>320));
  14.  
  15. ?>
  16. </BODY>
  17. </HTML>


I dalej pusta

Ten post edytował Kiran 19.05.2014, 15:11:32
Go to the top of the page
+Quote Post
Turson
post
Post #19





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Czy na pewno wgrałeś ten plik na serwer niepusty...?
No nie mam pomysłu, bo nawet HTML nie czyta http://hcsky.pl/embedwynik.php (IMG:style_emoticons/default/blink.gif)
Go to the top of the page
+Quote Post
Kiran
post
Post #20





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 18.05.2014

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


Jest dobrze wgrany, ponieważ po dodaniu tego kodu:


Cały skrypt przestał działać.


A to poprzednia strona:

http://hcsky.pl/embed.php

Jak widać, działa.

Ten post edytował Kiran 18.05.2014, 21:40:13
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 06:55