2010-04-04 4 views
3

В недавнем проекте мне действительно нужна библиотека соответствия lib tre.Загрузка библиотек c из php

Однако проект находится в php, и для библиотеки нет привязок php.

Я попытался Google создать интерфейс для c lib, но все, что я нашел, это функция dl, которая швы загружает только расширения php.

Что мне не хватает?

ответ

6

Если нет «PHP привязок» не существует, то он выглядит как вы будете развивать их ;-)

Это делается с помощью расширения PHP - такие, как, например:

  • в mysql extension, который используется для связи с MySQL, связывая libmysql библиотеку (с PHP < = 5.2)
  • curl extension, это обертка Arround завитка библиотеки
  • и многие другие ...


Если вы хотите узнать больше о написании расширений PHP, эти ссылки, скорее всего, заинтересует вас:
(Примечание что это не совсем легкая задача, но если вам нужно ... хорошо ^^; а некоторые говорят, что это не , что трудно)

И, если вы действительно заинтересованы в этом вопросе, и готовы потратить на это немного денег, вы можете купить книгу Extending and Embedding PHP(some pages are available as preview on Google Books); Это рассматривается как книги читать, когда заинтересованы в этой теме (На самом деле, я купил это некоторое время назад, и, на мой взгляд, это действительно интересно читать)

Кстати, автор этой книги также является автором первых четырех статей, которые я связал ;-)

+0

Я предполагаю, что это означает, что нет такой вещи, как модуль ctypes python для непосредственного взаимодействия кода C. Как насчет этой вещи SWIG? –

+0

Извините, понятия не имею о вещи SWIG: я слышал об этом, но никогда не использовал его сам ;;; о ctypes, я не думаю, что есть много: единственное, что я знаю о FFI (http://pecl.php.net/package/ffi), а последняя версия была альфа, в 2004 году ...; ;; стандартный способ использования внешней библиотеки в PHP - это написать расширение как обертка вокруг него. –

+0

Я вижу. Спасибо. –

1

Напишите расширение, которое предоставляет tre для PHP (или найдите тот, который уже делает). Хорошей отправной точкой является here.

Будьте предупреждены, что вы не сможете загрузить расширение на большинстве услуг хостинга.

+0

Ссылка исчезла. Марсело, хотите ли вы обновить или удалить этот ответ? – ghoti