Трябва ми php код

Vladislaw

Registered
Здравейте, имам нужда от следното нещо:

Искам да направя същото, като тук - https://www.vedi-pharma.com/authenticity-check/

Примерно в една база данни или .txt файл имам 5000 кода и когато направя проверка да изписва дали съществува кода или не.

И дали е възможно да го вградя в wordpress.
 
Виж това :)

https://www.tutorialspoint.com/mysqli/mysqli_where_clause.htm
 
Ако търсиш стринг в стринг с php, ще ползваш тази функция: https://www.php.net/manual/en/function.strpos.php

Ako ще влечеш резултати от база, по-добре накарй базата да ти върне само резултатите, които те вълнуват. Както ти каза deamon, можеш още в заявката да сложиш where условие, което да филтрира търсенето.

Ако търсиш във файл, четеш файла ред по ред и действаш като в 1 ^. Ако ще търсиш стринг с нови редове, ще трябва и да прочиташ по няколко реда наведнъж, но това може да е маалко по-сложно.
 
anonimen каза:
Ако търсиш стринг в стринг с php, ще ползваш тази функция: https://www.php.net/manual/en/function.strpos.php

Ako ще влечеш резултати от база, по-добре накарй базата да ти върне само резултатите, които те вълнуват. Както ти каза deamon, можеш още в заявката да сложиш where условие, което да филтрира търсенето.

Ако търсиш във файл, четеш файла ред по ред и действаш като в 1 ^. Ако ще търсиш стринг с нови редове, ще трябва и да прочиташ по няколко реда наведнъж, но това може да е маалко по-сложно.

Не мога да се справя нещо...
 
Този код http://web-tourist.net/login/login/view.php?st=2558 сработи, само че, когато текста го няма в txt файла излиза следната грешка:

Warning: count(): Parameter must be an array or an object that implements Countable in /home/eastphar/public_html/test.php on line 59

59 ред:
if (count($result) >= 1) {

демо: eastpharmacy.eu/test.php (test123 го има)
 
Ама то… $result не е дефинирано…

Можеш да го инициализираш до празен масив преди да почнеш го пълниш.

Гледам че директно ползва $result[] = $i;, което явно по някаква причина не се кара, а мълчаливо го създава. Само че ако не влезеш в условието нито веднъж, $result остава недефинирано, затова и после гърми.
 
anonimen каза:
Ама то… $result не е дефинирано…

Можеш да го инициализираш до празен масив преди да почнеш го пълниш.

Гледам че директно ползва $result[] = $i;, което явно по някаква причина не се кара, а мълчаливо го създава. Само че ако не влезеш в условието нито веднъж, $result остава недефинирано, затова и после гърми.

И вариантите какви са да го оправя.
 
Vladislaw каза:
anonimen каза:
Ама то… $result не е дефинирано…

Можеш да го инициализираш до празен масив преди да почнеш го пълниш.

Гледам че директно ползва $result[] = $i;, което явно по някаква причина не се кара, а мълчаливо го създава. Само че ако не влезеш в условието нито веднъж, $result остава недефинирано, затова и после гърми.

И вариантите какви са да го оправя.

Както ти казах, трябва да го дефинираш:
anonimen каза:
Можеш да го инициализираш до празен масив преди да почнеш го пълниш.
 
A един друг (но много мръсен!) вариант, за който се сетих, е да напишеш count($result || []). Така ако $result e falsey, ще се използва празен масив.
Споменавам го, защото ми хрумна, но е силно препоръчително вместо това да го дефинираш като празен масив още преди да му слагаш елементи.
 
Друг вариант е да провериш дали е масив и чак тогава, ако е, count:
PHP:
if (is_array($result) && count($result) >= 1)
 
Само че така ще оправи само локалния проблем - че count() не работи.
След седмица ако реши да направи друга проверка на друго място, вече отдавна ще е забравил за тази врътка и ще има да се чуди защо му се чупи кодът.

Единственото разумно решение, смея да твърдя, е да си инициализираш масива предварително. Така решаваш *всички* настоящи и бъдещи проблеми, свързани с използването на недефинираната променлива.

Останалото са само patch-ове.
 
anonimen каза:
Само че така ще оправи само локалния проблем - че count() не работи.
След седмица ако реши да направи друга проверка на друго място, вече отдавна ще е забравил за тази врътка и ще има да се чуди защо му се чупи кодът.

Единственото разумно решение, смея да твърдя, е да си инициализираш масива предварително. Така решаваш *всички* настоящи и бъдещи проблеми, свързани с използването на недефинираната променлива.

Останалото са само patch-ове.

Няма спор, че това е така.

Ама предвид питането, и че сам не може да се оправи с този елементарен проблем - смятам, че и това решение е ок.
 

Горе