вызов функций рнр в ext

Alexandre

PHPПенсионер
вызов функций рнр в ext

как проще в экстеншене использовать уже известные php функции, например md5 или base64

можно вызвать как внешне объявленную функцию, но думаю есть более простое решение.

-~{}~ 16.11.07 20:20:

вполне нормально работает
Код:
    int new_length=0;
  char* url = php_url_encode("www.mail.ru", strlen("www.mail.ru" ), &new_length);
 

dekoo

Новичок
а информацией по написанию собственных экстеншенов для php с использованием cpp под линуксом (по винде с ее dll и visual cpp куча инфы) не поделитесь? интересует какой-нибудь хороший мануал типа hello world...
 

dekoo

Новичок
огромное спасибо за ссылку

-~{}~ 26.11.07 16:01:

вот откопал, может кому-то будет интересно http://www.cyberlot.net/php-extension-creating-quick-and-dirty

и еще книжка Extending and Embedding PHP от Sara Golemon , можно поискать в сети электронные вариант
 

Alexandre

PHPПенсионер
есть статья в журнале Сис Админ за прошлый год:
PHP-расширения, 5 шагов к написанию.

вполне доходчиво и просто. Есть электронные варианты в сети
что там отсутствует, так это описание создания класса.
В принципе, для начинающего она самое-то!
 

tony2001

TeaM PHPClub
лучше всего всё-таки использовать официальную доку (и книжку Сары, конечно), а не какие-то самописные варианты.
если чего-то нет в документации, то это всегда можно добавить.
 

dekoo

Новичок
В "книге Сары" сразу наткнулся на не достаточную подробность в изложении. Пока не выполнил указанный туториал, не понял кое-что уже в первой главе книги... так что тут наверное важен комплексный подход.
 

Alexandre

PHPПенсионер
insidex опиши проблему, что ты хочешь?
для реализаци массива используй zend_hash_* набор функций
 

insidex

флихтэръер
Код:
 FILE *FH = fopen("TurboCache","wb+");
 zend_op_array *op_array; // заполненный
 fwrite((char*)&op_array,сайз(zend_op_array),1,FH); // ?! тут зарыться можно...
 fclose(FH);
эти буржуи все сделали, чтобы их зенд гуард в опенсорсе не гулял :mad:
 

insidex

флихтэръер
Автор оригинала: Alexandre
http://www.google.ru/search?hl=ru&q=+zend_op_array&btnG=Поиск+в+Google&lr=


пишем в файл .... объект op_array 1 раз
млин, половина вопросов в гугле от меня и висит :)))

> пишем в файл .... объект op_array 1 раз

так ведь не пишется...ибо на внутри там все через указатели закрыто, а примитивно докапываться до каждого опкода и потом еще собирать энто все...короче километры кода (посмотри в APC)
 

Alexandre

PHPПенсионер
так ведь не пишется...ибо на внутри там все через указатели закрыто, а примитивно докапываться до каждого опкода и потом еще собирать энто все...короче километры кода (посмотри в APC)
а контрольный вывод (http://ru.wikipedia.org/wiki/Syslog) на что?
FILE *FH = fopen("TurboCache","wb+"); // проверяем, чтоб *FH =! NULL
открылся файл или нет...
перед выполнением fwrite((char*)&op_array,сайз(zend_op_array),1,FH);
проверяем, что находится в этом zend_op_array *op_array;
заметь - это указатель на zend_op_array, следовательно он где-то должен был где-то сюрелиазоваться....
проверяем, чтоб *op_array != NULL ... ну в общем методика понятна...

-~{}~ 28.12.07 19:20:

все...короче километры кода
дааа... разбираться в сырцах - это целая наука.
 
Сверху