Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]problem z file_get_contents i preg_match
Forum PHP.pl > Forum > Przedszkole
Mikos
Witam,
piszę skrypt, który z urli dodawanych w formularzu wyciąga email i dodaje go do bazy. Mam dwa problemy:
1. Przy dodawaniu więcej niż jednego urla pojawiają się problemy - skrypt dodaje email tylko z ostatniego urla.
2. W jaki sposób mam dodać zmienną email do bazy? Dodając tak jak teraz mam w tabeli "Array", dodając jako $email[0] lub $email[1] mam puste pole. Udało mi się ominąć ten problem dodając dane ze zmiennej $email foreachem, ale będę wdzięczny za podunięcie wygodniejszego rozwiązania.

Dzięki


  1. $linki = explode("\n", $_POST['linki']);
  2.  
  3. $db = new mysqli('localhost', 'root', 'root', 'linki');
  4.  
  5. if (mysqli_connect_errno()) {
  6. echo 'Błąd: ';
  7. }
  8.  
  9.  
  10. foreach ( $linki as $link) {
  11.  
  12. $przetwarzany_url = file_get_contents($link);
  13.  
  14. preg_match( "/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i", $przetwarzany_url, $email);//email
  15.  
  16.  
  17. $zapytanie = "INSERT INTO urle set adres = '$email' "; //to zapytanie nie dodaje emaila do bazy!
  18.  
  19. $wynik = $db->query($zapytanie);
  20. }
nospor
var_dump($email);
a dowiesz się czemu masz array lub czemu masz nic.
Mikos
Wyrzuciło mi:

{ [0]=> string(20) "xxx@xxx.xxx" }

Masz może jakiś pomysł na tego foreacha, który dodaje tylko dane z ostatniego urla?
nospor
No to teraz zrób
print_r($linki);
smile.gif
dwwa
implode jak dobrze pamiętam
Mikos
hehe,
print_r wyświetla wszystkie urle wprowadzone do formularza. Wygląda to tak:
http://pierwszyurl.com array(0) { } http://drugiurl.com array(1) { [0]=> string(17) "xxx@xxx.xxx" }

Wygląda na to jakby problem był z file_get_contents.

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



powyższy post to był print_r($link)-umieszczony w foreachu.

Jeśli chodzi o print_r($linki);
Array ( [0] => http://www.pierwszyurl.com [1] => http://www.drugiurl.com )


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

Udało mi się częściowo rozwiązać problem, tzn dodawanie maila. Niestety, skrypt nadal przetwarza tylko ostatni url.

  1. $linki = explode("\n", $_POST['linki']);
  2. print_r($linki);
  3.  
  4. $db = new mysqli('localhost', 'root', 'root', 'linki');
  5.  
  6. if (mysqli_connect_errno()) {
  7. echo 'Błąd: ';
  8. }
  9.  
  10.  
  11. for ($i=0; $i<count($linki); $i++){
  12. $przetwarzany_url = file_get_contents($linki[$i]);
  13.  
  14. preg_match( "/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i", $przetwarzany_url, $email);//email
  15.  
  16.  
  17. $zapytanie = "INSERT INTO urle set adres = '$email[0]' ";
  18.  
  19. $wynik = $db->query($zapytanie);
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.